2014-03-07 51 views
0

我有一個包含POST數據變量:PHP變量不會加載多次?

$ttransid = $_POST["t_transid"]; 

我然後連接到一個數據庫,並從與$ttransid所對應的行提取信息。 這工作正常。

然後進行貝寶交易,如果付款成功,數據庫更新了付款信息 - 這是有效的。

現在我的代碼嘗試更新數據庫,並在開始時根據原始$ttransid變量移除庫存。

$querysub = "UPDATE ibn_table SET iname = iname - 1 WHERE itransaction_id='$ttransid'"; 
     if(!mysql_query($querysub)) 
     { 
      //mysql error..! 
     } 

更新數據庫,但只有在itransaction_id是空白,這$ttransid是空的。雖然它在代碼的開頭被調用並正確使用。

任何想法?

+0

你真的試過看看'$ ttransid'(和'$ _POST')嗎?你的問題是暗示你沒有。 – AmazingDreams

回答

3

這是因爲下次您的頁面被擊中時,$_POST爲空,因此沒有$_POST["t_transid"]。所以,當你分配

$ttransid = $_POST["t_transid"]; 

它得到空,並更新空字符串。我建議你將這個帖子變量的值保存在你的數據庫或會話中,這樣你就可以使用後者。

+0

那就是那個。我沒有考慮到重定向到PayPal。我應該能夠將數據傳遞給貝寶,並在回調中再次檢索。謝謝。 –

+0

@ Chris'Pig'Hill只能謝謝? :-) –

+1

嗯,我剛剛得到它的基礎上工作。所以也許我也欠你一塊餅乾。 :D –

0

在進入Pay​​Pal付款頁面之前,只需將$ transid [Availabe in POST data]保存到會話中,然後在付款成功後,使用會話轉賬更新數據庫。

在這個過程之後,只要從會話中銷燬transid。

確定它會工作。