2011-07-31 72 views
0

我有一个文件下面的表格称为“foobar.html”:填写,并用PHP提交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 --> 

我打开一个PHP脚本文件使用的fopen,怎么办我填写并提交此表单时没有来自用户的任何输入?谢谢

回答

1

用HTML解析器解析出action属性,并使用curl将perform a POST添加到适当的目标URL。

0

将整个火焰读入一个变量。而不是使用fopen,你可能需要考虑file_get_contents,它更清洁一些。

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

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

如果您的问题延伸到如何知道填写什么样的表单字段,那几乎不可能解决。当然,有些输入名称可以查找并猜测所需的数据,但通用解决方案是不可能解决的问题。

0

您是否想让的用户在其浏览器页面上提交表单,而无需用户干预?如果是这样的话,您需要使用javascript,如下所示:

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

这会自动提交表单。一些注意事项:并非每个人都启用了JavaScript,所以您可能需要将输入更改为type="hidden",并添加一个很好的大提交按钮,其中包含Click Here