Php session_start生成警告

时间:2013-01-03 08:13:16

标签: php session

我正在尝试在我的服务器中运行此代码

<?php
session_start();
?>

我收到了以下警告信息。我以前从未见过这样的警告。

Warning: session_start() [function.session-start]: open(/var/chroot/home/content/00/6684400/tmp/sess_uoouukt8m6efc0nc2ar5t2vq94, O_RDWR) failed: No such file or directory (2) in /home/content/00/6684400/html/html-tweetcomments/y.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/content/00/6684400/html/html-tweetcomments/y.php:2) in /home/content/00/6684400/html/html-tweetcomments/y.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/content/00/6684400/html/html-tweetcomments/y.php:2) in /home/content/00/6684400/html/html-tweetcomments/y.php on line 2

Warning: Unknown: open(/var/chroot/home/content/00/6684400/tmp/sess_uoouukt8m6efc0nc2ar5t2vq94, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:2)

权限问题。

检查tmp文件夹权限。让它可写。

Failed to write session data (files).

另外,检查session_start()

之前是否没有HTML或空格

答案 1 :(得分:2)

确保文件夹/var/chroot/home/content/00/6684400/tmp存在且可由PHP写入

sudo mkdir -p /var/chroot/home/content/00/6684400/tmp/
sudo chmod 1777 /var/chroot/home/content/00/6684400/tmp/

session_start()设置包含会话ID的cookie。在HTTP协议中,Cookie在HTTP标头Set-Cookie中发送。

如果您发送任何输出(包括PHP警告),这将被写入HTTP回答正文,PHP将无法再发送标题。

要确保在最后写入HTTP响应正文,您可以在PHP脚本的最开头添加ob_start()

这将创建一个输出缓冲区,当脚本到达结尾时将自动刷新输出。

<强>参考

答案 2 :(得分:1)

  

警告:session_start()[function.session-start]:无法发送会话   cookie - 已经发送的标题(输出开始于   /home/content/00/6684400/html/html-tweetcomments/y.php:2)in   第2行/home/content/00/6684400/html/html-tweetcomments/y.php

session_start 调用之前正在打印某些内容。在致电

之前,请检查html中的任何回音甚至空格

答案 3 :(得分:1)

线索是第一个错误:

open(/var/chroot/home/content/00/6684400/tmp/sess_uoouukt8m6efc0nc2ar5t2vq94, O_RDWR)
failed: No such file or directory (2) 

看起来会话文件引用的目录不存在或Web用户(运行Web服务器的用户)不可写。

  • 检查目录是否存在 - 如果没有则创建。
  • 确保Web服务器用户可以进行组写。

第一个错误导致其余错误;

答案 4 :(得分:0)

如果在PHP代码之前有相同的输出,请在php代码之后移动它 例如:

<script>
...javascript code... 
</script>
<?php
session_start();
?>

在php标记之后移动脚本标记。像这样:

<?php
session_start();
?>
<script>
...javascript code... 
</script>