我在名为“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脚本中打开这个文件,如何在没有用户输入的情况下填写并提交此表单?谢谢
答案 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
。