无法将令牌从功能发送到另一个功能

时间:2019-10-05 11:32:41

标签: php

我想使用sql更改密码。我从这样的网址中获取令牌:

http://localhost:8001/app/changepass?&token=nsfrvomltz

我使用GET method从网址获取该令牌“ nsfrvomltz”:

if(isset($_GET['token'])){
    $token = $_GET['token'];
}

然后我使用新密码将其发送到另一个功能:

$this->userModel->changepass($newPass, $token)

此函数在另一个我可以使用控制器访问的类中:

public function changepass($newPass, $token){
        $this->db->query("UPDATE users SET password = :newPass WHERE token = :token");
        $this->db->bind(':password', $newPass);
        $this->db->bind(':token', $token);
        if($this->db->execute()){
            return true;
        } else {
            return false;
        }
    }

问题在于,即使我使用了GET method,令牌也没有使用该功能,因此查询无法正常工作,密码也不会更改。

$newPass具有值,但令牌仍为空。我不知道为什么。

我感谢任何帮助。

更新:

我使用另一种功能向用户发送电子邮件:

public function forget($email){
         $this->db->query('SELECT token FROM users WHERE email = :email');
        $this->db->bind(':email', $email);
        $res = $this->db->single();
        $message = "Please click on this link to change your password:
http://localhost:8001/app/changepass?&token=$res->token";
        mail($email, "Forget password", $message, "From: app");
        if($this->db->execute()){
            return true;
        } else {
            return false;
        }
    }

已收到电子邮件,用户单击链接,然后输入新密码。

此后,他单击“确定”按钮,但密码未更改。

0 个答案:

没有答案