【问题标题】:Is it possible to automatically submit a php form是否可以自动提交php表单
【发布时间】:2011-02-19 14:18:57
【问题描述】:

我有一个网站,其中有几个 php 表单,我想用自动生成的内容填写这些表单(为了执行用户可以提交的不同内容)。我想编写一个客户端应用程序,使我能够这样做。

有没有办法使用 webtoolkit、java 脚本等来做到这一点?

【问题讨论】:

  • 您要提交什么样的“不同内容”?这个练习的目的是什么?
  • 可以使用的应用程序类型不仅限于垃圾邮件,例如使用 3rd 方自定义身份验证的网络网关可能需要这种形式的提交。

标签: php webforms


【解决方案1】:

如果您已经熟悉 php,为什么不在“客户端”也使用 php?您可以使用Client URL package 将 POST 数据提交到 Web 表单。示例:

<?php
$ch = curl_init();
$data = array('name' => 'phpnoob', 'address' => 'somewhere');

curl_setopt($ch, CURLOPT_URL, 'http://localhost/url/to/your/php/form.php'); // use the URL that shows up in your <form action="...url..."> tag
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);
?> 

【讨论】:

  • 我不介意投反对票,但我会感谢您的解释,以便我改进我的答案...
  • 我相信这是出于道德原因,因为他们认为 phpnoob 会利用这些信息来发送垃圾邮件。我强烈不同意,因为没有迹象表明这一点,并且在堆栈溢出时提供问题的答案,期间,没有过多地进行无关的道德讨论。但是,否决票完全是主观的,因此您无能为力。
【解决方案2】:

通过将数据直接发送到您的应用程序来模拟提交可能会更好、更稳定和更有效。 PHPUnit is a great framework for unit testingPHP 应用程序。

但是是的,也可以编写客户端提交。 You could also write Selenium tests,它使用 JavaScript 与您的页面进行交互。

【讨论】:

    【解决方案3】:

    如果您使用 id 属性命名表单,则可以调用 javascript 函数

    document.myform.submit();

    其中 myform 是该表单的名称。

    【讨论】:

      【解决方案4】:

      您可以在 body 元素上附加一个 onload 事件,它会自动提交表单。

      <body onload="document.form1.submit();document.form2.submit();">
          <form id="form1" action="url" method="post">
      
          </form>
      
          <form id="form2" action="url" method="post">
      
          </form>
      </body>
      

      当然,使用 jQuery 或其他 API 会更好地完成。

      【讨论】:

        【解决方案5】:

        如果您是 php 程序员,那么您可能不需要任何 javascript 答案。最好的解决方案是

        1.使用像 paros 或 HTTP 分析器这样的代理,它们会让你了解网站的表单是如何构建的

        2.从 HTTP 分析器或 paros 代理中记下 POST 或 GET VALUE 表单及其语法。

        阅读本教程,这是最好的教程

        http://www.html-form-guide.com/php-form/php-form-submit.html

        4.根据你记下的结构改变$_post或$_get的内容

        paros 或 HTTP 分析器

        【讨论】:

          猜你喜欢
          • 2011-03-01
          • 2021-04-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-20
          • 2011-12-04
          • 1970-01-01
          相关资源
          最近更新 更多