PHP 怎么接受$.post发送过来的值,测试了好久没都获取到,

键盘浪人 发布于 2015/03/11 23:28
阅读 10K+
收藏 0
PHP
最近做个登录,异步提交数据,就是用jq的$.post发送用户名和密码到php后台,但是发现php无论怎么都接受不到发送过来的值,确定其他都写对了的,没问题的,换个成GET发送到php服务端就可以获取就是换成post就获取不了,我是做登录的,总不能用get方式来登录吧。又不是用的https协议。非常蛋疼。请教各位大牛,PHP该怎么获取js提交过来的post数据。
加载中
0
金拱门
金拱门

HTML ajax端

$.ajax({
   url:'/login.php',
   data:{'name':name, 'pwd':pwd},
   type:'POST',
   dataType:'json',
   success:function(data){
      console.dir(data)
      if(data.status == '1')
         alert(data.mes)
      }else{
         alert(data.mes)
      }
   }
})

php端:

<?php

$sql = "SELECT * FROM user WHERE user = '{$_POST['name']}' AND pwd = '{$_POST['pwd']}'",

//后面大概就是查数据,看看有没有结果。

if(){
  echo json_encode(array('status' => '200', 'mes' => '登录成功'));
}else{
  echo json_encode(array('status' => '0', 'mes' => '帐号密码错误'));
}



一个流程大概就这样了。楼主肯定有地方写错~~

键盘浪人
键盘浪人
回复 @首席撸破皮 : 谢谢,可以接受。我当时用的$.post()直接传递,在PHP接受不了post传过来的,但用$.get()就可以,用你的案例可以接受到,也就是说直接$.ajax可以接受。谢谢你的帮助。感谢
zuiw
zuiw
回复 @键盘浪人 : 呵呵 看错了
金拱门
金拱门
回复 @键盘浪人 : 上面的方法肯定可以接收的。如果接收不了,肯定是你写得有问题。这个方法我已经写了千百次。
金拱门
金拱门
回复 @zuiw : ... datatype是将回调的数据解析。PHP端直接用POST接收则可。这个方法和 $.getJson一样
zuiw
zuiw
jq是用的post方式提交的,但是提交的值是json格式的,获取的时候先要把json的转换成数组,直接$_POST['name'] 是不行的
下一页
0
eechen
eechen
在Firefox里打开按F12打开Firebug,看看点击登录时“网络”那里的情况不就知道了。
0
leo108
leo108

没代码说个XX,如果php连这都能出问题,真是白发展这么些年了

0
开源中国首席男科主任
开源中国首席男科主任

引用来自“首席撸破皮”的评论

HTML ajax端

$.ajax({
   url:'/login.php',
   data:{'name':name, 'pwd':pwd},
   type:'POST',
   dataType:'json',
   success:function(data){
      console.dir(data)
      if(data.status == '1')
         alert(data.mes)
      }else{
         alert(data.mes)
      }
   }
})

php端:

<?php

$sql = "SELECT * FROM user WHERE user = '{$_POST['name']}' AND pwd = '{$_POST['pwd']}'",

//后面大概就是查数据,看看有没有结果。

if(){
  echo json_encode(array('status' => '200', 'mes' => '登录成功'));
}else{
  echo json_encode(array('status' => '0', 'mes' => '帐号密码错误'));
}



一个流程大概就这样了。楼主肯定有地方写错~~

学习了
0
行者PHPer
行者PHPer
$.post('/login.php', {name: name, pwd: pwd}, function (ajax) {
    console.log(ajax);
}, 'json');

PHP: var_dump($_POST);





0
mark35
mark35
看看php.ini
0
睿渊
睿渊
data:{name:name,pwd:pwd},

PHP: var_dump($_POST);

or

PHP: var_dump($_REQUEST);

0
都市网达
都市网达
个人觉得,实习生都不应该问的问题。
0
欣儿
欣儿
格式没写对吧
0
郭奕峰
郭奕峰

必须确保网页服务器报告的MIME类型与我们选择的dataType所匹配。比如说,XML的话,服务器端就必须声明 text/xml 或者 application/xml 来获得一致的结果。

首先要确保你传过去的是json数据格式,然后在php端进行打印看看

echo json_encode($_POST);

返回顶部
顶部