-6
> i ve got 4 separate tables to store login data.
>>> tables are  **admin_login staff_login >tutor_login student_login**.  
>>>>>> my php registration form is storing data into this fields. 
  1. 现在我需要一些建议如何制作登录脚本?
  2. 我已经准备好登录表格。
4

3 回答 3

2

首先,为什么有 4 张桌子?为什么没有 1 带有登录类型字段?

多个表的一般规则与一个表相同。您要检查用户名/电子邮件地址,然后检查密码。

开始查询您的表以获取用户名电子邮件地址。计算结果。如果他们是结果,则检查密码(无论您是否使用任何加密)匹配并登录。如果没有结果,则向用户发送一条消息,说明没有人匹配该用户名/电子邮件,如果密码不匹配然后告诉他们。

我不会为你写它,但这里是它的要点:

$query = mysql_query("CHECK FOR EMAIL ADDRESSES OR USERNAMES"); // Just query multiple tables if you're going to do it this way (I'd still use the one though)
$count = mysql_num_rows($query);

if ($count > 0) { // Email address exists
   // Check the passwords match up
   if (PASSWORDS MATCH) {
       // Do your login here
   } else {
       // Password wrong error
   }

} else {
    // No username error here
}
于 2012-04-04T11:28:20.463 回答
0

您可以使用UNION's 解决问题,但最好将数据库重构为单个表,其中包含一个字段,表示它们是管理员/导师等。

于 2012-04-04T11:23:37.877 回答
0

您可以先使用连接查询,也可以为所有用户创建一个统一表,其中包含如下accessLevel字段:用户表:

username | passwordHash | accessLevel
---------+--------------+------------
abc      |  mnbdjhgs    |   admin
pqr      |  kfgjkfbb    |   stud

然后您可以简单地检查从腰部表格中获得的用户详细信息,例如:

$result = $mysqli->query("SELECT passwordHash, accesslevel FROM users WHERE username = '{$username}' ");

if($result)
{  $data = $result->fetch_assoc();
   if($data)
   {  if($password === $data['passwordHash'])
      {   //identify the user-type here..
          $accesslevel = $data['accessLevel'];

          //now u can do session initialization and other stuff..
      }
   }
}
else
{  //show wrong username or password messages
}
于 2012-04-04T11:44:15.267 回答