我刚刚遇到了一个问题。我将会话ID存储在cookie中,以便在用户离开网站然后再次返回时检索购物篮信息。我的问题是,作为一个测试,我清除了所有的会话,但保留了cookie,但现在页面只是继续加载。
我的问题是,有没有办法先用php为我获取tmp目录,然后测试存储的会话ID是否有效。
此致,
菲尔
编辑
我目前使用
if( isset( $_COOKIE[$cookieKey] ) ) {
session_id( $_COOKIE[$cookieKey] );
}
// create a new or carry on the existing session
session_start();
这让我觉得
2条答案
按热度按时间w8ntj3qf1#
这是不可靠和不必要的。相反,在代码中添加检查,以确定
$_SESSION
超全局是否为空或(甚至更好)具有适当的键:**更新:**无论你想用cookie和会话ID做什么,我的答案仍然适用。完成cookie检查后,使用
isset()
进行会话测试。ep6jt1vc2#
我需要为不同的用例执行此操作,基本上是在调用
session_start()
之前检查用户是否具有先前活动的会话。如果其他人像我一样在这里结束,这是您检查服务器上是否存在会话文件的方法。session_save_path()
-获取保存会话的文件目录session_name()
-获取客户端上设置的PHP会话cookie的名称(IEPHPSESSID
)$_COOKIE
-用于Set-Cookie
HTTP标头中提供的cookie的PHP超全局PHP会话cookie默认以
sess_
前缀存储。