【问题标题】:Fill in an external form using cURL?使用 cURL 填写外部表单?
【发布时间】:2011-09-02 22:07:20
【问题描述】:

谁能建议我如何用我自己的变量填写this form 并使用 cURL/PHP 提交它?是否有可能,因为它似乎使用 JavaScipt 而不是普通的“帖子”来提交内容。感谢您的帮助。

【问题讨论】:

    标签: php javascript forms curl fill


    【解决方案1】:

    它使用 POST,但是它将表单数据提交到该页面上的多个 PHP 脚本。您最好下载 TamperData for Firefox 并检查与这些脚本的通信。 这是我在gist 上提交该表单时获得的信息。下面提供了一个示例会话:

    15:13:13.371[1631ms][total 1631ms] Status: 200[OK]
    POST http://tools.950buy.com/modules/2rss/2rss.php Load Flags[LOAD_BYPASS_CACHE  LOAD_BACKGROUND  ] Content Size[-1] Mime Type[text/html]
       Request Headers:
          Host[tools.950buy.com]
          User-Agent[Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.1) Gecko/20100101 Firefox/6.0.1]
          Accept[*/*]
          Accept-Language[en-us,en;q=0.5]
          Accept-Encoding[gzip, deflate]
          Accept-Charset[ISO-8859-1,utf-8;q=0.7,*;q=0.7]
          Connection[keep-alive]
          Content-Type[application/x-www-form-urlencoded; charset=UTF-8]
          X-Requested-With[XMLHttpRequest]
          Referer[http://tools.950buy.com/rss-submit/]
          Content-Length[117]
          Cookie[__utma=201106987.2026695530.1315001346.1315001346.1315001346.1; __utmb=201106987.3.10.1315001346; __utmz=201106987.1315001346.1.1.utmcsr=stackoverflow.com|utmccn=(referral)|utmcmd=referral|utmcct=/questions/7289661/fill-in-an-external-form-using-curl; __utmc=201106987]
          Pragma[no-cache]
          Cache-Control[no-cache]
       Post Data:
          url[http://www.test.com]
          title[Test Title]
          WebSite[http://www.test.com]
          email[test@test.com]
          description[Test Description]
       Response Headers:
          Date[Fri, 02 Sep 2011 22:13:16 GMT]
          Server[Apache]
          X-Powered-By[PHP/5.2.17]
          Vary[Accept-Encoding]
          Connection[close]
          Transfer-Encoding[chunked]
          Content-Type[text/html; charset=utf-8]
    

    【讨论】:

      【解决方案2】:

      它是通过 javascript 完成的。它为页面上的每个复选框提交一个 post 请求

      这些是您需要复制的功能:

      function ActionSubmit(){
          var Posturl="/modules/";
          var url=$("#url").val();
          var title=$("#title").val();
          var WebSite=$("#WebSite").val();
          var email=$("#email").val();
          var description=$("#description").val();
          var data='url='+url+"&title="+title+"&WebSite="+WebSite+"&email="+email+"&description="+description;
          var str="";
          if (formVaildate()){
               $("[name='checkbox'][checked]").each(function(){
                   str=$(this).val();
                   strs=str.toLowerCase()
                   strs=strs.replace("-","_");
                   Posturl= Posturl+strs+"/"+strs+".php";
                   URLSubmit(Posturl,data,str);
                   Posturl="/modules/";
             });
          }
      }
      function URLSubmit(url,data,str){   
          $.ajax({
                  url: url,
                  type: 'POST',
                  data: data,
                  beforeSend:function(){
                          $("#"+str+"_State").html("Please wait...");
                      },
                  complete:function(){
                          $("#"+str+"_State").html("<img src='/images/right.gif'>");
                      },
                  success:function(msg){
                     if (msg!=""){            
                      $("#"+str+"_State").html("<img src='/images/right.gif'>");
                     }else{
                         alert(msg);
                     }
                    }
              });
      
      }
      

      【讨论】:

        猜你喜欢
        • 2016-05-03
        • 1970-01-01
        • 2012-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多