繁体   English   中英

显示警报消息,但没有登录表单

[英]The alert message is displaying without the login form

在下面的代码点火器代码中,我放置了控制器并查看部件。现在,如果非活动者试图登录该帐户,它应该与登录表单一起显示在活动用户中。在我的情况下,该消息未登录即显示,最后登录表单消失了。 控制器:

function index()
    {
        $data['main_content'] = 'login_form';
        $this->load->view('includes/template', $data);      
    }
    function inactive()
    {
    echo"<script>alert('In active user');</script>";
    }

    function validate_credentials()
    {       
        $this->load->model('membership_model');
        $query = $this->membership_model->validate();

        if($query) // if the user's credentials validated...
        {
            $data = array(
                'username' => $this->input->post('username'),
                'is_logged_in' => true
            );
            if($query->num_rows()>0){
             $status = $query->row()->account_status;}
            else {
             $status = ''; }
            if($status == 'active')
            {
               $this->session->set_userdata($data);
               redirect('site1/members_area');
            }
            else //Account In active
            {  $this->inactive();  }
        }
        else // incorrect username or password
        {
            $this->index();
        }
    }   

视图:

<?php $this->load->view('includes/header'); ?>
<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>css/style1.css"  />
<div id="login_form">

    <h1>Login!</h1>
    <?php 
    echo form_open('login/validate_credentials');
    echo form_input('username', 'Username');
    echo form_password('password', 'Password');
    echo form_submit('submit', 'Login');
    echo anchor('login/signup', 'Create Account');
    echo form_close();
    ?>

</div><!-- end login_form-->


<?php $this->load->view('includes/footer'); ?>

我看不到您在控制器的inactive()中调用视图文件的位置吗?

  function inactive()
    {
    echo"<script>alert('In active user');</script>";
     $this->load->view('Your view with login form'); // this part
    }

这里最明显(可能)的错误是您没有将发布的数据传递给$this->membership_model->validate(); 由于您没有将代码发布到该函数,所以我不能百分百确定,但是我敢打赌这是问题所在。 该信息未传递,因此未正确设置$query变量,因此显示错误。

你为什么不试试这个:

function index($inactive_login = FALSE) {
    $data['inactive_login'] = $inactive_login;
    $data['main_content'] = 'login_form';
    $this->load->view('includes/template', $data);
}

function validate_credentials() {       
    $this->load->model('membership_model');
    $query = $this->membership_model->validate();

    if($query) // if the user's credentials validated...
    {
        $data = array(
            'username' => $this->input->post('username'),
            'is_logged_in' => true
        );
        if($query->num_rows()>0){
         $status = $query->row()->account_status;}
        else {
         $status = ''; }
        if($status == 'active')
        {
           $this->session->set_userdata($data);
           redirect('site1/members_area');
        }
        else //Account In active
        { 
            $inactive_login = TRUE;
            $this->index($inactive_login);  
        }
    }
    else // incorrect username or password
    {
        $this->index();
    }
}

视图:

<?php $this->load->view('includes/header'); ?>
<?php 
    if($inactive_login){
        echo "<script>alert('In active user');</script>";
    }
?>
<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>css/style1.css"  />
<div id="login_form">

<h1>Login!</h1>
<?php 
    echo form_open('login/validate_credentials');
    echo form_input('username', 'Username');
    echo form_password('password', 'Password');
    echo form_submit('submit', 'Login');
    echo anchor('login/signup', 'Create Account');
    echo form_close();
?>
</div><!-- end login_form-->
<?php $this->load->view('includes/footer'); ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM