在codeigniter中重置密码后如何重定向

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在codeigniter中重置密码后如何重定向相关的知识,希望对你有一定的参考价值。

我有一个重置密码功能。我想知道在成功重置密码后如何将用户重定向到登录页面。这是我的代码。

public function UpdatePassword(){

    $tok = $_SESSION['token'];
    $newpass = md5($this->security->xss_clean($this->input- 
>post('newpass')));
    $confpass = md5($this->security->xss_clean($this->input- 
>post('confpass')));



        if($newpass == $confpass){

            $this->db->where('password', $tok);
            $this->db->update('user', array('password' => 
$confpass));
            if($this->db->affected_rows() > 0){
            return true;

            }else{
            return false;
            }   

        }
        else{
            $this->session->set_flashdata('error_submit', 
 'new and conf does not match');
            redirect(base_url('Login/resetpassword'));

        }

        //redirect(base_url('Login/Login'));    
}
答案

只需在密码更新代码后添加重定向功能。

public function UpdatePassword(){

    $tok = $_SESSION['token'];
    $newpass = md5($this->security->xss_clean($this->input->post('newpass')));
    $confpass = md5($this->security->xss_clean($this->input->post('confpass')));

        if($newpass == $confpass){

            $this->db->where('password', $tok);
            $this->db->update('user', array('password' => $confpass));
            if($this->db->affected_rows() > 0){
            /*here you need to add redirect url if you want redirect on login page 
            example login page url is xyz.com/login then pass login in redirect function
            */
                redirect('login');
                exit;
            }else{
                 return false;
            }

        }
        else{
            $this->session->set_flashdata('error_submit','new and conf does not match');
            redirect(base_url('Login/resetpassword'));

        }

        //redirect(base_url('Login/Login'));
}
另一答案

重定向到注销页面,以便用户可以使用新密码再次登录

public function UpdatePassword(){

$tok = $_SESSION['token'];
$newpass = md5($this->security->xss_clean($this->input->post('newpass')));
$confpass = md5($this->security->xss_clean($this->input->post('confpass')));

    if($newpass == $confpass){

        $this->db->where('password', $tok);
        $this->db->update('user', array('password' => $confpass));
        if($this->db->affected_rows() > 0){
        /*here you need to add redirect url if you want redirect on login page 
        example login page url is xyz.com/login then pass login in redirect function
        */
            redirect('logout');
            exit;
        }else{
             return false;
        }

    }
    else{
        $this->session->set_flashdata('error_submit','new and conf does not match');
        redirect(base_url('Login/resetpassword'));

    }

    //redirect(base_url('Login/Login'));
}

以上是关于在codeigniter中重置密码后如何重定向的主要内容,如果未能解决你的问题,请参考以下文章

SESSION 变量在 Codeigniter php 中的 redirect() 上被重置

Microsoft 密码重置 - 包含重置后重定向 URI 的传递参数

在Drupal中重置密码功能页面没有正确重定向

在codeigniter中如何使用ajax登录后重定向

Django 在密码重置时不会重定向到正确的路径

在 CodeIgniter 3 中重定向后 Flashdata 未清除