用户输入中的双引号导致无效JSON

tnkciper  于 2023-10-21  发布在  其他
关注(0)|答案(1)|浏览(101)

我有一个应用程序,它接受一个JavaScript对象,使用JSON.stringify()将其转换为字符串,并在一个appropriate POST请求中传递该字符串。JavaScript对象包含各种数据,包括一些用户输入。
通过POST请求发送数据后,使用json_decode()将其解码为数组。此时,从应用程序返回的数据为空。
用户在描述属性中的输入包含额外的双引号,我认为这会导致数据无效。
如何转义用户输入的双引号?
示例数据:

{ name: "Susan", title: "Director", description: ""TEST""}

注:这是一个简单的数据示例。实际数据具有嵌套对象。
JavaScript:

let obj = this.objData,
json = JSON.stringify(obj)

$.ajax({
    method: 'post'
    url: url,
    data: {
       method: 'submit',
       form_data: json
    }
});

PHP:

$action=$_POST['method'];

$data=$_POST['form_data'];
$data=str_replace('\"','"',$data);
$data=str_replace("\'","'",$data);
$data=json_decode($data,true); // returns null
ht4b089n

ht4b089n1#

我使用下面的代码来处理双引号问题,它工作正常。

trim(mb_convert_encoding($row[3], 'UTF-8', 'UTF-8'))

相关问题