【问题标题】:php - check to see if a session file exists on serverphp - 检查服务器上是否存在会话文件
【发布时间】:2011-04-13 09:08:51
【问题描述】:

我刚刚遇到了一个问题。我将会话 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();

这是给我的问题

【问题讨论】:

  • PHP 会不时清理“陈旧”的会话,您没有理由依赖检查特定会话的存在。
  • $cookieKey 来自哪里?您是否偶然尝试在多个用户之间共享会话?
  • 不,通过共享 SSL 共享会话
  • 如果 HTTP 是无状态协议,如何共享 SSL?

标签: php session directory tmp


【解决方案1】:

这是不可靠和不必要的。相反,在您的代码中添加检查以确定 $_SESSION 超全局是否为空或(甚至更好)具有适当的键:

<?php
if( !isset($_SESSION['foo']) ){
    // User is not fooed yet
    $_SESSION['foo'] = 33;
}
find_records_by_foo($_SESSION['foo']);

更新:无论您想对 cookie 和会话 ID 做什么,我的回答仍然适用。完成 cookie 检查后,使用 isset() 进行会话测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-29
    • 2012-05-15
    • 1970-01-01
    • 2012-10-03
    • 2012-10-01
    • 2012-06-13
    • 2014-06-27
    相关资源
    最近更新 更多