1

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

<?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

我该如何解决这个问题?

4

5 回答 5

2

权限问题。

检查tmp文件夹权限。使其可写。

Failed to write session data (files).

另外,检查之前没有 HTML 或空格session_start()

于 2013-01-03T08:15:27.733 回答
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 响应正文写在最后,您可以ob_start()在 PHP 脚本的最开始添加一个。

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

参考

于 2013-01-03T08:29:24.523 回答
1

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

在session_start调用之前打印了一些东西。在打电话之前检查 html 中的任何回声甚至任何空格

于 2013-01-03T08:16:01.457 回答
1

线索是第一个错误:

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

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

  • 检查目录是否存在 - 如果不存在,请创建它。
  • 确保它对 Web 服务器用户是组可写的。

第一个错误是导致其余错误的原因;

于 2013-01-03T08:17:34.310 回答
0

如果 php 代码之前有相同的输出,请将其移到 php 代码之后 示例:

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

将脚本标签移到 php 标签之后。像这样:

<?php
session_start();
?>
<script>
...javascript code... 
</script>
于 2013-01-25T12:01:41.457 回答