- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好:我需要为登录页面设置忘记密码。在这里,我解释了到目前为止我所拥有的。
email_exists()
将验证电子邮件。如果是这样,send_email()
与 $temp_pass
key 和链接。数据库将存储 $temp_pass 以供进一步操作和验证。 $temp_pass
函数reset_password。 $temp_pass
与数据库。如果是这样,请加载 View 以输入新密码 - 这就是我卡住的地方,因为表单指向无法识别的 Controller $temp_pass
因此无法重置密码。 public function recover(){
//Loads the view for the recover password process.
$this->load->view('recover');
}
public function recover_password(){
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'required|trim|xss_clean|callback_validate_credentials');
//check if email is in the database
$this->load->model('model_users');
if($this->model_users->email_exists()){
//$them_pass is the varible to be sent to the user's email
$temp_pass = md5(uniqid());
//send email with #temp_pass as a link
$this->load->library('email', array('mailtype'=>'html'));
$this->email->from('user@yahoo.com', "Site");
$this->email->to($this->input->post('email'));
$this->email->subject("Reset your Password");
$message = "<p>This email has been sent as a request to reset our password</p>";
$message .= "<p><a href='".base_url()."main/reset_password/$temp_pass'>Click here </a>if you want to reset your password,
if not, then ignore</p>";
$this->email->message($message);
if($this->email->send()){
$this->load->model('model_users');
if($this->model_users->temp_reset_password($temp_pass)){
echo "check your email for instructions, thank you";
}
}
else{
echo "email was not sent, please contact your administrator";
}
}else{
echo "your email is not in our database";
}
}
public function reset_password($temp_pass){
$this->load->model('model_users');
if($this->model_users->is_temp_pass_valid($temp_pass)){
$this->load->view('reset_password');
}else{
echo "the key is not valid";
}
}
public function update_password(){
$this->load->library('form_validation');
$this->form_validation->set_rules('password', 'Password', 'required|trim');
$this->form_validation->set_rules('cpassword', 'Confirm Password', 'required|trim|matches[password]');
if($this->form_validation->run()){
echo "passwords match";
}else{
echo "passwords do not match";
}
}
public function email_exists(){
$email = $this->input->post('email');
$query = $this->db->query("SELECT email, password FROM users WHERE email='$email'");
if($row = $query->row()){
return TRUE;
}else{
return FALSE;
}
}
public function temp_reset_password($temp_pass){
$data =array(
'email' =>$this->input->post('email'),
'reset_pass'=>$temp_pass);
$email = $data['email'];
if($data){
$this->db->where('email', $email);
$this->db->update('users', $data);
return TRUE;
}else{
return FALSE;
}
}
public function is_temp_pass_valid($temp_pass){
$this->db->where('reset_pass', $temp_pass);
$query = $this->db->get('users');
if($query->num_rows() == 1){
return TRUE;
}
else return FALSE;
}
最佳答案
我不太确定你被困在哪里。我可以了解到您正在为用户创建一个临时标志,您在用户单击链接时验证该标志。因此,这意味着,您可以在那时开始一个 session ,并且用户只能重置密码,只有在该特定 session 处于事件状态时。
在这一步之后,你要求用户输入他的新密码,因为你有一个临时标志,你称之为 $temp_pass
对于用户(请注意它应该是唯一的),然后您可以获得尝试重置密码的用户。
所以,你需要做的就是运行这种类型的数据库查询 -
$this->db->where('reset_pass', $temp_pass);
$this->db->update('users', $data); // where $data will have the fields with values you are updating
recover_password()
功能 -
$message .= "<p><a href='".base_url()."main/reset_password/$temp_pass'>Click here </a>if you want to reset your password, if not, then ignore</p>";
$message .= "<p><a href='".base_url()."main/reset_password/".$temp_pass."'>Click here </a>if you want to reset your password, if not, then ignore</p>";
$temp_pass
进入 session 并从那里检索。这是一种方法。
关于Codeigniter - 忘记密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14180462/
我有一个 Mercurial 存储库。它在 rev A 上。我做了一些更改,提交(到 rev B)并推送。然而,后来,我意识到我不想做那些改变。我更新回修订版 A,并对修订版 C 进行了一些替代更改。
我是 Prolog 的新手,我遇到了一个问题,我的变量似乎被遗忘了 test(S) :- X = 'testing', (S = y, write(X) ); (S = n, write(X) ).
这个问题已经有答案了: How to handle a lost KeyStore password in Android? (43 个回答) 已关闭 6 年前。 我有一组应用程序,在将它们发布到商店
因为this question从未得到答复,我希望有人可以帮助我重置密码以连接到我的 neo4j 密码(位于 localhost:7474)。 Zachary wrote a post通过某人重新启动
使用 Netbeans 我曾经从 SVN 存储库中 checkout 一个项目,只是为了在 Netbeans 中测试 SVN 功能。 现在,每次我创建一个新项目或打开一个不受源代码控制的现有项目时,N
我觉得这个问题以前已经被问过,但每个发帖者的答案似乎都非常具体。 我正在寻找一种方法来识别给定元素并查找具有特定类的下一个元素。我不想处理parent()或children(),因为我正在解析一个表,
我是一名老师,正在制作一个基本的迷你 Steam 客户端,作为我的编程课的学习练习。我们正在使用 Python 和 tkinter。 该程序生成两组单选按钮。第一个是用户的“游戏库”,他们可以在其中选
我忘记了我的商业管理员帐户的 apache 密码,我要求发送一封电子邮件,但是我不知道哪个帐户与 ofbiz 服务器相关联,所以我无法查看电子邮件修改了密码,有没有人有什么提示? 谢谢 最佳答案 如果
这可能听起来很愚蠢,但我正在使用一个小型框架来生成包含 3 个类的 html: Tag extends LinkedList Attribute Attributes extends LinkedLi
我有点不知道该怎么办。我在这个站点和 mysql 站点之间找到了几个关于如何解决忘记的 root 密码的选项,但我想我现在已经把它弄坏了。 我无法将 line 命令与 mysql.com 推荐的已创建
如何从 SVN 版本控制中删除文件? 它以前是由某人无意中犯下的。 它是一个需要的本地文件,但因人而异,不需要在版本控制中。 如果我删除并提交,它将为每个人删除该文件。 我无法向 svn:ignore
我正在使用 JSHINT,并注意到当我有以下代码时它不会抛出错误: function barfoo() { a = 10; } 我想要每个全局定义的变量都有一个错误。我现在有以下 gulp 任
我不久前安装了 SQL Server 2005,但忘记了在安装过程中设置的管理员密码。现在如何连接到 SQL Server? 编辑:我想我只允许 Sql Server 身份验证。使用集成安全性登录也不
如果我在 REPL 中玩并且我为函数定义了几种不同的方法: julia> methods(next) # 3 methods for generic function "next": next(i::
如果我在 REPL 中玩并且我为函数定义了几种不同的方法: julia> methods(next) # 3 methods for generic function "next": next(i::
(不确定这是否是一个可以提问的地方,但我会尝试)。在 Fedora 16 中安装一些更新后,Eclipse 不再知道如何使用 Java 文件。它无法制作它们、编译它们或格式化语法。它只是 eclips
我安装了 MySQL,但忘记了 root 密码 (Mac OSX El Capitan)。 我正在使用 [Ubuntu][1] 的教程来重置我的密码,但我很早就遇到了问题 我输入sudo/usr/lo
我理解为什么 Python 在引用实例属性时需要显式 self 限定符。 但我经常忘记它,因为我在 C++ 中不需要它。 我以这种方式引入的错误有时很难发现;例如,假设我写 if x is not N
我正在使用客户端证书通过 HTTPS 对网站进行身份验证。第一次,chrome 询问我要使用哪个证书。但是,我不知道如何冲洗/忘记这个选择来选择另一个证书。 Chrome 会记住它,但我没有找到(无论
你如何在 Laravel 中删除 cookie。这不起作用: public function logout(Request $request) { $this->guard()->logout
我是一名优秀的程序员,十分优秀!