Что работает этот фрагмент?Использует сессионный cookie - PullRequest
0 голосов
/ 27 марта 2012

Мой сайт представляет собой приложение для гаджетов.Он использует фреймворк 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 Ответ

1 голос
/ 27 марта 2012

С CakePHP api ,

Controller :: 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' );
    }
}

Из перевода Google,

означает, что сеанс истек .
означает, что Если вы не переходите со стартовой страницы

...