【问题标题】:Keep PHP session active after removing the URL parameter删除 URL 参数后保持 PHP 会话处于活动状态
【发布时间】:2021-11-24 23:51:32
【问题描述】:

我正在尝试获取 URL 参数的值并使用 PHP 会话将其保存到 JS 变量中。

我的网址:domain.com/?id=MYID

我的 PHP 代码:

session_start(); 
$_SESSION['id'] = $_GET['id']; 

然后我将它保存在 JS 变量中:

<script type="text/javascript"> var id = '<?php echo $_SESSION['id']; ?>'; </script> 

我的问题是,即使我使用同一个浏览器访问domain.com(第二次访问时没有id 参数),是否可以保留$_SESSION['id'] 的值?

【问题讨论】:

  • 你说的是第一次访问后多久?
  • @RiggsFolly 假设是 24 小时。但是不使用 cookie 是否可以坚持 session_start()?
  • 我可以这样窃取另一个用户的会话
  • 将会话标识符添加到 URL 查询参数中会打开session hijacking attacks。这真的是一个很大的禁忌。

标签: php session


【解决方案1】:

我找到了解决方案。我正在定义 $_SESSION['id']Even 时没有 URL 参数。所以,当我访问没有 URL 参数的页面时,$_SESSION['id'] 仍然用空/无定义它的值。

所以为了解决这个问题,我添加了一个isset 条件以确保它只定义参数何时发布,否则保留旧的。

if(isset($_GET['id'])) { $_SESSION['id'] = $_GET['id']; }

【讨论】:

    猜你喜欢
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 2022-01-23
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    相关资源
    最近更新 更多