Php codeigniter登录页面未重定向到仪表板

Php codeigniter登录页面未重定向到仪表板,php,codeigniter,login,dashboard,Php,Codeigniter,Login,Dashboard,我在名为pages.php的控制器文件中遇到问题。通过具有正确凭据的登录页面登录后,pages.php不会打开仪表板。我怀疑这个问题的根源可能在pages.php中找到 请任何人谁可以编辑此代码只是帮助。或者,如果您认为问题不在页面上方的pages.php中,请建议我如何解决问题。我提到了更多的页面:- 这是rootes.php 这是核心文件夹中的MY_Controller.php <?php class MY_Controller extends CI_Controller { pu

我在名为pages.php的控制器文件中遇到问题。通过具有正确凭据的登录页面登录后,pages.php不会打开仪表板。我怀疑这个问题的根源可能在pages.php中找到

请任何人谁可以编辑此代码只是帮助。或者,如果您认为问题不在页面上方的pages.php中,请建议我如何解决问题。我提到了更多的页面:-

这是rootes.php

这是核心文件夹中的MY_Controller.php

<?php 
class MY_Controller extends CI_Controller 
{
public function __construct()
{
    parent::__construct();
}

public function isLoggedIn()
{

    $this->load->library('session');

    if($this->session->userdata('logged_in') === true) {
        redirect('../dashboard');
    }
}   

public function isNotLoggedIn()
{

    $this->load->library('session');

    if($this->session->userdata('logged_in') != true) {
        redirect('../../');
    }
}

}
这是controllers文件夹中的Users.php

<?php 
class Users extends MY_Controller
{
public function __construct()
{
    parent::__construct();

    // loading the users model
    $this->load->model('model_users');

    // loading the form validation library
    $this->load->library('form_validation');        

}

public function login()
{

    $validator = array('success' => false, 'messages' => array());

    $validate_data = array(
        array(
            'field' => 'username',
            'label' => 'Username',
            'rules' => 'required|callback_validate_username'
        ),
        array(
            'field' => 'password',
            'label' => 'Password',
            'rules' => 'required'
        )
    );

    $this->form_validation->set_rules($validate_data);
    $this->form_validation->set_error_delimiters('<p class="text-danger">','</p>');

    if($this->form_validation->run() === true) {            
        $username = $this->input->post('username');
        $password = md5($this->input->post('password'));

        $login = $this->model_users->login($username, $password);

        if($login) {
            $this->load->library('session');

            $user_data = array(
                'id' => $login,
                'logged_in' => true
            );

            $this->session->set_userdata($user_data);

            $validator['success'] = true;
            $validator['messages'] = "index.php/dashboard";             
        }   
        else {
            $validator['success'] = false;
            $validator['messages'] = "Incorrect username/password combination";
        } // /else

    }   
    else {
        $validator['success'] = false;
        foreach ($_POST as $key => $value) {
            $validator['messages'][$key] = form_error($key);
        }           
    } // /else

    echo json_encode($validator);
} // /lgoin function

public function validate_username()
{
    $validate = $this->model_users->validate_username($this->input->post('username'));

    if($validate === true) {
        return true;
    } 
    else {
        $this->form_validation->set_message('validate_username', 'The {field} does not exists');
        return false;           
    } // /else
} // /validate username function

public function logout()
{
    $this->load->library('session');
    $this->session->sess_destroy();
    redirect('../../');
}


public function updateProfile()
{
    $this->load->library('session');
    $userId = $this->session->userdata('id');

    $validator = array('success' => false, 'messages' => array());

    $validate_data = array(
        array(
            'field' => 'username',
            'label' => 'Username',
            'rules' => 'required'
        ),
        array(
            'field' => 'fname',
            'label' => 'First Name',
            'rules' => 'required'
        )
    );

    $this->form_validation->set_rules($validate_data);
    $this->form_validation->set_error_delimiters('<p class="text-danger">','</p>');

    if($this->form_validation->run() === true) {    
        $update = $this->model_users->updateProfile($userId);                   
        if($update === true) {
            $validator['success'] = true;
            $validator['messages'] = "Successfully Update";
        }
        else {
            $validator['success'] = false;
            $validator['messages'] = "Error while inserting the information into the database";
        }           
    }   
    else {
        $validator['success'] = false;
        foreach ($_POST as $key => $value) {
            $validator['messages'][$key] = form_error($key);
        }           
    } // /else

    echo json_encode($validator);
}

public function changePassword()
{
    $this->load->library('session');
    $userId = $this->session->userdata('id');

    $validator = array('success' => false, 'messages' => array());

    $validate_data = array(
        array(
            'field' => 'currentPassword',
            'label' => 'Current Password',
            'rules' => 'required|callback_validate_current_password'
        ),
        array(
            'field' => 'newPassword',
            'label' => 'Password',
            'rules' => 'required|matches[confirmPassword]'
        ),
        array(
            'field' => 'confirmPassword',
            'label' => 'Confirm Password',
            'rules' => 'required'
        )
    );

    $this->form_validation->set_rules($validate_data);
    $this->form_validation->set_error_delimiters('<p class="text-danger">','</p>');     

    if($this->form_validation->run() === true) {    
        $update = $this->model_users->changePassword($userId);                  
        if($update === true) {
            $validator['success'] = true;
            $validator['messages'] = "Successfully Update";
        }
        else {
            $validator['success'] = false;
            $validator['messages'] = "Error while inserting the information into the database";
        }           
    }   
    else {
        $validator['success'] = false;
        foreach ($_POST as $key => $value) {
            $validator['messages'][$key] = form_error($key);
        }           
    } // /else

    echo json_encode($validator);
}

public function validate_current_password()
{
    $this->load->library('session');
    $userId = $this->session->userdata('id');
    $validate = $this->model_users->validate_current_password($this->input->post('currentPassword'), $userId);

    if($validate === true) {
        return true;
    } 
    else {
        $this->form_validation->set_message('validate_current_password', 'The {field} is incorrect');
        return false;           
    } // /else  
}

}
这是views文件夹中的login.php

<!DOCTYPE html>
<html>
<head>
<title><?php echo $title; ?></title>

<!-- bootstrap css -->
<link rel="stylesheet" type="text/css" 
href="assets/bootstrap/css/bootstrap.min.css">
<!-- boostrap theme -->
<link rel="stylesheet" type="text/css" href="assets/bootstrap/css/bootstrap-theme.min.css">

<!-- custom css -->
<link rel="stylesheet" type="text/css" href="custom/css/custom.css">    

<!-- jquery -->
<script type="text/javascript" src="assets/jquery/jquery.min.js"></script>
<!-- boostrap js -->
<script type="text/javascript" src="assets/bootstrap/js/bootstrap.min.js">
</script>

</head>
<body>


<div class="col-md-6 col-md-offset-3 vertical-off-4">
<div class="panel panel-default login-form">
    <div class="panel-body">
        <form method="post" action="index.php/users/login" id="loginForm">
            <fieldset>
                <legend>
                    Login
                </legend>

                <div id="message"></div>

                <div class="form-group">
                    <label for="username">Username</label>
                    <input type="text" class="form-control" id="username" name="username" placeholder="Username" autofocus>
                </div>
                <div class="form-group">
                    <label for="password">Password</label>
                    <input type="password" class="form-control" id="password" name="password" placeholder="Password">
                </div>                                           

                <button type="submit" class="col-md-12 btn btn-primary login-button">Submit</button>                    
            </fieldset>
        </form>
    </div>
</div>
</div>

<script type="text/javascript" src="custom/js/login.js"></script>
</body>
</html>
login.js


多亏了大家,我终于得到了一个正确的答案,这个问题是由于PHP7服务器中较旧版本的codeignitor造成的,有关更多信息,请单击


嗨,我也面临同样的问题。日志没有显示任何内容,我的apache服务器被挂起。但在我的情况下,问题是我的控制器。我犯了一个错误。我正在日志中打印数组对象。而不是进行数组到字符串的转换。我解决了这个问题,重定向功能开始工作。

只需使用刷新方法,它对我有效

$this->load->helper('url);
redirect('foo', 'refresh');

你能告诉我你是如何定义$page的,以及$this->isLoggedIn和$this->isNotLoggedIn@Francisco哈恩,我已经编辑了这个问题,我需要help@AbuuJurayj试着不要在你的评论中发布太多的代码,而是重新编辑你的问题。这是太多的代码了。我不需要工作来查找相关信息。@alex感谢您的支持您使用的是什么版本的CI?有什么原因你不能升级吗?我在路上,因为没有问CI版本,我在升级我。CI 2充满了会议议题;P
<!DOCTYPE html>
<html>
<head>
<title><?php echo $title; ?></title>

<!-- bootstrap css -->
<link rel="stylesheet" type="text/css" 
href="assets/bootstrap/css/bootstrap.min.css">
<!-- boostrap theme -->
<link rel="stylesheet" type="text/css" href="assets/bootstrap/css/bootstrap-theme.min.css">

<!-- custom css -->
<link rel="stylesheet" type="text/css" href="custom/css/custom.css">    

<!-- jquery -->
<script type="text/javascript" src="assets/jquery/jquery.min.js"></script>
<!-- boostrap js -->
<script type="text/javascript" src="assets/bootstrap/js/bootstrap.min.js">
</script>

</head>
<body>


<div class="col-md-6 col-md-offset-3 vertical-off-4">
<div class="panel panel-default login-form">
    <div class="panel-body">
        <form method="post" action="index.php/users/login" id="loginForm">
            <fieldset>
                <legend>
                    Login
                </legend>

                <div id="message"></div>

                <div class="form-group">
                    <label for="username">Username</label>
                    <input type="text" class="form-control" id="username" name="username" placeholder="Username" autofocus>
                </div>
                <div class="form-group">
                    <label for="password">Password</label>
                    <input type="password" class="form-control" id="password" name="password" placeholder="Password">
                </div>                                           

                <button type="submit" class="col-md-12 btn btn-primary login-button">Submit</button>                    
            </fieldset>
        </form>
    </div>
</div>
</div>

<script type="text/javascript" src="custom/js/login.js"></script>
</body>
</html>
$(document).ready(function(){
$("#loginForm").unbind('submit').bind('submit', function() {

    var form = $(this);
    var url = form.attr('action');
    var type = form.attr('method');

    $.ajax({
        url  : url,
        type : type,
        data : form.serialize(),
        dataType: 'json',
        success:function(response) {
            if(response.success === true) {
                window.location = response.messages;
            }
            else {
                if(response.messages instanceof Object) {
                    $("#message").html('');     

                    $.each(response.messages, function(index, value) {
                        var key = $("#" + index);

                        key.closest('.form-group')
                        .removeClass('has-error')
                        .removeClass('has-success')
                        .addClass(value.length > 0 ? 'has-error' : 'has-success')
                        .find('.text-danger').remove();                         

                        key.after(value);

                    });
                } 
                else {                      
                    $(".text-danger").remove();
                    $(".form-group").removeClass('has-error').removeClass('has-success');

                    $("#message").html('<div class="alert alert-warning alert-dismissible" role="alert">'+
                      '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>'+
                      response.messages + 
                    '</div>');
                } // /else
            } // /else
        } // /if
    });

    return false;
});
});
$this->load->helper('url);
redirect('foo', 'refresh');