我正在与 Web 服务服务器通信,在付款完成后,服务器将响应作为$_POST
变量发送给我。如果我尝试print_r($_POST)
它似乎是空的,但是当我将变量写入文本文件时,文件会显示值。我的目标是建立一个执行链接来完成用户的订单。由于 $_POST 值仅在文本文件中可见,因此我正在从文本文件中读取链接并尝试执行重定向,但是当到达其他页面时,$_GET 变量为空。我之前曾尝试恢复原始 $_POST 变量file_get_contents("php://input")
但没有成功。这是我的实际代码:
<?php
ob_start();
// let's get the online response parameters...
$_VTransactionID = $_POST["VTransactionID"];
$_VAccountId = $_POST["VAccountId"];
$_VTotalAmount = $_POST["VTotalAmount"];
$_VPaymentMethod = $_POST["VPaymentMethod"];
$_VPaymentDescription = $_POST["VPaymentDescription"];
$_VAuthorizationNum = $_POST["VAuthorizationNum"];
$_VConfirmationNum = $_POST["VConfirmationNum"];
$_VMerchantTransId = $_POST["VMerchantTransId"];
////////Write LInk to file////////////////////////////////////
$fp = fopen("debug/OnlineResponseLog.log","w");
$link = "testvar.php?order_id=".$_VAccountId."&code=000&error=false&TxnGUID=".$_VConfirmationNum."\n\r";
if($fp){
fwrite($fp,$link);
fclose($fp);
}else{
printf("error while trying to write on online response Log");
}
////////////////////////////////////////////////////////////////////////////
/////REad LINK////////////////////////////////////////////////////
$fp = fopen("debug/OnlineResponseLog.log","r");
if($fp){
$cad = fread($fp,filesize("debug/OnlineResponseLog.log"));
fclose($fp);
}else{
printf("error while trying to read online response Log");
}
////////////////////////////////////////////////////
$url = $cad;
//To check if values where stored. Last char is used because last characters are supposed to be digits and not an equal sign.
$lastchar = substr($url, -1);
if($lastchar == "=")
$url ="testvar.php?order_id=&code=999&error=true&TxnGUID=";
header("Location: $url");
//////////////////
?>
任何帮助将不胜感激。$_POST
如果值在以下位置可见,则可以避免所有文件写入print_r($_POST);