将表单值传递为POST并将JSON作为响应

时间:2012-05-19 04:15:38

标签: php json rest

大家好,我的表格设置是:

<form class="form" id="getstat" name="getstat" method="post" action="stat101.php" />
<pre>Enter the Message ID and hit the submit button:</pre>
<!-- <input type="text" name="msgid" /> -->
<textarea name="msgids" id="msgid" wrap="physical" cols="40" rows="10"></textarea><br 
/>
<input type="submit" name="submit" value="Check Status">
</form>

我的stat101.php看起来像:

$user="101";
$pass="xxx";
extract($_POST);
$ids=$_POST['msgid'];
$url="http://url.com";

$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: 
application/json'));
curl_setopt($c, CURLOPT_URL, "$url".$user.'/'.$pass.'
/VALUEOFIDS');
$content = curl_exec($c);
curl_close($c);
print_r($content);

如果我硬编码“VALUEOFIDS”,上面的代码有效,但我不知道如何通过从表单的输入“msgid”发布来实现它。我需要模拟的json格式响应的URL是:http://url.com/ {key} / {secret} / {msgid}。我很难获得正确的代码。

我需要模仿的是:curl -H“接受:application / json”https://api.url.com/server/search/ $ 1 / $ 2 / $ 3

当我在bash中这样做时,它运行正常。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

输入和textareas将其值传递给$ _POST数组,并将其名称作为键。您的代码示例使用id而不是名称来从请求中获取值。请尝试使用以下内容:

// trim whitespace and carriage returns made possible by the textarea.
$ids = trim($_POST['msgids']); 

...

curl_setopt($c, CURLOPT_URL, "$url".$user.'/'.$pass.'/'.$ids);