2011-09-22 5 views
0

Google 크롬의 이상한 이유로 내 스크립트 중 하나에 심각한 문제가 있습니다. 트위터/페이스 북 연결이 필요한 페이지를 설정하고 있습니다. 기본적으로 무슨 일을하는 것입니다 :트위터 용 Google 크롬의 이상한 세션 동작 OAuth

  1. 방문 페이지 (페이스 북 + 트위터 클래스는, 일부 세션 설정 등 설정되고 시작됩니다)
  2. 채우기 연결에 네트워크 중 하나의 연결 버튼을 클릭 세부 사항
  3. 우리의 웹 사이트 (가입을 클릭하십시오)에 가입하십시오.

이제 모든 것이 IE/Firefox/Safari에서 완벽하게 작동하지만 Chrome은 정말 미친 짓을합니다. 나는이 페이지를 방문하도록 요청하고 싶은 다음 $ _SESSION 변수의

하지 않는 것이 중요 더이상

대부분의 경우 파이어 폭스/IE/Safari에서 그냥 표시됩니다 빈 위해서 var_dump를(). 처음에는 이것이 Chrome에서하는 일입니다. Firefox/IE/Safari에서 페이지를 한 번 새로 고침하면 세션은 여전히 ​​비어 있지만 Chrome에서는 이미 일부 키가 표시됩니다.

나는 절대적으로이 키는이 viewsessions.php의 내용입니다 ..에서 온 단서가 없다 : 나는 아무것도가 일어나지 않을 수 있습니다 알고 지금까지

session_start(); 
echo '<pre>'; 
var_dump($_SESSION); 

if(isset($_GET['u'])) { 
    unset($_SESSION); 
} 

하지만 위의와 파이어 폭스/IE를/Safari는 올바른 행동을 보여줍니다.

모든 것이 잘 작동한다면 큰 문제는 아니지만 'requestoken_XXXX'세션 키는 Twitter OAuth에 속합니다. 그리고 requesttoken이 새 버전으로 새로 고쳐지기 때문에 내 웹 사이트로의 인증 리디렉션을 찾을 수 없습니다 일치하는 토큰이 아니므로 인증의 유효성을 검증하지 않습니다.

어떤 일이 일어나는지 볼 수 있습니까? 뒷쪽에서 일부 페이지가 호출되고 있습니까? 이 Chrome과 관련된 알려진 문제가 있습니까? 나는이게 될 수있는 어떤 단서도 남기지 않았습니다 ..

미리 감사드립니다.

답변

0

문제 해결 .. 어떤 이유

이 파일 : 나는 경우 밝혔다 때문에

<IfModule mod_rewrite.c> 
    Options +FollowSymLinks 
    Options -Indexes 

    RewriteEngine On 
    RewriteBase/

    # Bestaande bestanden of mappen uitsluiten 
    RewriteCond %{REQUEST_FILENAME} -f [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule ^(.*?)$ $1 [L] 

    RewriteRule ^start/$ login.php [L,QSA] 
    RewriteRule ^logout/$ logout.php [L,QSA] 
    RewriteRule ^timeline/$ timeline.php [L,QSA] 

    RewriteRule ^(.*)$ index.php [L] 

</IfModule> 

어떤 요청 (나는 ... 추측)을 index.php 짓이 조금 이상한 것 같다 그것은 기존 파일 또는 디렉토리이므로 파일을 열어야합니다 : RewriteRule ^(.*?)$ $1 [L] 그리고 마지막으로 따르도록 규칙을 지정했습니다.

이 마지막 RewriteRule을 제거하면 문제가 해결됩니다. 아직 크롬이 [L] 매개 변수를 왜 왜곡하는지 잘 모르겠다. 누군가가 설명 할 수 있다면 그것은 대단 할 것이다.