我有一个index.php页面,它设置一个会话状态,让我知道当我使用instagram和oauth进行身份验证时,用户就在那里。
session_start();
$state = md5(uniqid(rand(), TRUE));
$_SESSION['state'] = $state;
$_SESSION['oauth_workflow'] = "front_page";
现在如果我有另一个页面,我们称之为shop.php,并设置一个不同的工作流程(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的thrid页面,只是将会话转储到那里,
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;
}