Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新忘记的密码不起作用_Php_Mysql - Fatal编程技术网

Php 更新忘记的密码不起作用

Php 更新忘记的密码不起作用,php,mysql,Php,Mysql,这是我用来更新忘记密码的人的密码。问题是,当用户提交新密码时,要么所有密码都更改为他编写的新密码,要么什么也没有发生 这是我的代码: <?php require('connect.php'); $codeee = $_GET["recov"]; $paso = $confpaso = ""; $pasoErr = $confpasoErr = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["

这是我用来更新忘记密码的人的密码。问题是,当用户提交新密码时,要么所有密码都更改为他编写的新密码,要么什么也没有发生

这是我的代码:

<?php 
require('connect.php');
$codeee = $_GET["recov"];


$paso = $confpaso = "";
$pasoErr = $confpasoErr = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["paso"])) {
        $pasoErr = "Password is required";
    } else {
        $paso = md5(test_inputing($_POST["paso"]));
    }

    $confpaso = md5(test_inputing($_POST["confpaso"]));

    if($confpaso != $paso) {
        $confpasoErr = "Passwords do not match";
    }

    if($pasoErr == $confpasoErr && $confpasoErr == "") {
        $changepaso = "UPDATE users SET password = '$paso' WHERE forgotcode = '$codeee'";            

        if ($conn->query($changepaso) === TRUE) {
            $tellthem = "Password Changed";     
        } else {
            $tellthem = "Something Happened, the password was not changed";
        }   
    }
}

function test_inputing($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data; 
}  
?>       

SQL中放弃的代码是什么?$\u GET[“recov”]填充是否正确?看起来可能是空白的,也许吧?这里很多事情都不对劲。首先,不要使用md5!!请还可以使用预先准备好的语句并丢弃mysql函数。另外,如何处理
$tellthes
变量???@SimosFasouliotis forgotcode是用户请求恢复电子邮件时生成的字符串。然后在电子邮件url中,recov等于我用GET获取的代码。然后我想使用该代码更新用户的密码。问题是有时它会更新除his之外的所有密码,或者什么也不做。@类似的$tellthes变量只是在代码后面的“echo”中使用,用于通知用户如果执行echo$codeee;您看到生成的代码了吗?在SQL中什么是forgotcode?$\u GET[“recov”]填充是否正确?看起来可能是空白的,也许吧?这里很多事情都不对劲。首先,不要使用md5!!请还可以使用预先准备好的语句并丢弃mysql函数。另外,如何处理
$tellthes
变量???@SimosFasouliotis forgotcode是用户请求恢复电子邮件时生成的字符串。然后在电子邮件url中,recov等于我用GET获取的代码。然后我想使用该代码更新用户的密码。问题是有时它会更新除his之外的所有密码,或者什么也不做。@类似的$tellthes变量只是在代码后面的“echo”中使用,用于通知用户如果执行echo$codeee;你看到生成的代码了吗?