문제

나는 아마도 여기서 정말 명백한 것을 간과하고있을 것입니다.

도서관 특정 코드를 설명하는 데 도움이되는 의견이 있습니다.

public function areCookiesEnabled() {

        $random = 'cx67ds';

        // set cookie
        cookie::set('test_cookie', $random);

        // try and get cookie, if not set to false
        $testCookie = cookie::get('test_cookie', false);


        $cookiesAppend = '?cookies=false';

        // were we able to get the cookie equal ?
        $cookiesEnabled = ($testCookie === $random);

        // if $_GET['cookies'] === false , etc try and remove $_GET portion
        if ($this->input->get('cookies', false) === 'false' AND $cookiesEnabled) {
          url::redirect(str_replace($cookiesAppend, '', url::current())); // redirect 
          return false;
        }

        // all else fails, add a $_GET[]
        if ( ! $cookiesEnabled) {

          url::redirect(url::current().$cookiesAppend);
        }

        return $cookiesEnabled;

    }

첫째, 쿠키가 활성화되어 있는지 쉽게 확인하는 방법을 원했습니다. 나는 이것을 달성했지만 쿠키가없는 경우 추악한 ?cookies=false URL에서.

괜찮 았지만 페이지를 다시로드하고 쿠키를 다시 활성화 한 경우 사용자를 리디렉션하여 제거하고 싶었습니다. ?cookies=false URL에서 (메소드가 지금 쿠키를 다시 확인하고 배울 수 있도록 허용 ~이다 활성화.).

도움이 되었습니까?

해결책

후에 $cookiesEnabled = ($testCookie === $random);, 4 가지 사례가 있습니다.

  1. $cookiesEnabled 사실입니다 $_GET['cookies'] === 'false' 사실이다
  2. $cookiesEnabled 사실입니다 $_GET['cookies'] === 'false' 거짓입니다
  3. $cookiesEnabled 거짓이고 $_GET['cookies'] === 'false' 사실이다
  4. $cookiesEnabled 거짓이고 $_GET['cookies'] === 'false' 거짓입니다

사례 1은 첫 번째로 처리됩니다 if 차단하다. 그만큼 return 진술은 사건 2와 3을 처리하기위한 것입니다. 두번째 if 블록은 사례 4 만 처리하기위한 것이지만 사례 3과 4를 모두 포착합니다. ?cookies=false, 하지만 그때부터 $cookiesEnabled 거짓, 우리는 추가하도록 리디렉션합니다 ?cookies=false, 그리고 사례 3으로 다시 순환합니다.

다른 팁

당신은 거기에서 무언가를 남겨두고 있어야합니다 ~이다 해당 코드에 루프가 없습니다. 당신이 그 의미가 있다면 브라우저 루핑 (예 : 연속 리디렉션을 얻는 것), 그런 다음 설치하는 것이 좋습니다. 라이브 HTTP 헤더 Firefox로 확장하고 브라우저와 서버가 실제로 서로의 말을보십시오. 위의 스 니펫에 일부 로깅 코드를 넣는 것도 유익 할 수 있습니다.

댓글 업데이트 :

그런 다음 내부에 인쇄문을 넣는 것이 좋습니다. ifS를 겪고있는 것과 다양한 값이 무엇인지 알 수 있습니다. 분명히 무엇 당신이 생각했던 방식을 설정하지 않으므로 이제는 실제로 무엇인지 알아 내야합니다.

내가 여러 번 만난 한 가지는 코드 자체가 정상이지만, 귀하를 상대로 작동하는 .htaccess 파일이 있으므로 Document_Root에서 시작하여 모든 디렉토리에서 .htaccess 파일을 두 번 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top