1

我为客户构建的电子商务系统有问题,一些订单出现空白。我添加了代码来检查是否正在设置会话,并且没有在某些订单上设置它们,这就是它出现空白的原因。

我使用会话的原因是存储订单信息

例如:$_SESSION['data']=$_POST;

我只能假设用户在他们的浏览器中禁用了 cookie,并且想知道如何解决这个问题。

我想做的是检查是否启用了cookie,如果不通过发送会话ID $_GET,但我如何$_SESSION['data']使用会话ID访问?

所以我的问题是:

如何检查是否启用了 cookie,如果没有通过 get 发送会话 ID,以及如何$_SESSION['data']使用会话 ID 进行访问?

4

2 回答 2

2

您必须手动打开会话管理器,例如使用

<?
session_id($_GET['session_id']); 
session_start();
//you can now acccess $_SESSION['data']
于 2012-07-09T11:46:31.567 回答
2

您可以在 php.ini 中设置 session.use_trans_sid,它会自动通过 GET 或 POST 附加会话 id

它通过再次在 php.ini 中根据 url_rewriter.tag 条目自动重写某些元素(例如 href)来实现这一点。

请注意,通常最好使用 cookie,因为将会话 ID 存储在 url 中会导致用户无意中与其他人共享其会话 ID

于 2012-07-09T11:54:11.233 回答