【问题标题】:Sessions apply in more than one website会话适用于多个网站
【发布时间】:2014-05-10 22:25:28
【问题描述】:

我已经制作了 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 } ?> 

希望这一切都是相关的!

【问题讨论】:

标签: php html css session


【解决方案1】:

我建议您阅读此手册页:

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

还有这个维基页面:

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

你的问题的根源应该很清楚。

【讨论】:

    【解决方案2】:

    会话通常由 cookie 在浏览器端处理。 cookie 有一个域:cookie 应用到的站点和路径。查看在您的浏览器中设置的 cookie;您网站的会话 cookie 可能有一个适用于您的两个网站的域。

    您需要确保每个站点的会话 cookie 上的路径足够具体,以使其他站点无法获取它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 2012-08-13
      • 1970-01-01
      相关资源
      最近更新 更多