[英]Warning: Sessions Permission Denied/Headers Already Sent in PHP
我是PHP的初学者。
我收到以下错误。 我无法从计算机上的FF,IE和Chrome浏览器中查看错误,但是从另一台计算机的浏览器浏览时却看到错误提示。
Warning: session_start() [function.session-start]: open(/tmp/sess_c464nadk4jsn4u43mpqipkjbr7, O_RDWR) failed: Permission denied (13) in "file location" on line X
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at "file location":line X) in "file location" on line X
有任何想法吗?
我在include之前有session_start(),这意味着在任何html之前,并且该会话仅用于携带一个变量。
我试过把它放在
Header("Cache-control: private, no-cache");
Header("Pragma: no-cache");
但这只会产生更多警告信号。 任何帮助,将不胜感激!
似乎/ tmp /目录无法以用户php的身份运行。
<?php
起始标记之前是否有空格或其他任何字符? session_start()
真的是php块中的第一条语句吗? “头已发送”错误是由第一个错误引起的。 尝试调试它的其他答案不会帮助您。 修正第一个错误,第二个错误将消失。 第一个错误告诉您问题所在-/ tmp目录不可被Web服务器写入。 / tmp通常是777(rwxrwxrwx)。
第一个错误似乎表明temp目录中缺少写许可权,但也可以链接到第二个错误。
第二个错误通常仅在session_start()
调用之前从php脚本发送某种输出时发生,因为它将自动发送HTTP标头。 在实际调用之前或<?php
开头括号之前,这可以是任何类型的html甚至文件中的空白行或空格。 正如Shane在评论中所建议的那样,第二个错误的原因很可能是第一个错误的错误消息(无法将会话写入/ tmp中的文件)导致发送标头,因此现在为时已晚发送给他们与header()
调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.