更改密码无效

时间:2016-01-04 10:01:26

标签: php

我的更改密码脚本有问题。你能帮我解释一下这段代码吗?它应该工作,但它不起作用。点击提交按钮后,页面就会刷新。

<?php
session_start();
require_once 'dbconnect.php';

if (isset($_POST['ulozitzmeny']) && ($_SESSION['user']) && strlen($_SESSION['user']) > 0) {

    $password = hash('sha512', mysql_real_escape_string($_POST['heslo']));
    $newpassword = hash('sha512', mysql_real_escape_string($_POST['noveheslo']));
    $passwordconf = hash('sha512', mysql_real_escape_string($_POST['potvrzenihesla']));

    $res = mysql_query("SELECT password FROM users WHERE username='$_SESSION[user]'");
    $row = mysql_fetch_array($res);

    if ($password != $row[0]) {

        echo" <div style='position:absolute;left:29.5%;top:10%;width:41%;' class='alert alert-danger fade in'>
             <a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a>
             <strong>Chyba!</strong> Nesprávné heslo!
             </div>";
    } else {

        if ($newpassword != $passwordconf) {

            echo" <div style='position:absolute;left:29.5%;top:10%;width:41%;' class='alert alert-danger fade in'>
             <a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a>
             <strong>Chyba!</strong> Hesla se neshodujĂ­!
             </div>";
        } else {

            if (mysql_query("UPDATE users SET password='$newpassword' WHERE username = '$_SESSION[user]'")or die(mysql_query)) {

                echo" <div style='position:absolute;left:29.5%;top:10%;width:41%;' class='alert alert-success'>
             <a href='#' class='close' data-dismiss='alert' aria-label='close'>&times;</a>
             <strong>Úspěch!</strong> Změny proběhly úspěšně!               
             </div>";
            }
        }
    }
}
?>

2 个答案:

答案 0 :(得分:2)

请检查您的表单标签。从我在http://pastebin.com/9FCsebpt看到的那个。我注意到缺少两个必要的属性。

  • 您的表单没有方法属性,因此绝对不会通过此条件Clip Subviews
  • 您的表单没有操作属性。因此,没有文件用于处理脚本。

在表单中更正这些内容,并确保您的代码能够正常运行。

答案 1 :(得分:1)

我认为错误发生在此请求中

"SELECT password FROM users WHERE username='$_SESSION[user]'"

如果您使用数组来获取数据,则需要在密钥周围放置'

请尝试此请求,而不是:

"SELECT password FROM users WHERE username='".$_SESSION['user']."'"