php curl不会以表格形式发送帖子数据

时间:2014-02-06 09:02:19

标签: php curl

我是使用cURL的新手,所以我需要你的帮助。我的情况是,我想通过表单站点(form.php)发送一个表单(formular.php)。

form.php通过cURL调用formular.php。

以下是两个源代码:

form.php的

<?php
    error_reporting(-1);
    $url = 'http://localhost/formular.php';
    $data = array('customerline' => 'nummer1', 'customerphonenumber' => 'nummer2');
    $postString = http_build_query($data, '', '&');
    $ch = curl_init(); 
    curl_setopt ($ch, CURLOPT_URL, $url); 
    curl_setopt ($ch, CURLOPT_POST, 2); 
    curl_setopt ($ch, CURLOPT_POSTFIELDS, $postString); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
    $post = curl_exec ($ch); 
    curl_close ($ch); 
    echo $post;
?>

formular.php

<?php if(isset($_POST['form'])): ?>
    Sent!
<?php else: ?>
    <form action="http://localhost/formular.php" method="post" name="form">
        <input type="text" name="customerline" />
        <input type="text" name="customerphonenumber" />
        <input type="submit" value="send" name="form" />
    </form>
<?php endif; ?>

我的问题是,我不明白如何将文字段落“发送!”。

你能帮帮我吗?

2 个答案:

答案 0 :(得分:2)

您可以直接传入数组,而无需将其转换为查询字符串。 CURLOPT_POST也应为true

尝试:

$url = 'http://localhost/formular.php';
$data = array('customerline' => 'nummer1', 'customerphonenumber' => 'nummer2');
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $data); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
$post = curl_exec ($ch); 
curl_close ($ch); 
echo $post;

有关选项http://my1.php.net/curl_setopt

的更多信息

答案 1 :(得分:1)

您希望if条件的格式为if(isset($_POST['form'])),但是从curl开始,您不会发送它。

你应该添加它。所以,你的post参数应该是:

$data = array(
   'customerline' => 'nummer1',
   'customerphonenumber' => 'nummer2',
   'form' => 'value'
);