【问题标题】:how to send redirect page pass variables as post variables from a php script如何从 php 脚本发送重定向页面传递变量作为 post 变量
【发布时间】:2010-12-19 06:54:39
【问题描述】:

您可以在PHP Post Request inside a POST Request 找到类似的问题,但这在我的上下文中不起作用。

我有一个表格(旅游网站的预订表格),提交表格后,会在脚本中处理值,例如验证和计算值以及发送电子邮件。

处理变量后,我想将其发送到付款页面,此页面会将付款详细信息发布到贝宝。

我的问题是在提交预订表格后,在处理从预订中检索到的值之后,我如何重定向页面以使变量作为后变量传递。 (我不是从其他表单的响应中查看,我想重定向到其他表单)。

【问题讨论】:

  • 当你说你想将变量作为后置变量传递时,这些后置变量是不是对之前的表单的响应?如果不是,那么帖子变量来自哪里?是硬编码的吗?
  • 不,它来自预订表格。我在 zend 框架中做项目,所以我有一个控制发布请求的方法。并希望将帖子重定向到另一个页面。

标签: php http-headers


【解决方案1】:

要创建 POST 请求,请使用 fsockopen() 打开与主机的 TCP 连接,然后在 fsockopen() 返回的处理程序上使用 fwrite(),其值与您在 OP 中的标头函数中使用的值相同。或者,您可以使用 cURL。

<?php
 if(isset($_POST['Name']))     $Name   = $_POST['Name'];
 if(isset($_POST['Email']))   $Email   = $_POST['Email'];
 if(isset($_POST['Message']))   $Message= htmlentities($_POST['Message']);

 $Curl_Session = curl_init('http://www.yoururl.com/script.php');
 curl_setopt ($Curl_Session, CURLOPT_POST, 1);
 curl_setopt ($Curl_Session, CURLOPT_POSTFIELDS, "Name=$Name&Email=$Email&Message=$Message");
 curl_setopt ($Curl_Session, CURLOPT_FOLLOWLOCATION, 1);
 curl_exec ($Curl_Session);
 curl_close ($Curl_Session);
?>

$Message 将是您的变量。

编辑:我很久以前回答过这个问题,也许我确实忘记从 php.net 引用,但这里是每个评论的链接 http://www.askapache.com/htaccess/sending-post-form-data-with-php-curl.html 作为参考

【讨论】:

  • 哈哈哈...!它从 url 发送响应。我期待重定向。无论如何仍然对我有用。
  • 您没有参考您的答案。我在这里找到了。 askapache.com/htaccess/…
【解决方案2】:

你不能。 HTTP 没有为请求正文中的任何内容(这是 POST 数据所在的位置)进行重定向。您只能使用 GET 请求进行重定向。因此,执行此操作的典型方法是将用户带到第二个页面,该页面有一个“继续使用 PayPal”按钮,或者类似的东西。该按钮将所有数据正常发布到 PayPal。

对于它的价值,如果这是针对 PayPal“立即购买”按钮,它们实际上(即使没有记录)允许通过 URL 在 GET 请求中发送所有这些表单变量。我们在其中一个应用程序中执行此操作,在该应用程序中“跟踪”支付流程的开始,然后重定向到包含所有表单字段作为查询字符串的 PayPal URL,然后在用户返回时“完成”交易。

【讨论】:

    【解决方案3】:

    好吧,我想如果你在谈论在你自己网站的页面之间保存数据,你需要使用 PHP 的会话函数

    要开始会话,只需执行session_start();

    添加会话变量只需使用超全局数组$_SESSION['myvar'] = $value; 然后您可以通过相同的方式阅读它们print_r($_SESSION[]);

    但是,如果您正在谈论使用 paypal API 感知数据,我强烈建议您查看他们的开发人员 API 手册。

    希望对您有所帮助, 瑞光

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-20
      • 1970-01-01
      • 1970-01-01
      • 2015-04-11
      • 2013-04-15
      • 2012-01-31
      • 1970-01-01
      • 2012-08-02
      相关资源
      最近更新 更多