2013-01-23 78 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