gpt4 book ai didi

php - 如何在 GoDaddy 网站上正确使用 session_start()

转载 作者:行者123 更新时间:2023-12-02 15:43:56 25 4
gpt4 key购买 nike

修复下面 我的问题与“已发送”的 header 无关。这只是问题的一个症状。 问题最终成为 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

“ header 已发送”部分让我认为 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  

我是否没有正确设置文件夹目标?

<小时/>

现在设置我的文件夹 enter image description here

根据 @KennyPowers 的建议,我给 Go Daddy 打电话。我最初有一个 Windows 托管帐户,后来切换到了 Linux。显然该文件夹没有与我网站的其余部分一起迁移,并且您无法更改默认文件夹..至少不能在我的网站上。

最佳答案

你遇到的问题是你没有 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

这就是 session 无法启动的原因。请参阅“...失败:...中没有此类文件或目录 (2)

您需要创建 /var/chroot/home/content/08/10125908/tmp/ 并设置该目录的读/写权限。您可以使用 php 脚本中的下一个函数来更改 session 临时目录:

ini_set('session.save_path', '/session/directory/goes/here');

在此之后您收到的警告告诉您有一些数据发送回您的浏览器 - 这实际上是第一个警告文本。修复 tmp 目录问题后,它将立即修复。

关于php - 如何在 GoDaddy 网站上正确使用 session_start(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14604589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com