我正在尝试一个基本的东西。我有两个文件: curl.php和 form.php的
curl.php
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/test/test34_curl_post/form.php");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'nabc' => 'fafafa'
));
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
form.php的
<form action="form.php" method="post">
<input type="hidden" name="nabc" value="abc" />
<input type="submit" name="submit" value="Send" />
</form>
<?php
if(isset($_POST['submit']))
{
echo '<br />Form sent!'.$_POST['nabc'];
}
?>
我希望得到的是运行curl.php的结果,看看“Form sent!”。好像它不是作为POST发送的。在firebug(网络)中只有一个GET请求,我得到的是表单,没有发送。任何人,请帮忙。
答案 0 :(得分:1)
您没有在POST数据中发送'submit'
,因此isset($_POST['submit'])
将为false。您需要执行以下操作:
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'nabc' => 'fafafa',
'submit' => 'Send' // if you want 'submit' in $_POST you need this
));