php - 无法将令牌从函数发送到另一个函数
问题描述
我想使用 更改密码sql
。我从这样的网址中获取令牌:
http://localhost:8001/app/changepass?&token=nsfrvomltz
我用来GET method
从 url 获取令牌“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;
}
}
收到电子邮件后,用户点击链接,然后输入新密码。
在此之后,他单击“确定”按钮,但密码没有改变。
解决方案
推荐阅读
- python - 如何将 DataFrame 拆分为 FirstName 列和 LastName 列
- android - 在 Recyclerview 列表中闪烁
- python - 使用python请求库在http请求中发送json
- python - 不要让matplotlib自动调整x轴的顺序
- node.js - Nodejs 同步 HTTP 请求
- sql-server - 如何在sql server函数中执行动态sql并返回标量值
- java - 如何在java中管理客户端的多个套接字
- jenkins - JENKINS.SF(访问被拒绝)
- java - 通过 excel vba 执行时,Jar 文件将永远运行
- python-2.7 - subprocess.Popen 模块将输出作为第一行