2014-01-15 62 views
0

我試圖從支付網關獲取響應,並將選定結果顯示在結果頁面「approved.php」上。我需要將此代碼中的變量傳遞給「approved.php」。有關如何使用SESSION或POST對其進行編碼的任何建議?使用會話或帖子傳遞PHP變量

 if ($_POST["check"] != "1") 
      {}//do nothing 
     if($response_array[3]=="This transaction has been approved.") 
      { 
     session_start(); 
     $_SESSION[($response_array[7])] = $trans_id; 
     echo '<script language="Javascript">'; 
     echo 'window.location="/approved.php"'; 
     echo '</script>'; 
      } 
     else 
      { 
     echo '<script language="Javascript">'; 
     echo 'window.location="/declined.html'; 
     echo '</script>'; 
      } 

然後在approved.php

session_start(); 
$trans_id = $_SESSION['trans_id']; 
echo $trans_id; 

這是行不通的。我得到的會話已在approved.php上啓動錯誤,並且沒有變量正在傳遞。任何幫助表示讚賞。

+0

第6行:你不應該在你的$ _SESSION變量名稱周圍添加括號。 – Junior

+0

爲什麼javaScript? –

+0

@ OleKristianAanensen爲什麼不呢?這不是必要的,但它不會傷害任何東西。 – Barmar

回答

1

我不知道你的數組$ response_array是什麼樣子,但是如果它的第8個元素不是字符串「trans_id」,這就是問題所在。也許你想:

$_SESSION['trans_id'] = $trans_id; 

$_SESSION['trans_id'] = $response_array[7]; 
0

根據您的問題,您的任務應該是這樣的:

$_SESSION['trans_id'] = $response_array[7]; 

雖然我會用POST來存儲您的TRANS_ID如果只是需要在accept.php

+0

'$ _POST'不會持續跨越重定向 –

+0

您如何使用POST來做到這一點? –

+0

Sam是正確的!我的答案就像我寫了代碼一樣,我不會使用重定向,因此您被$ _SESSION – BKCOHEN