你好,先谢谢你。我试图使用POST方法通过AJAX对用户进行身份验证,并将控制器称为"serv_resApp.php“。这里有一个方法login_post(),它获取电子邮件和密码,然后转到带有这两个参数的私有方法"checkUser“。然后转到db运行查询并返回数据,但没有得到我期望的结果。任何指导都是非常感谢的。PS:我在模型中使用了checkUser方法,但是它也不起作用,所以我移到控制器上。
这是我的实际代码:
/controllers/serv_resApp.php
<?php
include (APPPATH.'libraries/REST_Controller.php');
class Serv_resApp extends REST_Controller
{
public function __construct() {
parent::__construct();
}
function login_post()
{
// $this->load->model('funciones_model');
$u = $this->input->post('e');
$p = $this->input->post('p');
$res = $this->checkUser($u, $p);
$result = $res;
print_r($result);
$this->response($result, 200);
}
private function checkUser($u , $p)
{
$em = $u;
$pa = md5($p);
// $this->db->where('email', $em);
// $this->db->where('password', $pa);
$query = $this->db->query("SELECT * FROM `users` WHERE `email` = '$em' AND `password` = $pa;");
if($query->num_rows() > 0){
foreach($query->result() as $row){
$data[] = $row;
}
var_dump($query);
echo "true";
return $data;
}else{
var_dump($query);
return false;
}
}}
////// Ajax call
$.ajax({
url: "serv_resApp/login",
type: 'POST',
dataType: 'text',
cache: false,
data: {e:'gabriel075@mail.com',
p:'test'},
success: function(data){
if (data==null) {
alert("data == NULL");
return false;
}
else{
alert("Exito!!");
data = $.parseJSON(data);
alert(data);
}
},
error: function(){
alert("TEXt Error!!!");
}
});发布于 2014-08-08 06:07:27
不要在ajax服务方法中为调试而回显或打印,而只是记录它。如果您打印,那么它将包括响应。
Javascript:
我把你的网址更正为serv_resApp/login_post
$.ajax({
url: "serv_resApp/login_post",
type: 'POST',
dataType: 'json',
cache: false,
data: {
e: 'gabriel075@mail.com',
p: 'test'
},
success: function(data) {
console.log(data);
if (data == null) {
return false;
} else {
alert("Exito!!");
}
},
error: function() {
alert("TEXt Error!!!");
}
});不要向UI发送查询响应,因为
PHP代码:
function login_post() {
// $this->load->model('funciones_model');
$u = $this->input->post('e');
$p = $this->input->post('p');
$res = null;
if($this->checkUser($u, $p)){
$res = array('code' => 200, 'message' => 'successs');
}
echo json_encode($res);
exit;
}
private function checkUser($u, $p) {
$em = $u;
$pa = md5($p);
// $this->db->where('email', $em);
// $this->db->where('password', $pa);
$query = $this->db->query("SELECT email FROM `users` WHERE `email` = '$em' AND `password` = $pa;")->result_array();
if ($query->num_rows() > 0) {
foreach ($query as $row) {
$data[] = $row;
}
//var_dump($query); echo "true";
return $data;
} else {
//var_dump($query);
return false;
}
}检查这个CI documentation
https://stackoverflow.com/questions/25193085
复制相似问题