在页面重新加载/刷新时重置会话?
Posted
技术标签:
【中文标题】在页面重新加载/刷新时重置会话?【英文标题】:Sessions being reset on page reload/refresh? 【发布时间】:2016-06-26 01:03:01 【问题描述】:我正在使用 AWS 和 Ubuntu LAMP 堆栈。我通常只是在我的 Mac 上使用 MAMP 来测试东西并使用托管托管服务,例如 GoDaddy,所以这是我第一次使用 AWS。我的老开发人员为我设置了 AWS,所以我从那以后接管了。
我的代码在 MAMP 上运行良好,但无法在 AWS 上运行。
当用户尝试登录时,我会调用用 php 编写的 RESTful API 来验证登录并在成功时设置会话变量。然后我刷新页面并检查是否设置了会话,如果设置了我加载不同的 php 文件。
这是我的整个index.php
文件:
session_start();
if ($_SESSION['user_login_status'] == 1)
include("app.php");
else
include("login.php");
在刷新期间,似乎我的会话变量正在被破坏/重置。我试过在if
语句之前echo
ing 会话值,尽管它总是空白。
我已经确定的事情:
我在我的 php 文件的最顶部设置了session_start()
,所以
这不可能是问题。
我通过 SSH 连接以访问php.ini
文件并检查了session.gc_maxlifetime
是1440
它在 MAMP 上运行而不是在我的 AWS 服务器上运行似乎很奇怪。
【问题讨论】:
【参考方案1】:我或多或少有同样的问题。 是服务器中安装的 PHP 版本造成了这个错误。 要解决它,就这样做
session_start();
if ($_SESSION['user_login_status'] !== 1)
include("login.php");
else
include("app.php");
或
session_start();
if ($_SESSION['user_login_status'] != 1)
include("login.php);
else
include("app.php");
或
session_start();
if ($_SESSION['user_login_status'] === 1)
include("app.php");
else
include("login.php);
【讨论】:
以上是关于在页面重新加载/刷新时重置会话?的主要内容,如果未能解决你的问题,请参考以下文章
Rails 仅在生产时才在页面重新加载时丢失会话变量 current_user_id(React 16.13、Rails 6、Heroku)