Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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
CakePHP中session.php的以下代码是做什么的?_Php_Cakephp - Fatal编程技术网

CakePHP中session.php的以下代码是做什么的?

CakePHP中session.php的以下代码是做什么的?,php,cakephp,Php,Cakephp,我试图理解CakePHP源代码中的一个方法。以下代码取自 为什么不直接启动会话呢?为什么要检查发送的头?以及头('P3P:CP=“NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM“)的含义是什么?在什么情况下,将清空($\u会话)或!isset($\u会话)是否计算为真?非常感谢对所有代码的解释。在标题上快速搜索可以提供一些不错的信息。 它是针对IE6的,用于解决第三方cookie的问题(如果您的db数据来自与Web服务器不同的域/IP)。 您可以阅读更

我试图理解CakePHP源代码中的一个方法。以下代码取自


为什么不直接启动会话呢?为什么要检查发送的
头?
以及
头('P3P:CP=“NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM“)的含义是什么?在什么情况下,
将清空($\u会话)
!isset($\u会话)
是否计算为真?非常感谢对所有代码的解释。

在标题上快速搜索可以提供一些不错的信息。
它是针对IE6的,用于解决第三方cookie的问题(如果您的db数据来自与Web服务器不同的域/IP)。
您可以阅读更多内容

session\u start()
通常将cookie发送到http响应中,以便用户始终使用相同的会话

如果
headers\u sent()
为true,则发送此cookie为时已晚(cookie位于响应的标题中)。因此,此检查是为了避免PHP错误


P3P头是用于隐私策略的,但实际上仅在Internet Explorer中实现。

如果(headers_sent()){
块中的代码的用途是什么?该代码确保您有一个$\u会话对象。因为在调用SESSION_start()后,您通常希望从$\u会话读取和写入。
    function __startSession() {
        if (headers_sent()) {
            if (empty($_SESSION)) {
                $_SESSION = array();
            }
            return false;
        } elseif (!isset($_SESSION)) {
            session_cache_limiter ("must-revalidate");
            session_start();
            header ('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
            return true;
        } else {
            session_start();
            return true;
        }
    }