这个片段有什么作用?它使用会话cookie

时间:2012-03-27 09:14:49

标签: cakephp session-cookies

我的网站是一个小工具应用程序。它使用CakePHP框架。它在AppController :: beforeFilter()中有以下代码段。我搜索了项目中的cookie变量,但找不到任何其他的出现。 我也不明白它的作用为什么它总是在每个请求中检查

    if ( isset( $_COOKIE[session_name()] ) ) {
        if ( !isset( $this->sns_id ) ) {
            // セッション期限切れ
            $this->cakeError( 'session' );
        }               
    }
    else {
        // スタートページからの遷移でなかったら               
        if ( !isset( $_REQUEST['post_pf_params'] ) ) {
            $this->cakeError( 'cookie' );
        }
    }

1 个答案:

答案 0 :(得分:1)

来自CakePHP api

  

控制器:: beforeFilter()

     

此功能在控制器中的每个操作之前执行。这是检查活动会话或检查用户权限的便利位置。

所以这就是它的作用,

// checks if a cookie exists with current session name
if ( isset( $_COOKIE[session_name()] ) ) {
    // if $this->sns_id does not exists show a session error
    if ( !isset( $this->sns_id ) ) {
        $this->cakeError( 'session' );
    }               
} else {
    // otherwise if  there is not request parameter with name post_pf_params is sent
    // show a cookie error.
    if ( !isset( $_REQUEST['post_pf_params'] ) ) {
        $this->cakeError( 'cookie' );
    }
}

来自谷歌翻译,

セッション期限切れ指会话已过期
スタートページからの迁移でなかったら意味着如果您不是从起始页面过渡