PHP单应用程序/双数据库-Internet Explorer中标头重定向后会话值丢失
场景 我正在尝试更正一个应用程序的问题,该应用程序使用双数据库、单个应用程序在Internet Explorer的会话变量中填充用户。我有一个PHP应用程序的独特配置,它基于我之前提出的问题 我使用的是可通过数据库名称寻址的单个文件夹结构我的虚拟主机名等于正在访问的数据库名。如果我试图访问localhost或我的计算机名,我会故意阻止此请求,因为这些数据库名不存在PHP单应用程序/双数据库-Internet Explorer中标头重定向后会话值丢失,php,internet-explorer,session,wamp,Php,Internet Explorer,Session,Wamp,场景 我正在尝试更正一个应用程序的问题,该应用程序使用双数据库、单个应用程序在Internet Explorer的会话变量中填充用户。我有一个PHP应用程序的独特配置,它基于我之前提出的问题 我使用的是可通过数据库名称寻址的单个文件夹结构我的虚拟主机名等于正在访问的数据库名。如果我试图访问localhost或我的计算机名,我会故意阻止此请求,因为这些数据库名不存在 http://app --> loads data from app database http://app_de
http://app --> loads data from app database
http://app_demo --> loads data from app_demo database
app是单个应用程序目录的名称
现在,当我通过http://app
我可以在Firefox中这样做。此外,我还可以通过http://app_demo
在Firefox中。我通过session变量看到登录的用户
问题
在Internet Explorer中,通过http://app_demo
尽管通过http://app
当我访问http://app_demo
在Internet Explorer中,会话在index.php头重定向之前填充,但在我尝试查看index.php中的值后立即清除
问题
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/app"
ServerName App
ServerAlias App
<Directory "c:/wamp/www/app">
AllowOverride All
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/app"
ServerName app_demo
ServerAlias app_demo
<Directory "c:/wamp/www/app">
AllowOverride All
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
我需要做什么才能使IE中的两个主机名都可以登录
Windows主机文件
127.0.0.1 app
127.0.0.1 app_demo
Apache虚拟主机定义
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/app"
ServerName App
ServerAlias App
<Directory "c:/wamp/www/app">
AllowOverride All
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/app"
ServerName app_demo
ServerAlias app_demo
<Directory "c:/wamp/www/app">
AllowOverride All
Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
DocumentRoot“c:/wamp/www/app”
服务器名应用程序
服务器别名应用程序
允许超越所有
选项索引跟随符号链接
允许超越所有
命令允许,拒绝
通融
DocumentRoot“c:/wamp/www/app”
ServerName应用程序演示
ServerAlias应用程序演示
允许超越所有
选项索引跟随符号链接
允许超越所有
命令允许,拒绝
通融
index.php
<?php
session_start();
if (session_status() === PHP_SESSION_NONE)
{
require_once('session.php');
}
else if (isset($_SESSION['expire']))
{
$expire = $_SESSION['expire'];
session_destroy();
echo $expire;
echo "<meta http-equiv='refresh' content='0; url=index.php'>";
}
?>
<!DOCTYPE html>
<?php
session_cache_limiter ('private, must-revalidate');
session_start();
?>
<?php
require_once('session.php');
require_once('usermanager.php');
$username = isset($_POST['username'])? $_POST['username'] : '';
$password = isset($_POST['password'])? $_POST['password'] : '';
if ($username == '' or $password == '')
{
header('Location: login.php?err=1');
return;
}
$userManager = new UserManager($username, $password);
if (!$userManager->isValidUserName($username))
{
header('Location: login.php?err=2');
return;
}
else
{
$confirmed = $userManager->confirmUserNamePassword($username, $password);
if (!$confirmed)
{
header('Location: login.php?err=3');
return;
}
else
{
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['userid'] = $userManager->getUserID($username, $password);
$_SESSION['userrole'] = $userManager->getUserRole($username, $password);
$_SESSION['loggedin'] = true;
$_SESSION['lastnamefirstname'] = $userManager->getLastNameFirstName($username, $password);
header('Location: index.php');
exit;
}
}
?>