Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP会话包装器_Php_Session - Fatal编程技术网

PHP会话包装器

PHP会话包装器,php,session,Php,Session,我编写了一个静态会话类,它显然可以“设置、获取、启动但不销毁”临时用户会话,这意味着我必须在每个页面上启动一个会话才能销毁它,这在编程标准中毫无意义。有更好的方法吗 每页上的是什么意思?因为每次请求都必须启动会话,这就是会话的工作方式。我的意思是,我不能在我的标题模板上启动一次,然后让它在整个站点上工作……如果始终包含标题模板,那么它应该可以工作。您在标题中做什么?如果使用正确,您显示的类很好。请您提供一个示例,演示如何在用户登录后获取$\u会话['user\u id']集,并仅将其放置在he

我编写了一个静态会话类,它显然可以“设置、获取、启动但不销毁”临时用户会话,这意味着我必须在每个页面上启动一个会话才能销毁它,这在编程标准中毫无意义。有更好的方法吗


每页上的
是什么意思?因为每次请求都必须启动会话,这就是会话的工作方式。我的意思是,我不能在我的标题模板上启动一次,然后让它在整个站点上工作……如果始终包含
标题模板,那么它应该可以工作。您在
标题中做什么?如果使用正确,您显示的类很好。请您提供一个示例,演示如何在用户登录后获取$\u会话['user\u id']集,并仅将其放置在headerTemp中一次……不太正确。我可以帮助您不使用代码,但不会为您编写代码。但目前您正在这里显示工作代码。也许可以测试一些逻辑,如果你被卡住了,用这个新代码打开一个新问题。
class sessionWrapper {
    private static $_sessionStarted = false;
    public static function start() {
        if(self::$_sessionStarted == false) {
            session_start();
            self::$_sessionStarted = true;
        }
    }

    public static function set($key, $value) {
        $_SESSION[$key] = $value;
    }

    public static function get($key) {
        if(isset($_SESSION[$key])) {
            return $_SESSION[$key];
        } else {
                return false;
        }
    }

    public static function destroy() {
        if(self::$_sessionStarted == true) {
            session_destroy();
            header('Location: $url');
        }
    }
}