codeigniter:使用ajax probelm的登录表单
这是我在codeigniter中的登录代码…它没有登录,只是在jquery响应中显示结果?这代码有什么问题? 我已经编写了控制器、模型,并为此使用了jquery 控制器(login.php)页面codeigniter:使用ajax probelm的登录表单,codeigniter,Codeigniter,这是我在codeigniter中的登录代码…它没有登录,只是在jquery响应中显示结果?这代码有什么问题? 我已经编写了控制器、模型,并为此使用了jquery 控制器(login.php)页面 function validate_credentials(){ $username = $this->input->post('username'); $password = $this->input->post('passwd');
function validate_credentials(){
$username = $this->input->post('username');
$password = $this->input->post('passwd');
$data = $this->login_model->validate();
if($data){
$this->session->set_userdata('username',$data);
redirect('site/math_page');
}
else{
echo'something went wrong';
}
}
function validate() {
$this->db->select('*');
$this->db->from('user_details');
// $this->db->where('user_email',$email);
// $this->db->where('user_password',$pass);
if($query=$this->db->get())
{
return $query->result_array();
}
else{
return false;
}
}
模型(login_Model.php)页面
function validate_credentials(){
$username = $this->input->post('username');
$password = $this->input->post('passwd');
$data = $this->login_model->validate();
if($data){
$this->session->set_userdata('username',$data);
redirect('site/math_page');
}
else{
echo'something went wrong';
}
}
function validate() {
$this->db->select('*');
$this->db->from('user_details');
// $this->db->where('user_email',$email);
// $this->db->where('user_password',$pass);
if($query=$this->db->get())
{
return $query->result_array();
}
else{
return false;
}
}
登录jquery
$(document).ready(function() {
//login js..
$("#login_submit").click(function(){
var username = $("#username").val().trim();
var passwd = $("#passwd").val().trim();
//alert(username);
if( username == "" && passwd == "" ) {
$(".lognerror").html("Please enter Login credentials!");
$(".lognerror").show().fadeOut(3000);
}
else if( username == "" ) {
$(".usererror").html("Please enter username");
$(".usererror").show().fadeOut(3000);
}
else if ( passwd == "" ) {
$(".passwrderr").html("Please Enter Password");
$(".passwrderr").show().fadeOut(3000);
}
else {
$.ajax({
url: base_url+'index.php/login/validate_credentials',
data:{username:username,passwd:passwd},
cache: false,
processData: false,
contentType: false,
type: 'POST',
success: function (response) {
// do something with the result
//var msg = "";
//alert(msg);
if(response == 1){
window.location.href= base_url+'index.php/site/math_page';
}
else {
msg = "Invalid Login credentials!";
}
//$("#message").html(msg);
$("#message").show().fadeOut(3000);
}
});
}
});
});
有人能告诉我这段代码有什么问题吗?我是php新手,所以请引导我完成这段代码在validate()中发送$username和$password作为参数。并在模型中应用where子句。在IF条件下使用$query->num_rows()>0 在模型-
function validate($email, $pass) {
$this->db->select('*');
$this->db->from('user_details');
$this->db->where('user_email',$email);
$this->db->where('user_password',$pass);
$query=$this->db->get()
if($query->num_rows() > 0) {
return $query->result_array();
}
else{
return false;
}
}
在控制器中—
替换
$data=$this->login_model->validate()代码>
与
$data=$this->login\u model->validate($username,$password)代码>
在控制器中更改您的响应
if($data){
$this->session->set_userdata('username',$data);
echo 1;
}
else{
echo 0;
}
在validate()中将$username和$password作为参数发送。并在模型中应用where子句。在IF条件下使用$query->num_rows()>0。您不应该从控制器重定向,而是将响应发送到jquery。