gpt4 book ai didi

php - 如何从远程服务器自动提交(POST)表单?

转载 作者:搜寻专家 更新时间:2023-10-31 20:37:57 26 4
gpt4 key购买 nike

我正在尝试自动填写字段并在另一台服务器上提交表单。我对目标页面和服务器没有任何控制权。

我尝试用 Snoopy 类编写运行 php 代码来完成这项工作,但它没有工作(描述 here)

我尝试自动填写并提交的页面是:http://example.com/?page=a页面来源如下:

<form action="" method="post" class="horizontal-form" role="form" >
<input type="hidden" name="submit_form" value="true" />
<input type="text" name="field_name" class="form-control" value="" >
<button type="submit" class="btn"><i class="icon-ok"></i> Send</button>
</form>

知道如何使用来 self 自己站点的脚本/php 代码自动填写“field_name”并自动提交此表单吗?我想我也可以使用 CURL 来做到这一点,但我是新手,不知道怎么做。 :(

感谢您的帮助。

最佳答案

您不能使用 php 填写表单,因为 php 是一种服务器端语言。您可以使用 javascript 填写表格。有一些框架可以做到这一点(phantomjs、casperjs)。

您可以尝试在 PHP 中使用 curl 直接发布表单数据。

<?php

$data = array(
'submit_form' => 1,
'field_name' => 'your value here',
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/post-url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$output = curl_exec($ch);
$info = curl_getinfo($ch);

curl_close($ch);

您可以在浏览器的控制台中找到该 url:

form post

您的请求可能被阻止,因为它来自另一台服务器,但您可以尝试一下。如果您想“模仿”普通访问者,您可以从设置用户代理字符串开始,也可以修改 HTTP_REFERER。

curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36');
curl_setopt($ch, CURLOPT_REFERER, 'http://www.example.com/the-url-of-the-form');

关于php - 如何从远程服务器自动提交(POST)表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30594422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com