Я сделал 2 веб-сайта, которые используют систему входа в систему, и на обоих все работает нормально. Пользователь может войти и выйти из обоих. Я использую xampp, и оба веб-сайта открыты в Chrome на двух вкладках. На обоих веб-сайтах у меня есть адрес электронной почты пользователя, отображаемый, когда пользователь входит в систему. Проблема заключается в том, что когда я вхожу на веб-сайт A, я переключаюсь на веб-сайт B и обновляю страницу, на которой я вошел на этот веб-сайт, а также с адресом электронной почты который я вошел в систему на веб-сайте A. Этот отображаемый адрес также отображается, когда нет учетной записи, связанной с соответствующим веб-сайтом. Мой вопрос в том, как ограничить сеанс одним сайтом.

Это действие входа в систему

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

Надеюсь, это все актуально!

0
Kie21 10 Май 2014 в 18:06

2 ответа

Лучший ответ

Сеанс обычно обрабатывается на стороне браузера файлом cookie. У файла cookie есть домен: сайт и путь, к которому он применяется. Посмотрите на файлы cookie, установленные в вашем браузере; Сессионный файл cookie вашего сайта, вероятно, имеет домен, который применяется к обоим вашим веб-сайтам.

Вам необходимо убедиться, что путь в файле cookie сеанса каждого сайта достаточно конкретен, чтобы другой сайт не мог его уловить.

0
Brian Kendig 10 Май 2014 в 14:25

Я бы порекомендовал вам прочитать эту страницу руководства:

http://de2.php.net/manual/en/session.examples.basic.php

И эта страница вики:

http://en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Path

И источник вашей проблемы должен быть ясен.

1
pintxo 10 Май 2014 в 14:23