1
我對PHP很陌生,所以我仍然處於學習階段。 我希望我能在這裏得到一些很好的答案,也許有人有一些改進的提示。用PHP更改密碼
我知道事情可能是錯的,但我仍然在學習。
我現在試着做的是一個簡單的「更改密碼」表單爲我的網站。
<?php
include '../config.php';
$connection = mysqli_connect($servername, $username, $password, $dbname);
if ($connection->connect_error){
die("Connection failed: " . $conn->connect_error);
} else {
echo "Connected successfully";
}
if(isset($_POST['submit']) && $_POST['submit'] = "submit"){
$username = mysql_real_escape_string($connection, $_POST['username']);
$password = md5($connection, $_POST['password']);
$newpassword = md5($connection, $_POST['newpassword']);
$confirmnewpassword = md5($connection, $_POST['confirmnewpassword']);
$result = mysql_query("SELECT password FROM users WHERE username='$username'");
if(!$result) {
echo "The username does not exist!";
}
else if($password != mysql_result($result, 0)){
echo "The password is not correct!";
}
if($newpassword === $confirmnewpassword) {
$sql = mysql_query("UPDATE users SET password = '$newpassword' WHERE username = '$username'");
}
if(!$sql) {
echo "Password has been changed!";
}else{
echo "Passwords do not match!";
}
}
?>
<form name="newprwd" action="" method="post">
username :<input type="text" name="username" value=""><br>
Passord :<input type="password" name="password" value=""><br>
Nytt passord :<input type="password" name="newpassword" value=""><br>
Bekreft Passord :<input type="password" name="confirmnewpassword" value=""><br>
<input type="submit" name="submit" value="Endre passord"><br>
</form>
這是我在我的change-pw.php文件中的代碼。
$servername = "*****";
$username = "****";
$password = "***";
$dbname = "***";
這是我用config.php文件連接數據庫的方式。 我沒有在這裏顯示服務器名稱,但您可以看到我如何連接到它。
我想要的是從數據庫中獲取密碼和用戶名的形式並對其進行更改。
是的,我知道這裏有一些挪威語言,但那只是回聲的。
我的問題:
當我寫一個用戶名,密碼,新密碼和確認密碼,我從如果(!$結果)得到的消息,並從如果(!$ SQL),但它不會改變密碼。 它說用戶名不存在並且密碼已被更改。
有人看到我看不到的問題嗎?
我希望對這個腳本有正面和負面的評論,以便我可以改進。
謝謝!
您正在使用哪個PHP版本? 'mysql_query'自5.5.0開始已被棄用,並已在PHP 7中被刪除。您應該考慮至少使用'mysqli_query'或者甚至切換到PDO(推薦)。 – Paul
另外,你是否調試過'$ result'?什麼樣的錯誤信息已被記錄? – Paul
如果我沒有弄錯,我正在使用最新的PHP。我們正在使用的是mysqli。 我一直沒有試圖調試$結果。我怎麼做? – nikon01