2010-10-19 2 views
1

Я пробую основную вещь. У меня есть два файла: curl.php и form.phpcURL - не может получить ответ POST

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, чтобы увидеть «Форма отправлена!». Кажется, что он не был отправлен как POST. В firebug (network) есть только один запрос GET, и то, что я получаю, является формой, ничего не отправлено. Кто-нибудь, пожалуйста, помогите.

ответ

1

Вы не отправляете 'submit' в свои данные POST, поэтому isset($_POST['submit']) будет ложным. Вам необходимо сделать следующее:

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

, который сделал трюк, спасибо! – pablosd

+0

Btw: может быть, вы знаете, как это сделать, когда есть:

pablosd

+0

'onsubmit =" document.form1.submit() "' бессмысленно, потому что единственный способ, которым это может быть вызвано, - отправить 'form1'. Я думаю, что лучше всего представить другой вопрос с подробностями. – rojoca

Смежные вопросы