加载页面时正在重置会话状态

时间:2014-09-18 01:23:53

标签: php session oauth

我有一个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;
}

0 个答案:

没有答案
相关问题