2010-11-01 53 views
0

我正在構建一個訂單系統,並且有2個不同的部分用於添加產品。在這兩個部分中,產品都會插入一個ajax請求,該請求會返回購物籃。在第一部分中,產品直接添加(沒有任何選項)。這部分工作正常。 在第二部分中,用戶可以添加首選項到訂購商品。當用戶點擊一個鏈接時,打開一個facebox彈出窗口。這裏用戶可以選擇偏好。當用戶提交表單時,將對同一個腳本進行ajax調用。所以我看$ _SESSION變量,它似乎是空的...ajax請求中的空會話數組

會話已啓動,會話名稱和會話Id與實際頁面上的相同,但數組爲空。當我刷新頁面時,我添加的數據也被添加到$ _SESSION變量中,但不是當我進行ajax調用時...我已經在URL中添加了會話名稱和ID,但它仍然不起作用。

有人有什麼可以出錯的想法。代碼通常工作得很好...

會話在名爲connection.php的文件中啓動。 籃子裏添加此代碼:

if(!session_id()) { 
    $id = $_GET[session_name()]; 
    session_id($id); 
    session_start(); 
} 

這是加入的javascript:

//config: 
$.sid = '<?php echo(session_name() . "=" . session_id()); ?>'; 

// in the request function ($(this) is the form): 
var qry = '?action=add&' + $(this).serialize() + '&' + $.sid; 

的Gr

+0

你能表現出一定的代碼?尤其是將會話ID添加到Ajax URL的部分?你在Ajax腳本中做了一個'session_start()'嗎? – 2010-11-01 09:32:36

+0

是的,我已經開始了會議。代碼被添加。 – VeeWee 2010-11-01 09:41:11

+0

是來自同一客戶端的這些會話嗎? – helle 2010-11-01 09:46:35

回答

0

如果在session_start目前前

session_start(); 
.... 
$id = $_GET[session_name()]; 
if (session_id() != $id) { 
    session_write_close(); 
    session_id($id); 
    session_start(); 
}