【问题标题】:PHP - Submit HTML form with missing name attributePHP - 提交缺少名称属性的 HTML 表单
【发布时间】:2013-09-26 01:46:50
【问题描述】:

我尝试自动登录的外部网站有以下 HTML 表单(包括 JavaScript)。

<form name="autologin" method="POST" action="https://post.website.com"></form>
<script language="JavaScript">
document.autologin.submit();
</script>

有输入

<input type="hidden" name="Z" value="0,0">
<input style="font-size: 11px;" type="submit" value="Logon">

如果第二个输入的名称缺失,我如何使用 PHP 以编程方式提交此表单?

到目前为止我的代码:

$url = 'https://post.website.com';

$request = new HTTP_REQUEST2($url, HTTP_REQUEST2::METHOD_POST);
$mainPageRequest = array(
'Z' => '0,0',
'' => 'Logon'   //  <---- What goes here since it's missing a name?
);

$request->addPostParameter($mainPageRequest);
$request->send();

【问题讨论】:

  • 你能给它起个名字吗?称之为“登录”、“提交”等?
  • 如何从外部站点获取表单?
  • 第二个输入只是没有名称的提交按钮,因此无关紧要。
  • 也许你应该重新表述这个问题,多一点描述将有助于理解这个场景。
  • 这不是我的表格,所以我不能更改名称。我正在抓取一个网站,需要使用 PHP 提交此表单。要从外部站点获取表单,我只是在 Chrome 中查看网站的 HTML 源代码。关于如何在提交中提交缺少名称属性的 POST 请求的任何线索?

标签: javascript php html forms post


【解决方案1】:

根本不提交没有名称的输入。如果以正常方式提交表单(通过单击按钮),则只会传输具有名称的输入;其他的都被忽略了。
您可以通过在表单中​​输入一些输入(有名称和没有名称)并使用method="get" 自行测试,以便提交的数据最终在位置栏中以可视方式结束。

因此,对于“由于缺少名称,这里发生了什么?”这个问题的答案是什么?是:什么都没有。

$mainPageRequest = array(
  'Z' => '0,0'
);

【讨论】:

    猜你喜欢
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多