2010-11-01 50 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(); 
}