这些是我在index.php中的前5行:
<?php
session_start();
if (!isset($_SESSION['cart'])) $_SESSION['cart']='';
$page = $_GET['page'];
?>
Run Code Online (Sandbox Code Playgroud)
我正在通过firefox-> firebug-> firecookie插件查看会话,并且没有创建会话.(我很确定,因为昨天工作的购物车今天不起作用.)任何想法为什么这个可能会发生以及如何解决它?
我在启用错误时发现了这一点:警告:session_start()[function.session-start]:无法发送会话cookie - 已经发送的标头(输出从/home/controll/public_html/metalkonsult.com/index.php:1开始)在第2行的/home/controll/public_html/metalkonsult.com/index.php中
我进一步探索 - 一些东西被发送到浏览器,但我不知道它来自哪里.我做了一个var_dump(headers_list()); 在第一行,这是我得到的:
array(2) { [0]=> string(23) "X-Powered-By: PHP/5.2.6" [1]=> string(23) "Content-type: text/html" }
Run Code Online (Sandbox Code Playgroud)
我怎么关掉这个?发送什么?
我在网站文件夹会话中的php.ini中设置session.auto_start = 1现在工作..不知道导致问题的原因但是问题暂时得到解决
如果我在你的php开始标记(<?php)之前看到的空格也在源代码中,那么这就是原因:)确保在session_start调用之前没有输出.
您可以使用firebug检查确切的输出,方法是转到网络选项卡,找到PHP文件传输,展开它,然后查看响应选项卡.你可以在session_start之后放一个打印件,看看它出现在哪里......它应该是第一件事.
否则,如果您有指向日志的php错误,请查看日志中是否有任何内容.最后,确保浏览器也显示会话cookie:某些浏览器不显示它们.