gpt4 book ai didi

php - 如何在php中发送多维数组post数据?

转载 作者:行者123 更新时间:2023-12-05 05:22:52 24 4
gpt4 key购买 nike

我正在为服务设置模拟并尝试将一些数据返回到我的回调页面以保存到数据库表。

这是我用来将模拟发送到回调的代码:

function checkCallback(){

$ch = curl_init("remote.domain.com/callback.php");

$jsonData = [


"success" =>true,
"error" => null,
"response"=> [
"code"=>"ad3f0db2-62b6-4cf4-9027-14829d33cfd2",
"state"=>"my-secret-state-123456789"
]

];

$jsonDataEncoded = json_encode($jsonData);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);


$result = curl_exec($ch);


var_dump($result);
echo $jsonDataEncoded;
curl_close($ch);

}

回调.php:

<?php 


var_dump(get_defined_vars());

$un = 'username';
$pw = 'password';
$dsn = "mysql:host=localhost;port=3306;dbname=safelocal;charset=utf8";
$pdo_options = array(PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);


$db = new PDO($dsn, $un, $pw, $pdo_options);



$updateUserData = $db->prepare('INSERT into `table` (`message`, `extra`) VALUES(:msg, :extra)');
$updateUserData->execute([
':msg' =>$_POST["response"],
':extra' => $_POST["code"]
]);

我得到的只是一个奇怪的回应:

myfile.php:77:string 'array(4) {
["_GET"]=>
array(0) {
}
["_POST"]=>
array(1) {
["{"success":true,"error":null,"response":{"code":"ad3f0db2-62b6-4cf4-9027-14829d33cfd2","state":"my-secret-state-123456789"}}"]=>
string(0) ""
}
["_COOKIE"]=>
array(0) {
}
["_FILES"]=>
array(0) {
}
}
' (length=291)

所以我们可以在这里看到我的数据,但是我们如何让它充当键值对,以便我可以操作数据?任何指导表示赞赏。

最佳答案

我不确定为什么要将数据作为 json_string 传递,但显然 json 字符串被认为是 url_encoded 字符串并在变量中得到的内容中进行解码。

如果不需要 json - 您可以将数组直接传递给 curl_setopt 或使用 http_build_query 对其进行编码:

// passing raw array:
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);

// passing query string:
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($jsonData));

关于php - 如何在php中发送多维数组post数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39434318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com