你可以在PHP Post Request inside a POST Request找到类似的问题,但这不符合我的情况。
我有一个表单(旅游网站的预订表格),并且在提交表单时,会在脚本中处理这些值,例如验证和计算值以及发送电子邮件。
处理完变量后,我想将其发送到付款页面,此页面会将付款详细信息发布到PayPal。
我的问题是在提交预订表格之后,在处理从预订中检索到的值之后,我如何重定向页面,使变量作为后期变量传递。 (我不是从另一种形式的反应看,我想重定向到另一种形式)。
答案 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