gpt4 book ai didi

php - 使用 PHP 更改密码

转载 作者:行者123 更新时间:2023-11-30 22:19:43 28 4
gpt4 key购买 nike

我是 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 文件连接到数据库的方式。我没有在此处显示服务器名称,但您可以了解我如何连接到它。

我想要的是从数据库中获取密码和用户名并进行更改的表单。

是的,我知道这里有一些挪威语单词,但那只是为了 echo 。

我的问题:

当我输入用户名、密码、新密码和确认密码时,我会收到来自 if(!$result) 和 if(!$sql) 的消息,但它不会更改密码。提示用户名不存在,密码已更改。

有人看到我看不到的问题吗?

我希望对这个脚本有正面和负面的评论,以便我可以改进。

谢谢!

最佳答案

<?php
$result = mysql_query("SELECT password FROM users WHERE username='$username'");
if($row = mysql_fetch_row($result)) {
if($password != $row[0]) {
echo "The password is not correct!";
}
elseif($newpassword === $confirmnewpassword) {
$sql = mysql_query("UPDATE users SET password = '$newpassword' WHERE username = '$username'");
}else{
echo "Passwords do not match!";
}
}else{
echo "The username does not exist!";
}

?>

这仅对 PHP 5.x 有效。对于 PHP 7,您需要更改为 mysqli 或 PDO。

关于php - 使用 PHP 更改密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36977351/

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