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

标签 javascript php session urlencode

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

当他们离开网站时,我将重定向网址保存到 session 中 这样当他们返回网站时,他们会被重定向到该页面 他们之前曾观看过。

我遇到了一个非常奇怪的错误,如果 session 变量以任何方式从 get 变量保存,当我重定向时, session 变量为空。

如果我这样做,它就会起作用,并且当我执行时,var是正确的 从 Twitter/Facebook 重定向回来:

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

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

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

在到达 url 参数之前,我还尝试了在 javascript 中对其进行编码的所有可能方法...

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

这非常令人沮丧,如果有人可以帮助我,我将非常感激。

最佳答案

事实证明根本不适合 请求或 urlencode 的工作方式。

这纯粹是因为虽然我们最终 从 Twitter/Facebook 返回时在callback.php 上 我们必须浏览一下index.php。

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

很抱歉提出这个令人困惑、误导的问题。

关于javascript - 从 $_GET 传递到 $_SESSION 时出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31523134/

相关文章:

javascript - 为什么浏览器会在非 200 响应时重新请求脚本?

Javascript 生成一个可以除以 5 的随机数

php - 在 __destruct() 中,您如何查看当前是否存在异常?

javascript - 从设置间隔的文件中停止间隔

python - 是否可以在请求中刷新 session ?

javascript - AngularFireMessaging - 错误 this._next 不是函数

JavaScript | Angular | Controller 作为语法 : Cannot Use `this`

PHP Unset 正在重置我的 session 数组

php - fatal error :调用未定义的方法 CI_Session::sess_destroy() 1.7.2

java - org.springframework.transaction.CannotCreateTransactionException : Could not open Hibernate Session for transaction