php - 检查服务器上是否存在会话文件
我刚刚遇到一个问题。我将会话 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();
这给了我问题
I've just encountered a problem. I store session ids in a cookie to retrieve the basket info when a user leaves a site and then comes back again. My problem being that as a test i cleared all sessions but kept the cookie but now the page just continues to load.
my question is, is there a way to firstly use php to get the tmp directory for me to then test if the session id stored is valid.
regards,
Phil
EDIT
i currently use
if( isset( $_COOKIE[$cookieKey] ) ) {
session_id( $_COOKIE[$cookieKey] );
}
// create a new or carry on the existing session
session_start();
which is giving me the problem
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是不可靠和不必要的。相反,在代码中添加检查以查明
$_SESSION
超级全局是否为空或者(更好)是否具有适当的键:更新: 无论您想做什么对于 cookie 和会话 ID,我的答案仍然适用。完成 cookie 检查后,使用
isset()
进行会话测试。That's unreliable and unnecessary. Instead, add checks in your code to find out whether the
$_SESSION
superglobal is empty or (even better) has the appropriate keys:Update: No matter what you want to do with cookies and session IDs, my answer still applies. Once you're done with your cookie checks, make you session tests with
isset()
.我需要针对不同的用例执行此操作,主要是为了在调用
session_start()
之前检查用户之前是否有活动的会话。如果其他人像我一样最终来到这里,这就是检查服务器上是否存在会话文件的方法。session_save_path()
- 获取保存会话的文件目录session_name()
- 获取客户端上设置的 PHP 会话 cookie 的名称 (IEPHPSESSID
)< code>$_COOKIE -
Set-Cookie
HTTP 标头中提供的 cookie 的 PHP 超全局PHP 会话 cookie 默认使用
sess_
前缀存储。I needed to do this for a different use case, basically to check if a user has a session previously active before calling
session_start()
. If anyone else ended up here like me, this is how you check if a session file exists on the server.session_save_path()
- get file directory where sessions are savedsession_name()
- get name of PHP session cookie set on client (IEPHPSESSID
)$_COOKIE
- PHP superglobal for cookies provided in theSet-Cookie
HTTP headerPHP session cookies are stored with the
sess_
prefix by default.