从$ _GET传递到$ _SESSION时出现奇怪的错误

时间:2015-07-20 17:52:38

标签: javascript php session urlencode

我正在使用Opauth通过Twitter / Facebook对我的网站的用户进行身份验证。

当他们离开网站时,我正在为会话保存重定向网址 这样当他们回到网站时,他们会被重定向到页面 他们以前在看。

我有这个非常奇怪的错误,如果会话变量以任何方式从get变量保存,当我被重定向时,会话变量是空白的。

如果我这样做,它就可以正常工作,并且当我是时,var是正确的 从twitter / facebook重定向:

$_SESSION['r'] = 'asdf';

如果我执行以下任何操作,它将返回NULL或空字符串:

$_SESSION['r'] = $_GET['r'];
$_SESSION['r'] = base64_encode($_GET['r']);
$_SESSION['r'] = urlencode($_GET['r']);

我还尝试了一些在javascript中编码的方法,然后才能进入url param ...

window.location.href = '/opauth/twitter?r=' + btoa(window.location.pathname);

这非常令人沮丧,如果有人能帮助我,我会非常感激。

1 个答案:

答案 0 :(得分:1)

事实证明并非完全没有 请求或urlencode的工作方式。

纯粹是因为我们虽然结束了 在Twitter / Facebook上回来时,在callback.php上 我们必须经历index.php。

这意味着正在设置的逻辑 $ _SESSION变量也将其清除为 来的时候没有设置$ _GET变量 从Twitter回来。

对于这个混乱,误导的问题感到抱歉。