修复下面我的问题与“已经发送”的标题无关。这只是问题的一个症状。该问题最终成为 GoDaddy 的服务器端问题,因为他们最终缺少一个文件夹。
我已经编辑了我的问题名称以包含“GoDaddy 站点”,以帮助将来遇到同样问题的人。
根据@KennyPowers 的建议,我打电话给 Go Daddy。我最初有一个 Windows 托管帐户并切换到 linux。显然,session_start()
默认情况下保存到的文件夹没有随我网站的其他部分迁移,而且你不能更改默认文件夹..至少在我的网站上没有。
GoDaddy 替换了最后的文件夹,现在一切正常
原始问题:
我可以使用session_start()提供一些帮助
网站流量:
- page1.html有一个POST 到 page2.php的表单
- page2.php对数据进行一些处理并提供指向 page3.php 的链接
- 当page3.php加载时,它还需要对表单中的数据做一些事情
所有页面都在同一个域上,所以我尝试使用 session_start()
这是我尝试过的:
第2页:
<?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
第 3 页:
<?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"];
?>
- 我创建了一个文件夹 tmp 并赋予它所有权限
- 我添加了
ini_set('session.save_path', '/var/chroot/home/content/08/10125908/html/tmp');
- 并尝试了 ini_set('session.save_path', '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
我没有正确设置文件夹目标吗?
我的文件夹设置现在
根据@KennyPowers 的建议,我打电话给 Go Daddy。我最初有一个 Windows 托管帐户并切换到 linux。显然,该文件夹没有随我网站的其他部分一起迁移,而且你不能更改默认文件夹..至少在我的网站上没有。