如何解决“302发现”在codeigniter中提交表单后的响应 [英] how to solve "302 found" response after form submit in codeigniter

查看:138
本文介绍了如何解决“302发现”在codeigniter中提交表单后的响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写codeigniter,我有一个登录视图,我提交表单到控制器的登录功能,但我得到的响应是一个302找到,并重定向到我的登录页面。

I am working on codeigniter, i have a login view where i submit form to a controller for login functionality, but the response i get is a 302 Found, and redirects to my login page.

我的控制器代码是

class super_admin extends CI_Controller
{

    public function index()
    {
        $this->load->view('admin/login_view');
    }

    function checkLogin()
    {
        $email = mysql_real_escape_string($_POST['email']);
        $pwd = mysql_real_escape_string($_POST['pwd']);

        $this->load->model('admin/admin_model');
        $user = $this->admin_model->checkUser($email);
        //print_r($user[0]);
        if ($user && ($user[0]->password == md5($pwd)))
        {

            $user_data = array(
                            'user_id' => $user[0]->user_id,
                            'user_name' => $user[0]->name,
                            'user_email' => $user[0]->email
                        );

            $this->session->set_userdata($user_data);
            $this->load->view('admin/dashboard_view',$user_data);
        }
        else
        {
            $this->session->set_flashdata('invalid', '<div class="alert alert-error" id="invalid" ><h6>Invalid Email or Password</h6></div>');
            redirect('admin/super_admin');
        }
    }
}

推荐答案

请不要在提交表单的方法中加载视图使用重定向,否则您不会收到帖子请求刷新您的页面,您的条件返回false,这将导致故障。尝试此解决方法。也检查你的$用户变量conatins。

Please do not load the view in methods where you submit your forms use redirects otherwise you do not get the post requests when you refresh your page and your condition returns false which will cause malfunctioning. Try this workaround. Also check what your $user variable conatins.

class super_admin extends CI_Controller
{

    public function index()
    {
        $this->load->view('admin/login_view');
    }

    function checkLogin()
    {
        $email = $this->input->post('email', TRUE);
        $pwd = $this->input->post('pwd', TRUE);

        $this->load->model('admin/admin_model');
        $user = $this->admin_model->checkUser($email);
        //print_r($user[0]);
        if ($user && ($user[0]->password == md5($pwd)))
        {

            $user_data = array(
                            'user_id' => $user[0]->user_id,
                            'user_name' => $user[0]->name,
                            'user_email' => $user[0]->email
                        );

            $this->session->set_userdata($user_data);
            redirect('super_admin/dashboard');
        }
        else
        {
            $this->session->set_flashdata('invalid', '<div class="alert alert-error" id="invalid" ><h6>Invalid Email or Password</h6></div>');
            redirect('admin/super_admin');
        }
    }

    function dashboard()
    {
       if( $this->session->userdata('user_id') ) {
         $user_data = $this->session->all_userdata();
         $this->load->view('admin/dashboard_view',$user_data);
       } else {
         redirect('admin/super_admin');
       }
    }
}

这篇关于如何解决“302发现”在codeigniter中提交表单后的响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆