我的网站是一个小工具应用程序。它使用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' );
}
}
答案 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' );
}
}
来自谷歌翻译,
セッション期限切れ指会话已过期。
スタートページからの迁移でなかったら意味着如果您不是从起始页面过渡