Php json混淆

Php json混淆,php,android,json,Php,Android,Json,我已经创建了一个Android应用程序,它必须使用JSON与我的网站进行通信。JSON(在客户端,Android端)如下所示: private static String JSONSend(Context ctx, JSONObject obj, String ObjName, String address) { IHttpDispatcher disp = new HttpDispatcher(); Vector<String> ss = new Vector<

我已经创建了一个Android应用程序,它必须使用JSON与我的网站进行通信。JSON(在客户端,Android端)如下所示:

private static String JSONSend(Context ctx, JSONObject obj, String ObjName, String address) {
    IHttpDispatcher disp = new HttpDispatcher();
    Vector<String> ss = new Vector<String>();
    String link = address;

    String locale = uzmiLocale(ctx);
    if(locale=="")
        return "";

    try {
        obj.put("Lokal", locale);
        ss.add(ObjName + obj.toString());
        String ID = disp.getHttpResponse_POST(link, ss);
        return ID;
    } catch (Exception e) {
        return "";
    }
}
在我的Wamp服务器上一切正常,但在将php代码移动到Web服务器后,噩梦开始了!显然,所有内容都按其应有的方式发送,但在服务器端,这段php代码产生了问题:

if(isset ($_POST['JSNSend']))
{
$argument = $_POST['JSNSend'];

$json = json_decode($argument,true);
$broj = $json['BrTel'];
$jsnLocale = $json['Lokal'];
“json_decode”的结果似乎为空,但$argument等于

{"\TextPoruke\": \"sometext\", \"BrTel\":\"111\"}

所以,传递的JSON字符串看起来还可以,但由于某些原因,它无法在Web服务器上解码。有人能帮我吗?为什么它不起作用?

似乎您的JSON过早地被转义,从而触发了错误的语法错误

如果$argument的格式与您声明的格式相同,则以下过程将起作用:

<?php

$s = '{"\TextPoruke\": \"sometext\", \"BrTel\":\"111\"}';

echo 'Without stripslashes:' . PHP_EOL;
var_dump( json_decode( $s ) );

echo 'With stripslashes:' . PHP_EOL;
var_dump( json_decode( stripslashes($s) ) );

?>
。这是一个完全错误的“安全”功能,永远不应该使用。它在所有用户输入上运行
addslashes()
,前提是这将解决SQL注入问题(它不会)

如果服务器不是你的,所以你不能禁用它,在运行时使用“禁用魔法引号”在这个链接上,并考虑移动到一个新的主机。就这样!:)谢谢!:)

<?php

$s = '{"\TextPoruke\": \"sometext\", \"BrTel\":\"111\"}';

echo 'Without stripslashes:' . PHP_EOL;
var_dump( json_decode( $s ) );

echo 'With stripslashes:' . PHP_EOL;
var_dump( json_decode( stripslashes($s) ) );

?>
Without stripslashes:
NULL
With stripslashes:
object(stdClass)#1 (2) {
  ["TextPoruke"]=>
  string(8) "sometext"
  ["BrTel"]=>
  string(3) "111"
}