PHP - 如果语句不起作用

时间:2015-03-01 17:22:19

标签: php

我是php的新手,我在使用以下代码时遇到了一些问题:

$code = $_COOKIE['user'];
$db=mysql_connect ("XXX.XXX.XXX",  "XXX", "XXX") or die ('I cannot connect  to the database because: ' . mysql_error());
$mydb=mysql_select_db("XXX");
$sql="SELECT * FROM accounts WHERE UserCode = '$code'";
$result=mysql_query($sql); 
while($row=mysql_fetch_array($result)){ 
    $current = $row['Userpassword'];
};
$toldcurr = $POST["oldpass"];
$pass1 = $_POST["newpass1"];
$pass2 = $_POST["newpass2"];
if ($current !== $toldcurr) {
    header ('Location: changepasserror1.html');
};
if ($pass1 !== $pass2) { 
    header ('Location: changepasserror2.html');
};
$timywhimy = gmdate('Y-m-d H:i:s e');
$query1 = "UPDATE accounts SET Userpassword='$pass2' WHERE UserCode='$code'";
$query2 = "INSERT INTO accountupdate (`User`, `Change`, `From`, `To`, `Time`) 
VALUES ('$code', 'Password', '$current', '$pass2', '$timywhimy')";
mysql_query($query1);
mysql_query($query2);
header ('Location: changepass.html');

我遇到的问题是

if ($current !== $toldcurr) {
        header ('Location: changepasserror1.html');
    };
if ($pass1 !== $pass2) { 
        header ('Location: changepasserror2.html');
    };

无效。当我知道这两个变量不相等时,它仍然继续脚本并更改MySQL数据库中的数据。

感谢任何帮助。

更新

我已将代码更新为

 if ($current !== $toldcurr) {
    header ('Location: changepasserror1.html');
    exit();
}
if ($pass1 !== $pass2) { 
    header ('Location: changepasserror2.html');
    exit();
}

除此之外,唯一的变化是mysql_mysqli_

我遇到的问题是,即使changepasserror2.html$pass1相同,也始终会将我发送给$pass2。 此外,它永远不会将我发送到changepasserror1.html,即使$current$toldcurr不同。

如果$pass1 = $pass2$current = $toldcurr会发生什么,那么应该更新数据库并重定向到成功页面。如果其中一个变量彼此不相等,那么它将重定向到错误页面,并且不会对数据库进行更新。

2 个答案:

答案 0 :(得分:-1)

首先将此$toldcurr = $POST["oldpass"];更改为$toldcurr = $_POST["oldpass"];

答案 1 :(得分:-2)

只需使用下面的语句就可以了解

  if ($current !== $toldcurr) {
            header ('Location: changepasserror1.html');
            return false;
        }
     if ($pass1 !== $pass2) { 
            header ('Location: changepasserror2.html');
          return false;
        }

使用上面的代码,当你用oops风格编写代码时,它会很清楚并帮助你 尝试写出适当的条件