相关疑难解决方法(0)

表单提交时,php $ _POST数组为空

我有一个自定义的CMS我已经构建,在我的开发盒(Ubuntu/PHP5 +/MySQL5 +)上完美运行.

我只是将它移动到我的客户端的生产框中,现在所有表单提交都显示为空的$ _POST数组.

我找到了一个技巧来验证数据实际上正在使用file_get_contents('php://input');并且数据在那里显示正常 - $_POST/ $_REQUEST数组总是为空.

我还通过firebug(application/x-www-form-urlencoded; charset=utf-8)验证了内容类型标题是正确的.

无论表单是通过AJAX提交还是通过常规表单提交,都会发生此问题.

任何帮助是极大的赞赏!

php forms arrays post

91
推荐指数
10
解决办法
14万
查看次数

在jQuery AJAX调用上POST数组为空

我不敢问,因为关于这个主题还有很多其他帖子(例如一个两个),但这些帖子中的解决方案似乎都不适用于我.

我试图将一个JSON编码的对象从页面传递给PHP控制器,然后回复一些信息.

如果我在Firebug中观看,我可以看到在"Post"选项卡下发送的对象,但是当我打印出$ _GET,$ _POST和$ _REQUEST数组时,我看不到任何关于json对象的内容.$ _GET数组至少显示我的'update-player'查询字符串,但POST是空的,REQUEST只显示我有的一些本地cookie.

这是我的jQuery代码.正如您所看到的,我现在正在硬编码JSON,目的是我将使用jQuery方法更新本地对象.

function sendPlayerUpdate(row, col) {
    var playerinfo = [
        {
          "id": 1,
          "row": row,
          "col": col
        }
      ];

        alert(playerinfo[0].id); //debugging

    $.ajax({
        type: 'POST',
        url:"controller.php?a=update-player",
        //data: $.toJSON(playerinfo[0],
        data: { json: JSON.stringify(playerinfo) },
        contentType: "application/json",
        success: function (){

        },
        dataType: 'json'
      });
 };
Run Code Online (Sandbox Code Playgroud)

我处理请求的相应PHP代码:

// update player information from AJAX POST
case "update-player":
  if (isset($_POST['json'])) echo "json received\n\n";
  else echo "json not received\n\n";
  echo "GET VARIABLES\n";
  print_r($_GET);
  echo "\n\nPOST VARIABLES\n";
  print_r($_POST); …
Run Code Online (Sandbox Code Playgroud)

php jquery post

2
推荐指数
1
解决办法
3466
查看次数

标签 统计

php ×2

post ×2

arrays ×1

forms ×1

jquery ×1