Php 使用curl提交/检索表单结果

Php 使用curl提交/检索表单结果,php,post,curl,libcurl,Php,Post,Curl,Libcurl,我需要帮助尝试使用curl将数据发布到页面,并在表单提交后检索结果 我创建了一个简单的表单: <form name="test" method="post" action="form.php"> <input type="text" name="name" size="40" /> <input type="text" name="comment" size="40" /> <input type="s

我需要帮助尝试使用curl将数据发布到页面,并在表单提交后检索结果

我创建了一个简单的表单:

<form name="test" method="post" action="form.php">              
    <input type="text" name="name" size="40" />
    <input type="text" name="comment" size="40" />
    <input type="submit" value="submit" />
</form>
当我启动包含curl代码的页面时,我会得到form.php页面内容,但它不会显示 PHP在提交表单时应该使用的变量

非常感谢您的帮助


谢谢

在你的评论之后,问题很清楚了

您需要在数组中再包含一个POST变量

'submitted' => 'submitted'
如果单击submit按钮,还将返回一个post值,您正在表单处理PHP中检查该值

if ($_POST['submitted']) {
但是,在curl代码中,您忽略了'submitted'post变量


如果这是您要查找的内容,请选中此答案旁边的复选标记。谢谢

通过阅读另外两个答案和OP的评论,我有几个想法

具体而言,OP评论是:


手动提交表单不会产生正确的输出。处理表单的PHP是:if(isset($\u POST['submitted']){echo$\u POST[name]..等等,就是这样

在标准条件下,您的基本表单(如原始问题中所述)将生成一个$u POST数组,如下所示:

array(
  'name' => 'The Name as Entered in the Form' ,
  'comment' => 'The Comment as Entered in the Form' ,
  'submit' => 'submit' # From the "Submit" button
);
您的评论表明表单处理程序的某些方面正在寻找名为“submitted”的$\u POST元素

1) 如问题中所述,对于检查$u POST['submitted'],基本表单将始终返回FALSE,因此,将触发该条件的ELSE操作(如果存在)

2) 您的CURL操作没有设置“submit”或“submitted”,并且对于条件值,总是返回FALSE

因此,我建议您:

1) 检查表单处理程序,看看哪些字段是必需的,它们的名称是什么,它们的内容应该是什么

2) 检查基本表单,并确保其具有适当的字段


3) 检查您的CURL操作,并确保它详细说明了所需的每个字段。(简单的检查方法是插入
print\r($\u POST);die();
在表单处理程序的顶部,提交基本表单。这将准确地显示表单发送的内容,以便您可以在CURL中重新创建它。

我们可以看到处理表单提交的PHP吗?问题可能就在那里。此外,您是否验证了手动提交表单会产生所需的输出?手动提交表单会导致错误oes产生正确的输出。处理表单的PHP是:if(isset($\u POST['submitted']){echo$\u POST[name]..等等。这是彻底的运行检查的原因,这正是问题所在。
array(
  'name' => 'The Name as Entered in the Form' ,
  'comment' => 'The Comment as Entered in the Form' ,
  'submit' => 'submit' # From the "Submit" button
);