Я использую Opauth для аутентификации пользователей на моем сайте через Twitter/Facebook.
Когда они покидают сайт, я сохраняю URL-адрес перенаправления на сеанс , так что, когда они возвращаются на сайт, они перенаправляются на страницу , которую они ранее просматривали.
У меня такая чрезвычайно странная ошибка, если переменная сеанса каким-либо образом сохраняется из переменной get, когда я перенаправлен, переменная сеанса пуста.
Если я делаю это работает и вар правильно, когда я перенаправлены обратно из Twitter/facebook:
$_SESSION['r'] = 'asdf';
Если я одно из следующих действий, он возвращается, как NULL или пустая строка :
$_SESSION['r'] = $_GET['r'];
$_SESSION['r'] = base64_encode($_GET['r']);
$_SESSION['r'] = urlencode($_GET['r']);
Я также пытался всеми возможными способами кодирования его в JavaScript, прежде чем он попадет в URL-адрес пары ...
window.location.href = '/opauth/twitter?r=' + btoa(window.location.pathname);
Это очень неприятно, и если бы кто-нибудь мог мне помочь, я был бы очень благодарен.
Как раз быстрая проверка работоспособности, вы вызываете 'session_start' на этой странице, правильно? – d0nut
Печать '$ _GET ['r']' перед тем, как вы установите его, вероятность того, что этот код будет оцениваться, на самом деле не установлен. – nickb
У вас есть 'session_start();' код на страницах? а также проверить, что '$ _GET' имеют значения или нет? –