cURL - can't get POST response
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
));
精彩评论