2012-11-20 6 views
0

Set-Cookie 함수를 사용하고 있습니다. 크롬과 파이어 폭스에서 잘 작동합니다.IE에서 Set-Cookie가 작동하지 않습니다

쿠키를 설정하면 불그스프로 볼 수 있습니다.

하지만 뭔가 잘못하고 있어요 경우 어떤 이유로 내 구문이 올바른지 사람이 확인할 수 있습니다 즉

에서 쿠키를 설정하거나되지

?

function generateSession($cookieName="wic_secure_sess", $idTag="", $numChars=32, $expireSeconds=0, $path=null, $domain=null, $secure=2) { 
     if (!isset($_COOKIE[$cookieName])) { 
      $sessId = $idTag; 
      for ($i=0; $i<$numChars; $i++) { 
       srand((double)microtime()*1000000); 
       $randomType=rand(1, 3); 
       srand((double)microtime()*1000000); 
       switch ($randomType) { 
       case 1: 
        $sessId.=chr(rand(65, 90)); 
        break; 
       case 2: 
        $sessId.=chr(rand(97, 122)); 
        break; 
       case 3: 
        $sessId.=rand(0, 9); 
        break; 
       } 
      } 

     $expires = str_replace('+0000', 'GMT', gmdate('r', strtotime('+30 days'))); 
      if ($expireSeconds != 0) { 
       $expireSeconds = time()+$expireSeconds; 
      } 

      if (livecheck() || stagecheck()) { 
      header("Set-Cookie:". $cookieName."=".$sessId."; expires=".$expires."; path=".$path.";HttpOnly;secure;"); 

      } 
      else { 



        header("Set-Cookie:". $cookieName."=".$sessId.";    expires=".$expires."; path=".$path.";HttpOnly"); 

      } 



     } else { 
      $sessId = $_COOKIE[$cookieName]; 
     } 
     return $sessId; 
    } 
?> 
I dont want to use setcookie() because i am running php4 version since php4 does not support httponly in the setcookie() function 

편집 : php setcookie() 함수는 IE에서 완벽하게 작동합니다. 때 헤더() 문제를 만드는 thats 사용합니다.

generateSession("my_sess", "", 20, 14400, "/"); 

답변

0

당신은 P3P privacy policy 사용을 고려할 수 있습니다 여기에

setcookie($cookieName, $sessId, $expireSeconds, $path, $domain, $secure); 

내 함수에 대한 호출입니다. 이 정책 형식은 요즘 Internet Explorer에서만 허용되지만 브라우저 개인 정보 취급 방침에서 쿠키 차단을 극복하는 데 도움이됩니다. P3P 개인 정보 보호 정책에는 정책 파일과 압축 정책 헤더의 두 부분이 있습니다. 컴팩트 정책 헤더는 대개 대부분의 응용 프로그램과 구현하려는 최소 노력에 충분합니다. P3P의 다른 카테고리는 헤더의 간결함을위한 간결한 코드를 갖는다. 네비게이션 => NAV. 최소한 컴팩트 정책에 대한 대화 형 (INT), 탐색 (NAV) 및 고유 ID (UNI) 코드부터 시작하겠습니다.

response.setHeader("P3P", "CP='INT NAV UNI'"); 
: Grails를/자바에서

, 여기에 헤더를 다시 전달하는 방법의 예입니다