[英]How to update a user's password in the database using a form
我已經編寫了這段代碼來更新用戶密碼,並且似乎是根據回顯來發布的,但是在嘗試登錄時,無論新密碼還是舊密碼都不起作用! 需要幫助,這是代碼:
if(isset($_POST['confirmReset'])){
$q = "SELECT * FROM user WHERE email = '".$_POST['email']."'";
$resObj = mysqli_query($conn, $q);
$rowcount=mysqli_num_rows($resObj);
//var_dump($rowcount);
if ($rowcount == 1) {
$q = "UPDATE user SET password = '".md5($password)."' WHERE email = '".$_POST['email']."'";
if (mysqli_query($conn, $q)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
$rowcount=mysqli_num_rows($resObj);
} else {
}
var_dump($_POST);
}
您必須定義$ password變量。
由於您的代碼比較精簡,也許輸入中包含密碼“ $ _POST ['confirmReset']”?
$password = $_POST['confirmReset'];
像那樣 :
if(isset($_POST['confirmReset'])) {
$password = $_POST['confirmReset'];
// Following the code ...
您從哪里獲取$ password的值?
if(isset($_POST['confirmReset'])){
$password = $_POST['password']; // Change this with the name of the POST variable.
$q = "SELECT * FROM user WHERE email = '".$_POST['email']."'";
$resObj = mysqli_query($conn, $q);
$rowcount=mysqli_num_rows($resObj);
//var_dump($rowcount);
if ($rowcount == 1) {
$q = "UPDATE user SET password = '".md5($password)."' WHERE email = '".$_POST['email']."'";
if (mysqli_query($conn, $q)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
$rowcount=mysqli_num_rows($resObj);
} else {
}
要檢查密碼是否已更新,可以使用:
mysqli_affected_rows()
這將為您提供更新的行數。
單獨進行md5加密,然后再使用它
$v1 = $_POST['password'];
$v2 = md5($v1);
使用此$ v2更新SQL查詢中的密碼
Update tb_name set password = '".$v2."' where email = '".$email."'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.