如何卷曲表单提交的结果

时间:2013-04-19 01:43:24

标签: php forms redirect curl

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

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

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

它是:

mysite.com/mypage.php

othersite.com/results1.php?session_key=abcdefghi123

othersite.com/results2.php?session_key=abcdefghi123

我需要最后一个的HTML。

1 个答案:

答案 0 :(得分:0)

您可以使用类似这样的内容,其中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's”评论,您还需要该行