php没有更新会话变量?

时间:2009-09-21 12:28:38

标签: php session twitter

我一直在使用twitter oauth和api,我有一个奇怪的问题。

我正在做的是生成请求链接,将请求令牌和秘密保存在会话变量中,然后当用户从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会话数组不产生任何内容,对于echo也是如此。它就像它不存在或其他什么。

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

第二页上写着:

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

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

3 个答案:

答案 0 :(得分:1)

看来,PHP无法正确保存会话。你能展示phpinfo()吗?可能是会话保存处理程序被覆盖。此外,尝试摆脱Twitter并使用会话变量在纯PHP中进行实验。这有用吗?

答案 1 :(得分:1)

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

答案 2 :(得分:0)

结果会话特定于地址。

我是从

发送请求的
http://website.com

它又回来了

http://www.website.com