如何从php脚本发送重定向页面传递变量作为post变量

时间:2010-12-19 06:54:39

标签: php http-headers

你可以在PHP Post Request inside a POST Request找到类似的问题,但这不符合我的情况。

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

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

我的问题是在提交预订表格之后,在处理从预订中检索到的值之后,我如何重定向页面,使变量作为后期变量传递。 (我不是从另一种形式的反应看,我想重定向到另一种形式)。

3 个答案:

答案 0 :(得分:2)

要创建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作为参考

答案 1 :(得分:1)

你做不到。 HTTP没有规定重定向请求体中的任何内容(POST数据的位置)。您只能使用GET请求重定向。因此,执行此操作的典型方法是将用户带到第二个页面,该页面具有“继续PayPal”按钮或具有此类性质的按钮。该按钮正常将所有数据发送到PayPal。

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

答案 2 :(得分:1)

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

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

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

阅读它们

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

希望有所帮助, RayQuang