Я сделал 2 веб-сайта, которые используют систему входа в систему, и все работает отлично на обоих. Пользователь может войти в систему и выйти из нее. Я использую xampp и открываю оба веб-сайта в Chrome на двух вкладках. На обоих сайтах у меня есть адрес электронной почты пользователя, отображаемого при входе пользователя в систему. Проблема заключается в том, когда я вхожу на веб-сайт. Переключатель на веб-сайт B и обновляющий страницу. Я зарегистрирован на этом веб-сайте, а также с адресом электронной почты что я вошел в систему на веб-сайте A. Этот адрес, который отображается, также отображается, когда нет учетной записи, связанной с веб-сайтом apposite. Мой вопрос заключается в том, как ограничить сеанс на одном веб-сайте.
Это действие входа
<?php
include 'db.inc';
session_start();
$UserEmail =$_POST["EmailAddress"];
$UserPassword =$_POST["Password"];
$query = "SELECT * FROM members WHERE EmailAddress = '$UserEmail'
AND password = '$UserPassword' ";
$connection = mysql_connect($hostname, $username, $password) or die ("Unable to connect!");
mysql_select_db($databaseName) or die ("Unable to select database!");
$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error());
// see if any rows were returned
if (mysql_num_rows($result) > 0) {
$_SESSION["authenticatedUser"] = $UserEmail;
// Relocate to the logged-in page
header("Location: Index.php");
}
else
{
$_SESSION["message"] = "Could not log in as $UserEmail " ;
header("Location: Login.php");
}
mysql_free_result($result);
mysql_close($connection);
?>
И это когда пользователь вошел в систему.
<?php
session_start();
if (!isset($_SESSION["authenticatedUser"]))
{
$_SESSION["message"] = "Please Login";
header("Location: Login.php");
}
else
{ ?>
Здесь отображается адрес электронной почты пользователя
<div class="Login">
<ul>
<?php if(isset($_SESSION['authenticatedUser']) && $_SESSION['authenticatedUser'] != null ) {?>
<li><a href="ProfilePage.php">Welcome <?php echo $_SESSION["authenticatedUser"] ?></a> </li>
<li><a href="logout.php"><span>Log Out</span></a></li>
<?php } else {?>
<li><a href="login.php"><span>Log In</span></a></li>
<?php } ?>
Надеюсь, это все актуально!
Сессия обычно обрабатывается на стороне браузера cookie. Файл cookie имеет домен: сайт и путь, к которому применяется файл cookie. Посмотрите файлы cookie, установленные в вашем браузере; cookie вашего сайта, вероятно, имеет домен, который применяется к вашим веб-сайтам.
Вам нужно будет убедиться, что путь в каждом cookie сеанса сайта определен достаточно, чтобы другой сайт не забирал его.
Я бы рекомендовал вам прочитать эту страницу руководства:
http://de2.php.net/manual/en/session.examples.basic.php
и эта страница вики:
http://en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Path
и источник вашей проблемы должен быть ясен.