PHP 会话突然停止对某些页面工作

我遇到了一个奇怪的故障。我以前没有遇到任何问题,但现在突然 PHP 会话只适用于某些页面,而不适用于其他页面。


这是我使用会话的方式:


ini_set('session.save_path', realpath(dirname($_SERVER['DOCUMENT_ROOT']) . '/../session'));

session_start();


if(!isset($_SESSION["account"])) {

    // session does not exist

    echo "<h1>session does not exist</h1>";

} else {    

    echo "<h1>session exists</h1>";

}

相同的代码不再适用于某些页面。例如,我可以很好地登录并使用大多数登录工具。testSession.php但是当我创建一个具有与上图相同内容的新文件时。由于某种原因它丢失了会话。


我专门用来ini_set('session.save_path', realpath(dirname($_SERVER['DOCUMENT_ROOT']) . '/../session'));解决类似的问题,但现在问题又回来了......为什么?


所有这一切的奇怪之处在于,我想要触发的一个 php 脚本之前已经工作过,没有出现任何问题。这里可能有什么问题?为什么它突然不适用于某些页面/脚本,据我所知,我从未接触过这部分代码,所以我什至没有更改任何内容。


芜湖不芜
浏览 78回答 2
2回答

拉丁的传说

我建议创建一个 session.php 文件,在需要访问会话的每个页面中调用该文件,例如:会话.php&nbsp; ini_set('session.use_only_cookies', 1); // secure cookie&nbsp; session_set_cookie_params(0,'/','localhost',true,true); // duration, path, domain, secure connection, httponly (secure js access)&nbsp; session_start(); // start session&nbsp; session_regenerate_id(); // regenerating for security issues然后将其添加到您的页面中:&nbsp;include 'session.php';&nbsp;if(!isset($_SESSION["account"])) {&nbsp; &nbsp; echo "<h1>session does not exist</h1>";&nbsp;} else {&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; echo "<h1>session exists</h1>";&nbsp; }

阿波罗的战车

确保您在每个页面上启动会话。如果您动态拥有它,请确保您的 require 'xxx';&nbsp;是对的。然后尝试在 chrome 的 webdevelopment 工具中删除 phpsessionid 。最后,重新启动本地服务器 - wamp、xampp 等。
打开App,查看更多内容
随时随地看视频慕课网APP