0

我将一个JSON对象从 flash传递AS3PHP,然后将其拆开并传递给 DB。

In Flash:
    var jsonObject:Object = JSON.encode(currentlySelectedArray);

In PHP:
    $json_pieces_array = $_POST['jsonArray'];
    $json_obj = json_decode($json_pieces_array, true);

当我通过复制/粘贴“trace (saveDataJSON.ToString());”的输出来测试我的代码时 并将其放入我的 '$_POST['jsonArray'] = '[[Valid JSONLint checked JSON here.]]'中,一切正常并被推送到数据库。

但是当我不干预和使用 flash-sent$_POST时,没有任何东西会推送到 MYSQL DB。

我的问题是双重的:

1)对这种复杂情况进行错误测试的最佳方法是什么?我在Flash界面。

2)我应该寻找什么样的东西?我已经检查了JSON正在编码的内容是否有效。我是否缺少某种奇怪的类型转换?

4

1 回答 1

1

首先,您必须调试来自闪存的请求。您可以通过以下几种方式做到这一点:

  • 创建虚拟文件var_dump($_REQUEST);
  • 添加file_put_contents('my_dump_file.txt', var_export($_REQUEST, true));现有脚本;
  • 检查您的网络服务器日志;
  • 使用调试器(xdebug 或类似)调试您的脚本。

然后你应该检查你的 PHP 脚本。尝试var_dump($_REQUEST);在顶部和之前json_decode。它可能会在$_POST['jsonArray']其他地方被覆盖。

我想问题出在flash和php之间。在大多数情况下,只是拼写错误或$_POST$_GET.

于 2012-12-13T18:41:12.917 回答