[英]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.