繁体   English   中英

PHP处理会话和cookie的不同文件夹

[英]PHP Handling sessions and cookies different folder

我有问题 我创建了一个Web应用程序,该用户可以在其中登录并设置了许多$ _SESSION [...]。 我发现很奇怪的一点是,如果我登录文件夹http://demo.site.com/,然后登录http://webapp2.site.com ,则会在两个Web应用程序中混合使用会话数据...

这是checkentry.php中的代码(在将其发送到主页之前检查该人是否已登录:

<?php
session_start();
    if(isset($_SESSION['autenticated']) && $_SESSION['autenticated'] == TRUE && isset($_COOKIE["login"]) && $_COOKIE["login"] == $_SESSION['ssnid']){
        if (!isset($_SERVER['HTTPS']) ){
            //header('Location: https://'.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"].'');
        }   
        return true;
    }else{
        require_once("config.php");
        $logout_connect = mysql_connect($db_host, $db_user, $db_pass);
        if (!$logout_connect){
            die('Impossibile connettersi: ' . mysql_error());
        }else{
            mysql_select_db($db_name, $logout_connect);
            mysql_query("DELETE FROM sessions WHERE ssnid = '".$_SESSION['ssnid']."' AND userid = '".$_SESSION['userid']."'");
            setcookie("login", "", time()-3600);
        }
        session_destroy();
        header("location: login.php?requested");
    }
?>

因此,问题在于,如果我同时登录了两个Web应用程序(并且在同一域中的不同文件夹中有许多Web应用程序),我得到的是$ _Session数据。

[编辑]当我从app1.site.com注销时,我也从app2.site.com注销...

我做错了什么以及如何解决?

ku

您可以对所有会话变量使用标题,并在每个Web应用程序中更改标题。

APP1

$pre = "app1";
if(isset($_SESSION[$pre.'autenticated']) && $_SESSION[$pre.'autenticated'] == TRUE) {}

APP2

$pre = "app2";
if(isset($_SESSION[$pre.'autenticated']) && $_SESSION[$pre.'autenticated'] == TRUE) {}

$ pre可以在config.php中定义

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM