2012-08-27 3 views
0

저는 Abraham William의 Twitter oAuth 라이브러리를 사용하고 있습니다.세션이 사라지고 있습니다.

내가 바로 리디렉션하기 전에 $ _SESSION을 확인하는 경우
if (isset($_REQUEST['oauth_token'])){ 
    print_r($_SESSION); 
    exit; 
} 
/* Build TwitterOAuth object with client credentials. */ 
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);  
/* Get temporary credentials. */ 
$request_token = $connection->getRequestToken(OAUTH_CALLBACK); 
/* Save temporary credentials to session. */ 
$_SESSION['oauth_token'] = $token = $request_token['oauth_token']; 
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret']; 
/* If last connection failed don't display authorization link. */ 
switch ($connection->http_code) { 
    case 200: 
    /* Build authorize URL and redirect user to Twitter. */ 
    $url = $connection->getAuthorizeURL($token); 
    print "<script>self.location='$url';</script>"; 
    break; 
    default: 
    /* Show notification if something went wrong. */ 
    echo 'Could not connect to Twitter. Refresh the page or try again later.'; 
    return; 
} 

, $ _SESSION이 : 다음

내 코드입니다. 리다이렉트가 발생하면 $ _REQUEST [ 'oauth_token']이 설정되고 (나는 이것을 확인했다.), $ _SESSION은 더 이상 존재하지 않는다.

내 브라우저가 쿠키 및 타사 쿠키를 허용하도록 설정되었습니다. 어떤 아이디어?

+0

Wheres'session_start()'? –

+0

내가 처리 할 라이브러리가이를 처리합니다. 내 질문에, 나는 다시 지시하기 전에 $ _SESSION을 테스트 중이라고 언급하고 그 시점까지 코드에 의해 설정된 $ _SESSION 및 $ _SESSION 변수가 있습니다. – EastsideDeveloper

+0

왜 내 질문을 다운 그레이드하겠습니까? 특정 라이브러리를 사용하여이 태그를 Twitter OAuth 문제로 명확하게 식별하는 태그가 있습니다. – EastsideDeveloper

답변

1

session_start()가 없습니다. 귀하의 페이지 상단에 있습니다. 코드가 세션 변수를 사용하기 전에 session_start()가 필요합니다.

+0

내가 부르고있는 라이브러리가이를 처리합니다. 내 질문에, 나는 다시 지시하기 전에 $ _SESSION을 테스트 중이라고 언급하고 그 시점까지 코드에 의해 설정된 $ _SESSION 및 $ _SESSION 변수가 있습니다. – EastsideDeveloper

+0

하지만 세션 변수에 액세스하려고 시도한 후에 라이브러리를 호출하는 것처럼 보입니까? 라이브러리가 세션을 시작하면 세션 변수가 포함될 때까지 세션 변수에 액세스 할 수 없습니다. –

+0

이 스크립트는 Twitter oAuth의 콜백 URL입니다. 리디렉션에서 코드가 먼저 실행됩니다. 제대로 처리되지만 세션은 사라집니다. 이 질문에 대한 태그와 앞에서 설명한 설명 (Abraham Williams oAuth 라이브러리를 사용하고 있음)을 참조하십시오. – EastsideDeveloper

관련 문제