2009-09-21 111 views
0

我一直在使用twitter oauth和api,并且我有一个奇怪的问题。php不更新会话变量?

我在做什么是生成请求链接,将请求令牌和秘密保存在会话变量中,然后当用户从twitter返回时,试图检索这些密钥以将它们存储在数据库中。

当我执行以下命令:

session_start(); 
$to = new TwitterOAuth($consumerkey, $consumersecret); 
$tok = $to->getRequestToken(); 
$request_link = $to->getAuthorizeURL($tok); 
$_SESSION["oauth_request_token"] = $token = $tok['oauth_token']; 
$_SESSION["oauth_request_token_secret"] = $tok['oauth_token_secret']; 
print_r($_SESSION)."<br>"; 

它显示了会话数组包含我的价值观,他们是正确的,但是当它从Twitter回来,print_r'ing会话阵列产生什么,同样为回声。它就像它不存在或某物。

我在第一行的第一行开始这两个页面上的会话。

第二页上写着:

session_start(); 
echo $_SESSION["oauth_request_token"]; 
echo $_SESSION["oauth_request_token_secret"]; 

奇怪的是,如果我手动声明的第二页上的会话变量,它工作正常。我错过了什么吗?

回答

0

结果会话特定于该地址。

我是从

http://website.com 

送我的请求,并要回

http://www.website.com 
1

看来,PHP不会正确保存会话。你能显示phpinfo()吗?可能会话保存处理程序被覆盖。此外,尝试摆脱Twitter和实验在纯PHP与会话变量。这会工作吗?

1

是否正确设置会话ID的cookie? 如果没有,那么会话ID将在URL中传递,因此您必须确保将其正确发送到Twitter。