PHP中的会话启动警告

PHP中的会话启动警告,php,session,warnings,Php,Session,Warnings,这就是我收到的信息: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/new/login.php:1) in /var/www/new/login.php on line 3 这正是代码: <?php if(!isset($_SESSION)) session

这就是我收到的信息:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/new/login.php:1) in /var/www/new/login.php on line 3
这正是代码:

<?php
if(!isset($_SESSION))
    session_start();
ob_start();

检查文件中是否未设置BOM unicode,这是此类型的常见错误。

如果没有BOM,您是否有通过htaccess或phpini php_auto_prepend自动包含的文件?

检查您的文件中是否没有BOM unicode设置,这是此类常见错误。
如果没有BOM,您是否有任何通过htaccess或phpini php_auto_prepend自动包含的文件?

您确定您的文件未与BOM一起保存在UTF-8中?尝试保存不带BOM的UTF-8?尝试保存不带BOM的UTF-8

检查您的php会话配置。自动启动,如果启用此功能,则表示您已经打开了会话

或者尝试以下方法:

if (empty(session_id())) {
    session_start(); // if no active session we start a new one
}

检查session.auto_start的php配置,如果启用此选项,则表示您已经打开了一个会话

或者尝试以下方法:

if (empty(session_id())) {
    session_start(); // if no active session we start a new one
}

“输出开始于/var/www/new/login.php:1”我发现了错误!php.ini上的输出缓冲已关闭!有人能回答这个问题,这样我就可以检查它是否有效了吗?请自己输入答案,如果你发现了问题,你应该得到奖励。你可以回答你自己的问题;)@Dave Kiss:我投了反对票,因为
if
语句对handdouble和triple check spaces->“输出开始于/var/www/new/login.php:1”的问题绝对没有影响。我发现了错误!php.ini上的输出缓冲已关闭!有人能回答这个问题,这样我就可以检查它是否有效了吗?请自己输入答案,如果你发现了问题,你应该得到奖励。你可以回答你自己的问题;)@戴夫·基斯:我投了反对票,因为
if
声明对handBOM的问题绝对没有影响。我不确定是这样还是输出缓冲。移除、激活并工作@安东尼奥:如果有BOM,那么这就是问题的根源。这是一个非常常见的问题。显然,问题的原因是BOM unicode,而不是输出缓冲BOM。我不确定是这样还是输出缓冲。移除、激活并工作@安东尼奥:如果有BOM,那么这就是问题的根源。这是一个非常常见的问题。显然,问题的原因是BOM unicode,而不是输出缓冲