2013-01-23 77 views
0

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

这里是我的课程:

$_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将保持不变,而不管我改变什么值?因为现在我首先必须注销并再次登录以获取正确的值。或者有重新启动代码?

+2

为什么你在第一个会话中存储密码地点? –

+0

@Jack'Cuz我想要安全漏洞:-) – Neal

+0

@Jack这是我想改变的东西,问是否可以跳过所有这些,如果它的安全只是将user_id存储在会话中而不是任何其他会话值,所以我可以更改这些东西而不会遇到任何错误。而且我在这里学习,否则我不会问.. – Phatorax

回答

0

只是一个新的值更新会话$_SESSION['password']应该工作(假设你有session_start()“主编会话尝试做出改变之前。

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

+0

感谢您的帮助。我从我的会话中删除了密码。我现在存储用户的ID,因为那是永远不会改变的。 – Phatorax