我正在研究一個簡單的腳本,它允許用戶在數據庫中創建帳戶並更改密碼。我遇到的唯一問題是創建一個允許用戶更改密碼的腳本。它不會在我的數據庫中更新。我正在成功發送消息,但不會在數據庫中更新。請幫助我的任何建議將不勝感激請讓我知道是否需要更多的細節?登錄名和密碼更改PHP和MYsql
<form method="POST">
old:<input type="text" name="old_pass">
new:<input type="text" name="">
conf:<input type="text" name="">
<input type="submit" name="submit" value="save">
</form>
<?php
$conn_db = mysqli_connect("localhost","root","","oz");
if(!$conn_db)
{
echo "not connect";
}
echo "connect".mysqli_error($conn_db);
SESSION_START();
if($_SERVER['REQUEST_METHOD']=="POST")
{
if(isset($_POST['submit']))
{
$old_pass=$_POST['old_pass'];
$new_pass=$_POST['new_pass'];
$re_pass=$_POST['re_pass'];
$chg_pwd=mysqli_query($conn_db,"SELECT * FROM admin WHERE email='$email'");
$chg_pwd1=mysqli_fetch_array($chg_pwd);
$data_pwd=$chg_pwd1['pass'];
if($data_pwd==$old_pass){
if($new_pass==$re_pass){
$update_pwd=mysqli_query($conn_db,"UPDATE admin SET pass='$new_pass' where email='$email'");
echo "<script>alert('Update Sucessfully'); window.location='index.php'</script>";
}
else{
echo "<script>alert(`Your new and Retype Password is not match`); window.location='index.php'</script>";
}
}
else
{
echo "<script>alert(`Your old password is wrong`); window.location='change.php'</script>";
}}
}
?>
請求停止存儲純文本密碼 – rtfm
**請勿使用純文本密碼**請使用** [PHP的內置函數]( http://php.net/manual/en/function.password-hash.php)**來處理密碼安全性。如果您使用的PHP版本低於5.5,則可以使用password_hash()** [兼容包](https://github.com/ircmaxell/password_compat)**。確保你** [不要越過密碼](http://stackoverflow.com/q/36628418/1011527)**或在哈希之前使用其他任何清理機制。這樣做會更改密碼並導致不必要的附加編碼。 –
除了你的代碼受到SQL注入攻擊之外,你還是希望使用參數化語句或至少逃避你的輸入。 –