У меня есть страница index.php, которая устанавливает состояние сеанса, чтобы сообщить мне, что пользователь был там, когда я проходил аутентификацию, используя instagram и oauth.
session_start();
$state = md5(uniqid(rand(), TRUE));
$_SESSION['state'] = $state;
$_SESSION['oauth_workflow'] = "front_page";
Теперь, если у меня есть другая страница, давайте назовем ее shop.php и установим другой рабочий процесс (of shop_page);
session_start();
$state = md5(uniqid(rand(), TRUE));
$_SESSION['state'] = $state;
$_SESSION['oauth_workflow'] = "shop_page";
print_r($_SESSION);
Когда я захожу на страницу shop.php, переменная сеанса рабочего процесса oauth говорит, что это «страница магазина», как и было предсказано. Но если у меня есть третья страница с именем session.php, и я просто выводю сессию,
print_r($_SESSION);
Я обнаружил, что переменная потока операций сеанса oauth была сброшена до «front_page», хотя я никогда не получаю доступ к индексу.
Я подозреваю, что это как-то связано с файлом .htaccess, но я не могу решить проблему; Файл .htaccess существует для псевдонимов URL
.Htaccess:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/admin/
RewriteCond %{REQUEST_URI} !^/user/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ redirect.php?q=$1 [L]
Как мне остановить индекс от сброса oauth_workflow?
РЕДАКТИРОВАТЬ:
callback.php (простой оператор switch)
// Figure out where we came from
session_start();
$oauth_workflow = $_SESSION['oauth_workflow'];// figure out what action to take;
switch ($oauth_workflow) {
case 'font_page':
//code
break;
case 'shop_page':
//code
break;
}
Задача ещё не решена.
Других решений пока нет …