登录站点有两个文件夹创建错误

时间:2014-03-15 06:30:13

标签: php session authentication

我有两个不同名称的数据库。但结构(列等)是相同的

我在root中有两个文件夹,它们作为两个不同的站点。 例如,在www.xyz.com的根文件夹中,有两个文件夹

 xyz.com/firstsite/index.php

 xyz.com/secondsite/index.php

现在两个文件夹都有该文件夹中特定文件的登录系统。

我的问题如下......

如果我登录www.xyz.com/firstsite,我会转到成功的登录页面。现在,如果我尝试在同一浏览器的另一个标签页中打开www.xyz.com/secondsite,则会显示You are already in Logged In,而不是用户名和密码字段。

由于两个登录系统都从两个不同的数据库中提取数据......直到为什么你已经登录了消息?

3 个答案:

答案 0 :(得分:0)

您可能在登录时分配相同的会话/ cookie名称,然后在检查两个站点上的用户登录状态时显然检查它们/相同的名称。

检入您的登录脚本和检查登录状态或会话状态脚本,并查看您为会话命名的内容。

示例:

文件夹1是管理员页面,需要管理员权限。

文件夹2是员工页面,需要员工权限。

在两个文件夹中的每个公共Web文件的顶部,都包含一个用于检查其会话/ cookie值的脚本。然后根据数据库的用户表检查这些内容,并检查匹配的位置,查看他们的权限是什么,或者用户级别是什么。

如果用户的会话/ cookie名为“user_id”且值为“1”,另一个名为“user_name”且值为“JimBob”,并尝试登录您网站的管理部分,则检查数据库中的userlevel列,其中user_id ='1',user_name ='JimBob'。

假设您在拥有管理员权限时将用户级别列的值设置为“A”。如果JimBob的用户级别等于'E'或除'A'以外的任何其他级别,那么您将其标题/重定向到登录页面或管理员登录页面,因为他们试图访问管理页面。

您真正需要做的就是拥有一个数据库,其中包含一个名为users的表,例如,该表有一个名为userlevel的列。

然后,您可以根据所需的站点权限为用户分配特定的用户级别,并相应地授予他们访问权限。

当某人尝试访问某个页面时,您会在登录脚本中检查您为其设置的会话/ Cookie,并查询您的数据库以查找匹配项并授予访问权限或相应地重定向它们。

答案 1 :(得分:0)

您可以通过更改站点中会话变量的名称来解决此问题。

你可以这样做:

$_SESSION['site1']['user']=array(user details...);
$_SESSION['site2']['user']=array(user details..);

在登录页面中,您可以使用会话中的正确站点变量轻松找到用户信息。

答案 2 :(得分:0)

我得到的解决方案如下......

我在一个文件夹(比如站点2)中添加了session_name(xyz)

刚刚改变

     $_SESSION=['user_id'] 

     $_SESSION=['user_id2']
页面中的

,站点2的登录页面。