我遇到了問題。 我已經創建了一個Web應用程序,其中人員登錄並設置了許多$ _SESSION [...]。 我發現奇怪的一點是,如果我登錄的文件夾http://demo.site.com/在我登陸後http://webapp2.site.com我得到兩個web應用程序混合起來的會話數據...PHP處理會話和Cookie不同的文件夾
這是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註銷...
我做錯了什麼以及如何解決它?
TKU
http://php.net/manual/en/function.session-定義save-path.php – zerkms
請你詳細解釋一下嗎?混淆你的意思是什麼? – Nickool
這個問題有關於這個問題的一些很好的見解:http://stackoverflow.com/questions/1064243/php-sessions-across-sub-domains – aurbano