【问题标题】:Modify PHP session using session id使用会话 ID 修改 PHP 会话
【发布时间】:2019-10-28 15:47:26
【问题描述】:

如果存储了会话 ID,是否可以使用它来更改会话数据,例如数组变量?

我正在开发一个 PHP 登录系统项目,其中登录身份验证来自带外源(移动应用程序或浏览器扩展)。

浏览器页面会使用 JavaScript 不断地向服务器请求登录状态。例如,用户将扫描页面上的二维码,他们的手机将通过 API 将他们的身份验证发布到服务器。

然后,我想更改与使用该特定 QR 码发布的页面上的会话相关联的 $_SESSION 数据。我可以知道发出那个特定二维码的session id 手机二维码扫描返回了哪些数据,但是我可以使用session id 修改session 数据,从而将SESSION 状态设置为已登录吗?

我查看了 PHP 手册中的一个函数,该函数允许它修改另一个会话,但没有找到任何东西。 (https://www.php.net/manual/en/ref.session.php)

【问题讨论】:

  • 您可以使用 $_SESSION['nameofthedata'] 访问与当前会话 ID 相关的特定会话数据
  • 我认为这是不可能的。在 PHP 中创建会话时,它会存储在某种存储中 - 默认情况下,存储在文件中。因此,当您无权访问此存储时,您将无能为力
  • 谢谢。我可以理解。然而,这是例如能够改变不同会话的会话变量的问题。或者在无状态时通过 id 更改会话。

标签: php session session-variables


【解决方案1】:

在视图中设置带有 $_SESSION id 的文本框值, 并在操作时,将带有 id 的数据 SESSION 更新到数据库。

【讨论】:

    【解决方案2】:

    您所做的是将 session_id 设置为您要编辑的 id 数据,然后更改会话值。

     session_id('the id you have');
        session_start();
        $_SESSION['anydata'] = 'whatever you want';
    

    【讨论】:

      猜你喜欢
      • 2023-03-20
      • 2014-08-02
      • 1970-01-01
      • 2011-01-11
      • 2014-06-27
      • 2011-08-30
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      相关资源
      最近更新 更多