2013-12-10 77 views
-2

我試圖創建一個html表單來更改php中的密碼。 我的數據庫是在easyphp中創建的。在php中更改密碼html表格

這裏是我寫的密碼更改密碼,當我測試它什麼也沒有發生或改變。

<? 
$user_name = "root"; 
$pass_word = ""; 
$database = "login"; 
$server = "127.0.0.1"; 

if(isset($_POST['submit'])) 
    { 
    $oldpassword = md5($_POST['cur_password']); 
    $newpassword= md5($_POST['new_password']); 
    $confirm_password = md5($_POST['confirm_password']); 
    $usermane = $_SESSION['username'];   

$con = mysqli_connect($server, $user_name, $pass_word,$database); 

if (!$con) 
{ 
die('Could not connect: ' . mysqli_connect_error()); 
    } 

    $select=mysqli_query("select * from login where L1='$username'"); 

    $fetch=mysqli_fetch_array($select); 
    $data_password=md5($fetch['password']); 

    if($newpassword==$confirm_password && $data_password==$oldpassword) 
    { 
    $insert=mysqli_query("update login set L2='$confirm_password' where L1='$username'"); 
    } 

    if($insert) 
    { 

    echo "Password changed"; 
    } 
    else 
    { 
     echo "Password not changed"; 
    } 

    } 
    } 
    mysqli_close($con); 

?> 

<html> 
<head> 
</head> 
<body> 
<FORM NAME ="form1" METHOD ="POST" ACTION ="changepassword.php"> 
<p>old password<br /> 
<input type="password" name="current_password" /></p> 
<p>New password<br /> 
<input type="password" name="new_password"/> 
    </p> 
    <p>Confirm password<br /> 
    <input type="password" name="confirm_password"/> 
    </p> 
    <input name="submit" type="submit" value="Save Password" /> 
    </body> 
    </html> 

請告訴我這裏有什麼問題。

謝謝:d

+1

您需要進行基本的故障排除,找出問題,然後回來並提出具體問題。傾銷你的代碼並說它不起作用是不夠的。 –

+0

$ data_password = md5($ fetch ['password']); - 密碼已經在db中編寫了?如果是的話,你不需要在這裏做md5 –

+0

你能告訴我你最後發生了什麼嗎?不更新密碼或其他東西?你的文件的名稱是「changepassword.php」?嘗試將表單的動作值留空。 Like Action =「」 – sulmanpucit

回答

2

$usermane上線12看起來像一個語法錯誤。你不應該得到任何錯誤?

+0

這應該是一個評論而不是答案 – robbmj

+3

@robbmj - 鑑於問題的質量很差,我會說這是一個足夠的答案。 –

+0

謝謝無情。 –

1

變化

$data_password=md5($fetch['password']); 

$data_password=$fetch['password']; 

您已經存儲的密碼作爲哈希(至少根據您的插入語句),當你把一個哈希散列你只是得到一個新的散列。

導致$ data_password不等於$舊密碼

if($newpassword==$confirm_password && $data_password==$oldpassword) 
{ 
    $insert=mysqli_query("update login set L2='$confirm_password' where L1='$username'"); 
} 

也爲爾薩阿迪爾指出

$usermane 

應該

$username 
+0

感謝球員的答案和評論,我會盡力根據你的回覆解決問題。 :d – Souad

1

而且usermane和用戶名不匹配

$usermane = $_SESSION['username'];   

$select=mysqli_query("select * from login where L1='$username'");