修复我的问题与“已发送”的标题无关。这只是问题的症状。 问题最终成为GoDaddy 的严重问题,因为他们的文件夹丢失了。
我已经编辑了我的问题名称以包含“GoDaddy网站”,可能会帮助将来遇到同样问题的人。
Per @KennyPowers建议我打电话给Go Daddy。我最初有一个Windows托管帐户,并切换到Linux。显然,session_start()
默认保存到的文件夹不会与我网站的其余部分一起迁移,并且您无法更改默认文件夹..至少在我的网站上没有。
GoDaddy取代了他们的文件夹,现在一切正常
原始问题:
我可以使用 session_start()
来帮助我网站流程
所有网页都在同一个网域上,因此我尝试使用session_start()
执行此操作这是我尝试过的:
<?php
// page2.php
session_start();
echo 'Welcome to page #2';
$_SESSION["guest1Last"] = $_POST["guest1Last"];
$_SESSION["guest1First"] = $_POST["guest1First"];
$_SESSION["guest1Middle"] = $_POST ["guest1Middle"];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title</title>
// more HTML and PHP stuff down here
<?php
// page3.php
session_start();
echo 'Welcome to page #3<br />';
echo $_SESSION["guest1First"];
echo $_SESSION["guest1Middle"];
echo $_SESSION["guest1Last"];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
// more HTML and PHP stuff down here
这是我在第2页加载时收到的警告: (第3页同样的事情)
Warning: session_start() [function.session-start]: open(/var/chroot/home/content/08/10125908/tmp/sess_3dt4c7etqd6hr28dls0bludiv4, O_RDWR) failed: No such file or directory (2) in /home/content/08/10125908/html/_php/page2.php on line 4
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/content/08/10125908/html/_php/page2.php:4) in /home/content/08/10125908/html/_php/page2.php on line 4
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/content/08/10125908/html/_php/page2.php:4) in /home/content/08/10125908/html/_php/page2.php on line 4
Welcome to page #2
Warning: Unknown: open(/var/chroot/home/content/08/10125908/tmp/sess_3dt4c7etqd6hr28dls0bludiv4, 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
“标题已经发送” 部分让我觉得session_start()不在页面上的正确位置,但它位于顶部,我相信它应该是。也就是说,由于显而易见的原因,可能会出现“ 没有这样的文件或目录 ”的问题。如果有人能指出我做错的方向,我将不胜感激。
修改
<?php
session_start();
ini_set('session.save_path', '/var/chroot/home/content/08/10125908/html/tmp');
echo 'Welcome to page #1';
$_SESSION["guest1Last"] = $_POST["guest1Last"];
$_SESSION["guest1First"] = $_POST["guest1First"];
$_SESSION["guest1Middle"] = $_POST ["guest1Middle"];
?>
ini_set('session.save_path',
'/var/chroot/home/content/08/10125908/html/tmp');
session_save_path('/home/content/04/8260904/html/tmp');
保存了它
作为 php.ini 并将其上传到我的根session_save_path('/home/content/04/8260904/html/tmp');
保存了它
作为 php5.ini 并将其上传到我的根我仍然得到同样的错误
Warning: session_start() [function.session-start]: open(/var/chroot/home/content/08/10125908/tmp/sess_3659a32a50e33e5f918a9e39d70a1668, O_RDWR) failed: No such file or directory
我没有正确设置文件夹目的地?
我的文件夹设置现在
Per @KennyPowers建议我打电话给Go Daddy。我最初有一个Windows托管帐户,并切换到Linux。显然该文件夹没有与我的网站的其余部分一起迁移,并且你不能更改默认文件夹..至少在我的网站上没有。
答案 0 :(得分:4)
你遇到的问题是你没有tmp。第一个错误说明了这一点:
Warning: session_start() [function.session-start]: open(/var/chroot/home/content/08/10125908/tmp/sess_3dt4c7etqd6hr28dls0bludiv4, O_RDWR) failed: No such file or directory (2) in /home/content/08/10125908/html/_php/page2.php on line 4
这就是会话无法启动的原因。请参阅“ ...失败:在.. ”
中没有此类文件或目录(2)您需要创建/var/chroot/home/content/08/10125908/tmp/
并在该目录上设置读/写权限。
您可以使用php脚本中的下一个函数来更改会话临时目标:
ini_set('session.save_path', '/session/directory/goes/here');
在此之后收到的警告告诉您有一些数据已发送回您的浏览器 - 这实际上是第一个警告文本。它将在您修复tmp目录问题后立即修复。
答案 1 :(得分:1)
PHP试图用来存储会话信息的目录不存在或不可写。
有问题的目录是:
/var/chroot/home/content/08/10125908/tmp/
此位置在PHP.ini
中设置为session.save_path
。
您需要确保此目录存在且可由PHP运行的用户编写。
答案 2 :(得分:1)
PHP在将数据写入会话文件时遇到问题。您应该检查会话设置并验证是否在文件系统端设置了必要的权限。
Warning: session_start() [function.session-start]: open(/var/chroot/home/content/08/10125908/tmp/sess_3dt4c7etqd6hr28dls0bludiv4, O_RDWR) failed: No such file or directory (2) in /home/content/08/10125908/html/_php/page2.php on line 4
关于标头已发送错误:由于您的错误报告级别,在尝试写入会话数据时会生成警告。此自动生成的警告是已发送标头错误的触发器。 修复权限问题,它应该消失。
答案 3 :(得分:0)
您可能在session_start();
之前有一些输出请检查任何文本(包括session_start();
之前的空格。它应该是您文档中的第一个。
答案 4 :(得分:0)
问题是PHP会话当前无法在您的服务器上运行,并且无法设置cookie。 PHP服务器不允许会话启动,错误是你发现的方式。 该错误告诉您它无法打开所需的会话临时文件夹,因为该文件夹不存在。