为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
芜湖不芜 2023-11-03 21:29:55
我遇到了一个奇怪的故障。我以前没有遇到任何问题,但现在突然 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 脚本之前已经工作过,没有出现任何问题。这里可能有什么问题?为什么它突然不适用于某些页面/脚本,据我所知,我从未接触过这部分代码,所以我什至没有更改任何内容。
查看完整描述

2 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

我建议创建一个 session.php 文件,在需要访问会话的每个页面中调用该文件,例如:


会话.php


  ini_set('session.use_only_cookies', 1); // secure cookie

  session_set_cookie_params(0,'/','localhost',true,true); // duration, path, domain, secure connection, httponly (secure js access)

  session_start(); // start session

  session_regenerate_id(); // regenerating for security issues

然后将其添加到您的页面中:


 include 'session.php';

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

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

 } else {    

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

  }


查看完整回答
反对 回复 2023-11-03
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

确保您在每个页面上启动会话。如果您动态拥有它,请确保您的 require 'xxx'; 是对的。然后尝试在 chrome 的 webdevelopment 工具中删除 phpsessionid 。最后,重新启动本地服务器 - wamp、xampp 等。



查看完整回答
反对 回复 2023-11-03
  • 2 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信