2013-02-09 111 views
-1

有人可以請幫忙,我有這個更改密碼腳本,允許用戶更改他們的密碼。在mysql中更改用戶密碼,檢查舊密碼匹配並強制新密碼?

目前它允許用戶更改他們的密碼,儘管它們放在舊密碼框中。有人可以告訴我怎樣才能檢查舊密碼是否與'ptb_users.password'中存儲的密碼相匹配?

此外,它目前讓用戶設置他們的密碼爲空,有沒有辦法讓我的密碼和確認密碼字段強制?

謝謝。

<?php 
require_once("session.php"); 
require_once("functions.php"); 
require('_config/connection.php'); 
?> 
<?php 

session_start(); 

include '_config/connection.php'; 


$password = md5($_POST['password']); 
$newpassword = md5($_POST['newpassword']); 

$result = mysql_query("SELECT password FROM ptb_users WHERE id=".$_SESSION['user_id']." AND password = '".$password."'"); 
if(!$result) 
{ 
echo "The username you entered does not exist or old password didn't match"; 
} 
else 
{ 
    $sql=mysql_query("UPDATE ptb_users SET password='$newpassword' WHERE id=".$_SESSION['user_id'].""); 
} 
if($sql) 
{ 
    echo "Thank You. Your Password has been successfully changed."; 
} 
?> 
+0

MD5被打破* *爲散列密碼。請使用更安全的密碼散列函數。 – 2013-02-09 01:57:19

+0

哦同樣的問題由同一用戶...多麼驚喜;) – itsid 2013-02-09 04:36:34

回答

0

對於檢索密碼和檢查匹配查詢,您可以使用@hexacyanide建議的答案。

從MySQL獲得密碼字段更新密碼,您需要更改

mysql_query("UPDATE ptb_users SET password='$newpassword'

mysql_query("UPDATE ptb_users SET password='".$newpassword."'

+0

謝謝但更新密碼工作正常,它只是不會檢查舊密碼,我不知道如何做到這一點。 – 2013-02-09 04:32:39

+0

嘗試echo $變量$ password,$ oldpassword = $ result ['password'];並檢查它們有何不同。或者$ result ['password']是否爲空值? – 2013-02-09 04:36:11

+0

否則最後一個查找錯誤的變量是你的 - $ _SESSION ['user_id'] – 2013-02-09 04:39:37