开发者社区> 问答> 正文

PHP 怎么接受$.post发送过来的值,报错

最近做个登录,异步提交数据,就是用jq的$.post发送用户名和密码到php后台,但是发现php无论怎么都接受不到发送过来的值,确定其他都写对了的,没问题的,换个成GET发送到php服务端就可以获取就是换成post就获取不了,我是做登录的,总不能用get方式来登录吧。又不是用的https协议。非常蛋疼。请教各位大牛,PHP该怎么获取js提交过来的post数据。

展开
收起
一枚小鲜肉帅哥 2020-05-31 22:16:58 1009 0
1 条回答
写回答
取消 提交回答
  • 菜不可及的程序猿

    "

    HTML ajax端

    <pre class=""brush:js; toolbar: true; auto-links: false;"">$.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 : ... datatype是将回调的数据解析。PHP端直接用POST接收则可。这个方法和 $.getJson一样######jq是用的post方式提交的,但是提交的值是json格式的,获取的时候先要把json的转换成数组,直接$_POST['name'] 是不行的######在Firefox里打开按F12打开Firebug,看看点击登录时“网络”那里的情况不就知道了。
    ######

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

    ######

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

    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('/login.php', {name: name, pwd: pwd}, function (ajax) {
        console.log(ajax);
    }, 'json');

    PHP: var_dump($_POST); data:{name:name,pwd:pwd},

    PHP: var_dump($_POST);

    or

    PHP: var_dump($_REQUEST);

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

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

    echo json_encode($_POST);

    2020-05-31 22:19:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载