php - 如何使更改密码的 PHP 脚本工作

标签 php mysql change-password

<分区>

我是一个简单的人,对编程的了解还不够粗略。我有一个家庭网站,我们可以在其中共享照片、视频、文件和其他资源。该网站有一个简单的登录功能,可以开始一个 session ,我希望能够让人们能够在登录后更改密码。

数据库是MySQL,非常简单,只有; ID、用户名和密码列(根本没有加密或散列)。

当涉及到 PHP 和 MySQL 时,我倾向于研究其他人的示例并将它们变成我自己的,使用登录脚本我发现这很容易做到。但是,我已经尝试并尝试找到适合我的网站并允许用户更改密码的 PHP 片段,但不幸的是每次尝试都失败了。

我希望有人可以帮助我开发我已经拥有的东西,使其适用于我的网站,我们将不胜感激任何帮助!

我的表单只是要求登录用户输入新密码,然后确认相同的密码:

    <form name="frmChange" role="form" class="form-signin" method="POST" action="changepword_script.php">

  <div class="form-group">

    <label for="InputPassword2">New Password</label>
    <input type="password" class="form-control" id="InputPassword2" placeholder="New Password" name="newPassword">
     <label for="InputPassword3">Confirm New Password</label>
    <input type="password" class="form-control" id="InputPassword3" placeholder="Confirm Password" name="confirmPassword">  </div>
   <button class="btn btn-lrg btn-default btn-block" type="submit" value="send">Change it</button>


      </div>


      </form>

我的 php 脚本(也非常简单)只需要检查密码是否匹配,如果匹配则更新数据库(我已经删除了数据库的 IP 地址并用零替换):

<?php
session_start();

if (!(isset($_SESSION['username']) && $_SESSION['username'] != ''))
{
    header("location:login.php");
}

$dbcon = mysql_connect ('000.000.000.00', 'my_db_username', 'my_db_password')

$password1 = $_POST['newPassword'];
$password2 = $_POST['confirmPassword'];

$password1 = mysql_real_escape_string($password1);
$password2 = mysql_real_escape_string($password2);

if ($password1 <> $password2){ echo "Your passwords do not match.";}
{
    echo "your passwords do not match";
}
if (mysql_query(UPDATE ebsmembers SET password='$password1' WHERE username='$session[username]'))
{
    echo "You have successfully changed your password.";
}

mysql_close($dbcon);
header("location:login.php");

?>

再一次,任何帮助将不胜感激,因为我真的很难完成这项工作!

非常感谢, 保罗

最佳答案

调整了一些错误或对我来说没有意义的东西。也切换到 mysqli_*

<?php

session_start();

if (!(isset($_SESSION['username']) || $_SESSION['username'] == ''))
{
    header("location:login.php");
}

$dbcon = mysqli_connect('000.000.000.00', 'my_db_username', 'my_db_password', 'my_db_name') or die(mysqli_error($dbcon));

$password1 = mysqli_real_escape_string($dbcon, $_POST['newPassword']);
$password2 = mysqli_real_escape_string($dbcon, $_POST['confirmPassword']);
$username = mysqli_real_escape_string($dbcon, $_SESSION['username']);

if ($password1 <> $password2)
{
    echo "your passwords do not match";
}
else if (mysqli_query($dbcon, "UPDATE ebsmembers SET password='$password1' WHERE username='$username'"))
{
    echo "You have successfully changed your password.";
}
else
{
    mysqli_error($dbcon);
}
mysqli_close($dbcon);

?>

关于php - 如何使更改密码的 PHP 脚本工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24326476/

相关文章:

php - 从 mysql 创建 JSON 结果

mysql - 更改MySQL密码而不显示它

swift - 用于加密/解密时处理更改密码的最佳方法

mysql - 如何从物理文件恢复MySQL数据库

php - 无法正确创建数组

mysql - SQL 查询获取类型 1 的所有用户的列表,以及一个新列,告诉他们是否也有类型 2

azure - 如何更改 Azure(经典)VM 的 RDP 密码

php - Symfony Assets bundle

php - 如何正确比较 strtotime 中的两个值

php - 如何从MySQL向表中输入数据?