CURL意外T_STRING

时间:2011-11-30 01:28:45

标签: php post curl

我有这个页面,我正在把一些信息发布到我的另一个网站,但我有一个错误,我找不到原因。

错误:

  

解析错误:语法错误,第13行/home/aaran/public_html/tests/will/1.php中的意外T_STRING

(这是CURLOPT_POSTFIELDS上的行)。

以下是查看脚本的网址:http://hm.vc/tests/will/1.php

剧本:

<?php
foreach($_GET as $key => $value){
    $input[$key] = urldecode(strip_tags($value));
}

$secureurl = "http://hm.vc/tests/will/2.php";

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $secureurl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $input);
                
$hello = curl_exec($curl);

curl_close($curl);


echo "Hi " . $input['name'] . ", Thanks for blah blah blah blah";
?>

1 个答案:

答案 0 :(得分:2)

由于我不知道您在$_GET数组中使用了哪些数据,我只能猜测,但如上所述,在创建数据后执行print_r($input)以确切了解您的数据正在过去。

似乎使用CURLOPT_POSTFIELDS数组要求所有值都是标量。如果您的$_GET个变量之一是数组,则可能会遇到问题。请参阅http://php.net/manual/en/function.curl-setopt.php上的评论,特别是2010年7月28日,其中指出:

  

使用数组设置CURLOPT_POSTFIELDS设置时要小心。用于设置POST字段的数组必须只包含标量值。缺少__toString实现的多维数组或对象将导致Curl错误。

     

如果需要使用POST请求发送非标量值,请考虑在传输之前对其进行序列化。

可能是吗?