在Codeigniter中使用Ajax登录(控制器和模型无法执行查询数据库)

时间:2017-06-19 05:03:23

标签: php jquery mysql ajax codeigniter

我有一个View,它将使用Ajax jquery发送登录数据,如下所示: 视图/ login.php中



I have a View that will send Login data with Ajax jquery as follows :
views/login.php

<!-- begin snippet: js hide: false console: true babel: false -->
&#13;
&#13;
&#13;

这将发送用户名&amp;模板登录/ insert_login的密码 控制器/ login.php中

&#13;
&#13;
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Login extends CI_Controller {

  public function __construct ()
  {
    parent::__construct();
    $this->load->model('Login_Model');
  }

  public function index ()
  {
    $this->load->view('Login');
  }

  public function insert_login ()
  {
    $user = $this->input->post('user');
    $pass = $this->input->post('pass');

    $cekUser = $this->Login_Model->check_user($user);

    if (empty($cekUser->username)) {
      $sts = 'user_wrong';
    }else{
      if (md5($pass) != $cekUser->password) {
        $sts = 'pass_wrong';
      }else{
        if ($cekUser->tipe_user == 'admin'){
          $sts = 'success_admin';
          $this->session->set_userdata(array('user'=>$user,'status'=>'admin'));
          redirect(base_url('Admin/Home'));
        }else{
          $sts = 'success_user';
          $this->session->set_userdata(array('user'=>$user,'status'=>'user'));
          redirect(base_url('Admin/Home'));
        }
      } 
    }

    echo '{"status":"'.$user.'"}';  
  }
 
  public function logout ()
  {
    $this->session->sess_destroy();
    redirect(base_url('Admin/Login'));
  }

}
?>

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Login_Model extends CI_Model {

  public function check_user ($user)
  {
  	return $this->db->get_where('m_user', array('username' => $user))->row();
  }

}
?>
&#13;
&#13;
&#13;

我想知道为什么查询数据库函数get_where / query /任何查询都无法执行,但我在autoload.php中添加了Liblary数据库: $ autoload [&#39; libraries&#39;] =数组(&#39;数据库&#39;,&#39;会话&#39;), 我使用除登录控制器之外的控制器测试仍然可以运行。 为什么只在模型和模型中登录控制器无法执行查询?

但如果我试图显示捕获的数据divariabel:

&#13;
&#13;
    $user = $this->input->post('user');
    $pass = $this->input->post('pass');
    echo $user.' '.pass;
&#13;
&#13;
&#13;

当我测试它已经可以获取并显示数据时,tapi masalahnya kenapa ketika memunculkan查询tidak muncul apapun。 请帮助我,我真的堆积,每天熬夜来清理我的工作......

1 个答案:

答案 0 :(得分:0)

将数据设置为控制器文件中的数组

将数组键的名称设置为数据库字段名<?php session_start(); $_SESSION["uname"]=NULL; header('Location: ../formpage/login.php'); die; ?> &amp; <?php session_start(); if ($_SESSION['uname']==NULL) { header('Location: ../formpage/login.php'); } ?>

控制器文件

username

password查询

中提供您的表名

模型文件

  $user = $this->input->post('user');
  $pass = $this->input->post('pass');
  $where=array('username'=>$user,
            'password'=>md5($pass));
  $cekUser = $this->Login_Model->check_user($where);