Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP单应用程序/双数据库-Internet Explorer中标头重定向后会话值丢失_Php_Internet Explorer_Session_Wamp - Fatal编程技术网

PHP单应用程序/双数据库-Internet Explorer中标头重定向后会话值丢失

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

场景

我正在尝试更正一个应用程序的问题,该应用程序使用双数据库、单个应用程序在Internet Explorer的会话变量中填充用户。我有一个PHP应用程序的独特配置,它基于我之前提出的问题

我使用的是可通过数据库名称寻址的单个文件夹结构我的虚拟主机名等于正在访问的数据库名。如果我试图访问localhost或我的计算机名,我会故意阻止此请求,因为这些数据库名不存在

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;
                    }
            }

    ?>