繁体   English   中英

会话标头已发送问题

[英]session headers already sent issue

我一直收到以下错误消息。 我的localhost(xampp)上不存在此问题。 当文件在服务器上时,我遇到了这个问题。

警告 :session_start()[function.session-start]:无法发送会话cookie - 已经在/ home / plosta / public_html中发送的输出(/home/plosta/public_html/bloom/Connections/bloom.php:1中的输出) /bloom/signin.php在第158

这发生在服务器上但不在localhost上

<?php
//bloom.php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_bloom = "localhost";
$database_bloom = "datacenter";
$username_bloom = "root";
$password_bloom = "";
$bloom = mysql_pconnect($hostname_bloom, $username_bloom, $password_bloom) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

错误说明了一切,你在第158行session_start() ,尝试将它添加到你的文件之上

在页面顶部开始您的会话。

<?php 
//before that noting
session_start();


// Your code here
?>

确保session_start()必须位于代码的顶部。 将其从第158 移动到第1行

似乎你包括一些PHP,并确保你的Connections / bloom.php行:1没有线断,白色空间,HTML等等。是的每个人都说你的session_start()移动到行:1但我想他们会帮助你应该将它移到你的所有流程的顶部:1不仅在signin.php中

ob_start(); 使用ob_flush();

<?php ob_start(); ?> <?php ob_start(); ?>文件顶部的signin.php和文件底部的<?php ob_flush();?> sigin.php

通常,当它显示“已发送标题”时表示您已经启动了“输出缓冲”,这意味着您已经开始向用户发送文本。

如果它是无意的(你的代码头设置不在你的代码头中),请检查一些事情,例如:

  • 您的某个文件的“<?php”之前的一行或一个字符
  • 你在代码中遗忘的回声。

您可以尝试使用以下解决方案:

  1. 放置代码行<?php ob_start(); ?> <?php ob_start(); ?>在你的文件顶部

  2. 请检查您的signin.php文件, session_start()必须位于代码的顶部。 将其从第158行移动到第1行

  3. 如果您使用echo or print打印任何变量/数组,请检查您的代码,请删除它

如果您可以粘贴文件的整个代码,我们将更清楚地为您提供快速的正确解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM