在没有用户输入的情况下用php填写和提交html表单

时间:2011-07-31 03:25:53

标签: php forms input submit

我在名为“foobar.html”的文件中有以下表格:

<!-- other stuff -->

<form method="post" action="foo.php?cat=1">
  <input type="text" name="bar" />
  <input type="submit" value="foobar" name="foobar" />
</form>

<!-- other stuff -->

我用fopen在php脚本中打开这个文件,如何在没有用户输入的情况下填写并提交此表单?谢谢

3 个答案:

答案 0 :(得分:1)

使用HTML解析器解析action属性,并使用curl perform a POST到相应的目标网址。

答案 1 :(得分:0)

将整个火焰读入变量。你可能不想使用fopen来考虑file_get_contents,而是更清洁。

然后,您将要将该字符串解析为HTML。您可以使用PHP的DOMDocument。通过遍历DOM树到表单标记并读出这些属性来获取表单的操作和方法。接下来获取表单标记中任何输入的名称。使用这些名称生成带有key = value对的查询字符串。如果表单的方法是GET,则将该查询字符串附加到表单操作,否则将其保存在另一个变量中。

最后,使用CURL“提交”表单。也就是说,使用表单操作作为CURL请求的URL。如果表单方法是GET,您应该已经将数据附加到URL,如果方法是POST,您将要将CURL请求的数据设置为您从表单名称生成的数据查询字符串。

如果您的问题扩展到如何知道要填入哪些表单字段的数据,则几乎无法解决。当然,您可以查找一些输入名称并猜测所需数据,但通用解决方案是一个不可能解决的问题。

答案 2 :(得分:0)

您是否尝试让用户在其浏览器上提交表单,而无需用户互动?如果是这种情况,您需要使用javascript,例如:

<body onLoad="document.getElementById('autoSubmit').submit();">
    <form id="autoSubmit">
    (insert form here) 
    </form>
</body>

这将自动提交表格。一些注意事项:并非所有人都启用了JavaScript,因此您可能希望将输入更改为type="hidden",并添加一个很好的提交按钮,显示Click Here