【问题标题】:Changing sessions values更改会话值
【发布时间】:2013-01-07 00:50:49
【问题描述】:

我正在制作一个允许用户更改密码的页面。但密码是我会话的一部分。

这是我的课程:

$_SESSION['myid'] = $myid;
$_SESSION['myusername'] = $myusername;
$_SESSION['mypassword'] = $mypassword;

我将用户名、密码和用户 ID 保存到我的会话中。我检查了每个页面,检查会话是否为真:

require ('../handlers/loginhandler.php');

session_start();

    if (!isset($_SESSION['myid'])){  //in this part I skipped the username and password

    header("a page");

    }

    else {

    my page 

    } 

现在当我想更改密码时,我的登录处理程序似乎不正确。所以我需要重新启动会话并将新密码值放入会话中。但我似乎无法让它工作。

我是否可以只将 user_id 放入会话中,这样无论我更改什么值,我的日志处理程序都将保持不变?因为现在我首先必须注销并再次登录才能获得正确的值。还是有重启码?

【问题讨论】:

  • 你为什么首先在会话中存储密码?
  • @Jack 'Cuz 我想要安全漏洞 :-)
  • @Jack 那是我想改变的东西,并询问是否可以跳过所有这些,以及将 user_id 存储在会话中而不是任何其他会话值是否安全,以便我可以更改这些东西没有遇到任何错误..我是来学习的,否则我不会问..

标签: php mysql session


【解决方案1】:

只需使用 $_SESSION['password'] 的新值更新会话即可(假设您在尝试进行更改之前已 session_start() 对会话进行了修改。

话虽如此,在会话中存储用户密码通常不是一个好主意,因此这是删除它的好机会。另一方面,存储用户名很好,并且可能会防止不必要的数据库查找。

【讨论】:

  • 感谢您的帮助。我从会话中删除了密码。我现在正在存储用户的 ID,因为那是永远不会改变的东西。
猜你喜欢
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
  • 1970-01-01
  • 2014-07-11
相关资源
最近更新 更多