mysql更新当前用户的密码

时间:2013-12-20 09:16:49

标签: php mysql

我在mysql数据库中的更新查询遇到了一些麻烦。 我有一个登录表单,当用户登录时,会创建用户的电子邮件,密码和ID并将其存储在会话中(不确定这是否是最安全的方式,请告诉我正确/最安全的方式)。当他们登录时,他们可以去改变他们的密码(或者应该是)。问题是更新密码查询对我不起作用。

以下是我的代码,用于设置用户登录时的ID,电子邮件和密码:

session_start();
$_SESSION['id'] = $id;
$_SESSION['email'] = $email;
$_SESSION['password'] = $password;

以下是用于更新密码的代码:

session_start();
if  (isset($_POST['email']) && isset($_POST['password']) && isset($_POST['newPassword']) && isset($_POST['oldPassword'])) {
                    $email = $_POST['email'];
                    $password = $_POST['password'];
                    $newPassword = $_POST['newPassword'];
                    $oldPassword = $_POST['oldPassword'];

                mysql_select_db("users", $conn);

        if(isset($_POST['update'])) {
            $update = "UPDATE users SET Password='$newPassword' WHERE Password='$_POST[hidden]'";
            mysql_query($update, $conn);
            $_SESSION['password'] = $newPassword;
        }

我有一个“旧密码”框,用于检查旧密码是否正确以及“新密码”框,该框是用户点击“更新”时的新密码。

问题是当我点击更新时没有任何反应。我尝试使用mysql_error()函数,但它没有用。页面刷新太快。 请注意,如果您要下载它,这不是所有代码: https://www.mediafire.com/?fkjwt58hk5kyt3w  嗨伙计们,我在mysql数据库中的更新查询有点麻烦。 我有一个登录表单,当用户登录时,会创建用户的电子邮件,密码和ID并将其存储在会话中(不确定这是否是最安全的方式,请告诉我正确/最安全的方式)。当他们登录时,他们可以去改变他们的密码(或者应该是)。问题是更新密码查询对我不起作用。

我知道这种mysql服务方式非常不安全,容易受到sql注入和旧方式的影响,但这只是练习而且很有趣。之后,我将学习如何防止sql注入和XSS。

我已经准备好在这个网站上有其他类似问题,但他们根本没有帮助我,我搜索了很多谷歌并在YouTube上搜索了它。无处可寻!!!!

请帮忙! Thanx提前

如果还有其他什么你想要我发帖或者我没有说什么,请告诉我。

PS:如果可以,请下载所有文件并检查并自行运行:)

3 个答案:

答案 0 :(得分:0)

  1. 请使用mysql_real_escape_string
  2. 转义帖子参数
  3. 不要使用mysql_ * functions - >使用mysqli或PDO进行查询
  4. 你试过调试吗? ;)

    $result = mysql_query($update, $conn);
    if(!$result){
        echo mysql_error();
        exit;
    }
    

答案 1 :(得分:0)

你需要发布你得到的错误。

从我看到的我可以猜到where子句没有按照需要得到解决。

你写过WHERE Password='$_POST[hidden]'可能应该使用变量。

$oldpassword=$_POST['hidden']

WHERE Password='$oldpassword'

答案 2 :(得分:0)

运行sql时请使用调试代码

mysql_query($update, $conn)or die(mysql_error);

这样你就可以得到错误