【发布时间】:2015-11-17 06:52:13
【问题描述】:
我已经在会话变量中存储了某些凭据,例如从 Twitter OAuth 提供程序获得的 OAuth Secret 和 OAuth Token Secret,如下所示:
$_SESSION['o_token'] = $access_token['oauth_token'];
$_SESSION['o_token_secret'] = $access_token['oauth_token_secret'];
为了确保访问令牌确实存储在我的会话变量中,我尝试在提交表单之前在屏幕上回显它们,并且正如预期的那样,显示了令牌。
现在,我有一个表单,在提交表单时,存储在我的会话变量中的访问令牌丢失了。当我在提交表单后尝试回显这样的内容时:
if(isset($_POST['submitted']))
{
echo $_SESSION['o_token'];
}
什么都没有显示,因为$_SESSION['o_token'] 中存储的值现在是空的。
虽然存储在我的会话变量中的访问令牌数据在提交表单后丢失了?
PS:为了确认表单提交时只有访问令牌数据丢失,其他会话变量数据没有丢失,我尝试定义一个模拟会话变量:
$_SESSION['mock'] = "mock";
然后在表单提交后尝试回显:
if(isset($_POST['submitted']))
{
echo $_SESSION['mock'];
}
上面的代码确实显示了mock,这意味着只有存储在会话变量中的访问令牌数据会丢失。
这里似乎有什么问题?
编辑:是的,我在代码开头包含了session_start()。
【问题讨论】:
-
您是否在每页顶部都调用
session_start()?
标签: php forms session post oauth