cURL,两个站点和表单步骤

时间:2012-11-15 19:54:48

标签: php forms validation curl

我有两个网站,A和B.

网站代码:

<?php
if ($_POST['data']) echo "Thank you";
?>

<form action="" method='POST'>
    <input type="text" name='data'>
<input type="submit">
</form>

网站B代码:

 <?php 
  $url = 'http://site_a.com';   
  $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt( $ch, CURLOPT_POST, true ); 

    $data = curl_exec($ch);
    curl_close($ch);

    echo $data;

站点B显示来自站点a的表单。一切都很好,但我也需要在网站B上看到感谢页面。现在,我被重定向到站点A. 如何在站点B上显示站点A(表单/验证结果/感谢页面)的每个步骤? 所以,我需要像iFrame一样显示它。我知道我也可以使用JSONP,但是我无法在代码中显示源URL(我不想发布站点A URL以防止谷歌索引)

2 个答案:

答案 0 :(得分:1)

您被重定向回网站A,因为当您从网站A卷曲表单时,action属性将成为网站A上表单的完整地址。

如果您想留在B站点,您需要:

  • 在回显站点B上的表单之前删除action属性的内容;这样,表单将发布到自身(在站点B上);
  • 在网站B的代码中添加一个检查以查看是否发布了帖子,如果是,请将帖子参数添加到您对网站A的curl调用中。然后,网站A将返回正确的结果(谢谢)

在两个网站上单独发布表单可能更容易......

答案 1 :(得分:0)

我会使用iframe或ajax请求。由于您echo $data,因此站点A源嵌入到站点B并在浏览器中作为一个整个站点(不是站点A的表单)进行解析。