CodeIgniter PHP中的管理员登录功能无效

时间:2017-11-10 12:24:31

标签: php codeigniter login admin codeigniter-3

我尝试为管理员创建登录功能,因此管理员可以使用登录表单登录,但它无法正常工作。当我点击登录按钮时没有任何反应......当我使用正确的管理员电子邮件和密码以及错误的输入时......

这是我的Auth控制器中的adminlogin函数:

public function adminlogin() 
    {
        $this->form_validation->set_rules('admin_email', 'Admin_email', 'required');
            $this->form_validation->set_rules('wachtwoord', 'Wachtwoord', 'required|min_length[5]');
            if ($this->form_validation->run() == TRUE) {

        $admin_email = $_POST['admin_email'];
        $admin_wachtwoord = ($_POST['admin_wachtwoord']);

         //check admin in database
        $this->db->select('*');
        $this->db->from('admin');
        $this->db->where(array('admin_email'=>$admin_email, 'admin_wachtwoord' => $admin_wachtwoord));
        $query = $this->db->get();
        $admin = $query->row();


        if($admin->admin_email) {

            $this->session->set_flashdata("success","U bent nu ingelogd als admin");

        //admin sessios
        $_SESSION['admin_logged'] = TRUE;
        $_SESSION['admin_id'] = $admin->admin_id;
        $_SESSION['admin_email'] = $admin->admin_email;
        $_SESSION['admin_wachtwoord'] = $admin->admin_wachtwoord;

         //link to admin dashboard
        redirect("IndexController", "refresh");
        } else {

            $this->session->set_flashdata('error','Invalid email or password');
            //if admin doesn't exists reload the admin login form
            redirect("https://kadokado-ferran10.c9users.io/auth/adminlogin" , "refresh");
        }

        }
          //laad alle adminlogin views
    $this->load->view('templates/header');
    $this->load->view('adminviews/adminlogin');
    $this->load->view('templates/footer');
}

我的adminviews文件夹中的adminlogin.php视图页面:

<div class="all-content"> 

 <div class="row">
        <div class="col-lg-12 bg-warning" style="font-size:25px">
            <center>Admin login</center>
        </div>
        </div>

<br>

  <section>
  <div>
    <div class="row">
      <div class="col-sm-12">
        <div class="row">
          <div class="col-sm-4 col-sm-offset-4">

            <form action="" method="POST">

              <div class="form-group">

                    <label for="name" class="control-label">Email</label>


                    <input class="form-control" name="admin_email" id="admin_email" type="email" placeholder="E-mail">

            </div>

              <div class="form-group">

                    <label for="message" class="control-label">Wachtwoord</label>

                    <input class="form-control" name="admin_wachtwoord" id="admin_wachtwoord" type="password" placeholder="Wachtwoord">

            </div>
                 <div class="form-group">

                    <input name="adminlogin" type="submit" class="btn btn-primary" value="Inloggen" />

            </div>

              </div>

            </form>

          </div>

        </div>

      </div>

    </div>

  </div>

</section>


</div>
<div class="clearfix"></div>

数据库信息:

table: admin
1. admin_id = primary key
2. admin_email
3. admin_wachtwoord

2 个答案:

答案 0 :(得分:1)

假设您的控制器名为Auth,您应该替换:

 <form action="" method="POST">

with:

 <form action="<?php echo base_url('auth/adminlogin');?>" method="POST">

您也可以使用CodeIgniter Form Helper进行编写,假设您已将其加载到控制器中:

<?php echo form_open('auth/adminlogin'); ?>

将生成相同的先前HTML行。

答案 1 :(得分:1)

使用以下内容替换您的表单标记:

<?=form_open('auth/adminlogin');?>

并确保加载表单助手:

$this->load->helper('form');