2013-08-02 23 views
0

我正在開發一個電子商務解決方案的訂單管理屏幕,當點擊一個與特定訂單相關的鏈接時,將爲該訂單導出信息並填充託管在我的公司所擁有的其他域上的頁面。通過PHP中同一頁上的不同鏈接傳遞數組中不同的值通過PHP

這裏是我的代碼的簡化,假設版本:

foreach ($orders as $order_number) { 
    echo '<a href="http://www.anotherdomain.com/shipping_info.php">View shipping info for Order #' . $order_number . '</a>'; 
} 

然後我也有稱爲$shipping_info包含每個順序信息的單獨的陣列的陣列。

此循環將創建鏈接以查看陣列中每個訂單號的信息。當用戶點擊鏈接「查看訂單#100的送貨信息」他們應該帶到http://www.anotherdomain.com/shipping_info.php頁面填入信息從$shipping_info[100],這也是數組。

完成此操作的最佳方法是什麼?

+0

您是將所有數據加載到此shipping_info中,還是可以在shipping_info頁面上再次帶入數據?如果兩個域都有權訪問相同的數據庫,則可以通過$ _GET傳遞該ID。否則,可能必須使用CURL來傳遞xml。 – Fredd

回答

0

如果它穿過服務器AFAIK您唯一的希望是$_GET變量在URL中。

<a href="http://anotherdomain.com/shipping_info.php?stuff=(info you need to pass)&morestuff=(more info you need to pass)&evenmorestuff=(you get the idea by now)>View shipping info</a>

+0

在某些瀏覽器(IE,Safari)中,'GET'帖子被限制爲2KB的數據,所以對於大型'shipping_info'數組可能會造成問題。 – kba

+0

@kba是的,我比你更喜歡你的答案。但是我相信如果他們無法連接到相同的數據庫,那麼在'GET'中傳遞所有內容是他唯一的選擇。所以SOL如果巨陣。 – robz228

+0

不,使用POST而不是GET與您的建議非常相似,但不會調用2KB限制。 – kba

1

我能想到的兩種方式

  1. 使用POST,使按鈕多數民衆贊成在提交給其他域的數據形式。這很快且容易,但它不允許您驗證第二個域上的數據。

  2. 將運送信息保存到隨機ID的數據庫,並使用它鏈接到http://www.anotherdomain.com/shipping_info.php?id=<random id>。這樣,數據不會被篡改,您可以將運送信息鏈接到其他人。這確實要求網站訪問相同的數據庫,並且可能比第一個解決方案稍微複雜一些。