【问题标题】:How to curl the results of a form submission如何卷曲表单提交的结果
【发布时间】:2013-04-12 07:59:14
【问题描述】:

我正在尝试制作一个页面,将表单提交到另一个网站上的页面,然后检索“结果页面”html并将其存储为变量。

问题有两个方面:首先,我是一个编程新手,不知道要搜索什么,即使我已经用 Google 搜索了好几天(我最初尝试在框架中执行此操作并了解了 SOP)。其次,如果我只是提交表单,它会在另一个域的下一页上正确加载,但该页面会执行一些操作,然后重定向到具有我想要的实际结果的页面。

关于表单提交本身的一切工作正常,我只是不知道如何将结果(它重定向到的最终页面的 HTML)作为 PHP 中的变量提取。

是这样的:

mysite.com/mypage.php

othersite.com/results1.php?session_key=abcdefghi123

othersite.com/results2.php?session_key=abcdefghi123

我需要上一个的html。

【问题讨论】:

    标签: php forms redirect curl


    【解决方案1】:

    您可以使用类似的方法,其中 CURLOPT_POSTFIELDS 数组是您的 html 表单字段。

    $h = curl_init();
    
      curl_setopt($h, CURLOPT_URL, "path/to/form.php"); 
      curl_setopt($h, CURLOPT_POST, true);
      curl_setopt($h, CURLOPT_POSTFIELDS, array(
      'txtfield1' => 'x',
      'txtfield2' => 'y'
      ));
      curl_setopt($h, CURLOPT_HEADER, false);
      curl_setopt($h, CURLOPT_RETURNTRANSFER, 1);
    
      $result = curl_exec($h);
      echo $result;
    

    再次阅读关于重定向的问题。 请参阅下面的“Du D”评论,您也需要该行

    【讨论】:

    • 我认为他的页面重定向到另一个页面,因此您可能必须添加此选项以允许 curl 跟随重定向。 curl_setopt($h, CURLOPT_FOLLOWLOCATION, TRUE);
    猜你喜欢
    • 2018-06-07
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    相关资源
    最近更新 更多