我正在创建一个允许用户更改密码的页面。但是密码是我会话的一部分。
以下是我的会议:
$_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
}
现在,当我想更改密码时,我的loginhandler似乎不正确。所以我需要重新启动会话并将新密码值放在会话中。但我似乎无法让它发挥作用。
我是否可以在会话中只放置user_id,这样无论我改变什么值,我的loghandler都会保持不变?因为现在我首先必须注销并再次登录才能获得正确的值。或者是否有重启代码?
答案 0 :(得分:0)
使用$_SESSION['password']
的新值更新会话应该有效(假设您在尝试进行更改之前已经session_start()
'进行了会话。
话虽如此,将会话密码存储在会话中通常是一个坏主意,所以这是一个删除它的好机会。另一方面,存储用户名很好,可能会阻止不必要的数据库查找。