开发者

cURL - can't get POST response

开发者 https://www.devze.com 2023-01-20 23:44 出处:网络
I\'m trying a basic thing. I have two files: curl.php and form.php curl.php <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, \"http://localhost/test/test34_curl_post/form.php\");

I'm trying a basic thing. I have two files: curl.php and 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, 开发者_如何学PythonCURLOPT_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'];
}
?>

what I'm hoping to get is as the result of running curl.php, to see "Form sent!". It seems as if it wasn't sent as POST. In firebug (network) there is only one GET request and what I get is the form, nothing sent. Anyone, please help.


You're not sending 'submit' in your POST data so isset($_POST['submit']) will be false. You need to do the following:

curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    'nabc' => 'fafafa',
    'submit' => 'Send' // if you want 'submit' in $_POST you need this
));
0

精彩评论

暂无评论...
验证码 换一张
取 消