gpt4 book ai didi

PHP 不工作,数据库不更新

转载 作者:行者123 更新时间:2023-11-30 23:53:34 25 4
gpt4 key购买 nike

我正在编写此 php 脚本来更新用户密码,需要旧密码、新密码和新密码确认。这一切似乎都取决于实际的 UPDATE mysql 语句。不确定我做错了什么,感谢大家的帮助!

另外,我知道它不安全,我只是想先让它工作,我是一个 php 新手!

我快崩溃了,当我运行它时,一切似乎都正常,除了它在 if (empty($error)){ 之前中断,我已经测试了 session 电子邮件的 echo 它会显示,但是它不会使用新密码更新数据库。请帮忙!下面是我的代码:

<?php
session_start();

include('database_connection.php');

$error = array();

if (empty($_POST['oldpassword'])){
$error[] ='You did not enter your current password!';
} else {
$oldpassword = $_POST['oldpassword'];
}



if (empty($_POST['newpassword'])){

$error[] = 'You did not enter a new password!';
} else {
if(preg_match("/^.*(?=.{8,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).*$/", $_POST["newpassword"])){
$newpassword = $_POST['newpassword'];
} else{
$error[] = 'Password must be at least 8 characters and must contain at least one lower case letter, one upper case letter and one digit!';
}
}

if (empty($_POST['newpasswordcon'])){
$error[] = 'You did not enter your new password confirmation!';
} else {
if(preg_match("/^.*(?=.{8,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).*$/", $_POST["newpasswordcon"])){
$newpasswordcon = $_POST['newpasswordcon'];
} else{
$error[] = 'Password must be at least 8 characters and must contain at least one lower case letter, one upper case letter and one digit!';
}
}


if($_POST['newpassword'] != $_POST['newpasswordcon']){
$error[] ='New password and confirmation do not match!' ;
}


$sql = "SELECT password FROM users WHERE email='" . $_SESSION['email'] . "'";
$result = mysql_query($sql);


if( $r = mysql_fetch_array($result) ) {
extract($r);



if($_POST['oldpassword'] != $password);{
$error[] ='Incorrect current password!';

}

//breaks here
echo $_SESSION['email'];

if (empty($error)){

echo $_SESSION['email'];
mysql_query("UPDATE users SET password='$newpassword' WHERE email='" . $_SESSION['email'] . "'");


echo '<p class ="alert alert-success fade in">Success! Your password has been updated!</p>';

}
} else{

foreach ($error as $key => $values) {

echo '<p class ="alert alert-error fade in">'.$values.'</p>';


}
}
?>

最佳答案

有一个不应该出现的分号。

if ($_POST['oldpassword'] != $password);{ // <- remove this semicolon after )
$error[] ='Incorrect current password!';
}

关于PHP 不工作,数据库不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14676757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com