PHP会话警告:该怎么做

时间:2010-11-23 19:33:50

标签: php session warnings

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/moonpk/public_html/wallz/preview.php:16) in /home/moonpk/public_html/wallz/loginbox.php on line 2

 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/moonpk/public_html/wallz/preview.php:16) in /home/moonpk/public_html/wallz/loginbox.php on line 2

我收到这两个警告,我没有在本地服务器上...为什么......

5 个答案:

答案 0 :(得分:2)

请参阅php session_start()页面上的第一条说明。 session_start()将cookie发送到浏览器,服务器在发送任何数据后不会发送任何其他数据(包括cookie)。这可以通过确保在调用echo()之前没有任何内容发送到浏览器(例如var_dump()session_start()调用)来解决。

答案 1 :(得分:1)

在执行session_start()之前加载的文件中,很可能在任何PHP标记之外都有一些空格。也许你的FTP客户搞砸了?

答案 2 :(得分:1)

您没有在本地服务器上获取它们,因为您的错误报告级别较低。所以,你需要:

  1. 在本地服务器上编辑php.ini并将error_reporting设置为E_ALL
  2. 在您session_start()档案
  3. 的第16行之前移动/home/moonpk/public_html/wallz/preview.php来电

答案 3 :(得分:0)

您的本地服务器上可能已禁止警告?问题是在调用session_start之前有一些输出。从行号开始判断,我猜你在打开php标签之前有一个换行符,但是没有看到代码,就无法提供完整的解决方案。

答案 4 :(得分:-1)

如果您在“loginbox.php”中包含“preview.php”页面,请检查您是否只在一页上调用了session_start一次。

在preview.php或loginbox.php上,而不是两者。