2012-01-29 99 views
0

我正在做一个登录页面,我已经完成了登录,但我怎么会让网页显示diffren't基于用户权限的东西,我将如何设置在我的MySQL数据库的特权?然后在我的PHP代码中使用它们?用户权限与mysql数据库和php

+0

您是否安装了phpmyadmin?此外,mysql工作台将帮助您编写查询并设置您的模式。 – sissonb 2012-01-29 00:30:56

+0

是的,我有phpmyadmin,我会得到mysql工作台 – Huntaz556 2012-01-29 00:36:08

+0

您是否已经成功完成mysql_connect到mysql的数据库? – sissonb 2012-01-29 00:37:53

回答

3

我一般都在users表中的字段名为admin或在这种情况下,也许privilege_level,然后在你的PHP,你定义什么是现场的值对应于什么特权级别。

EDIT(示例):

// start session on every page using $_SESSION array 
session_start(); 
session_name("Your Site Name"); 
header("Cache-control: private"); 

// in login file: 
$q = mysql_query("SELECT uid, privilege_level FROM users WHERE pw = 'escaped_and_preferrably_hashed_password' AND username = 'escaped_username' LIMIT 0,1"); 

// if row found: 
if($q && mysql_num_rows($q) > 0){ 

    // get associative array 
    $array = mysql_fetch_assoc($q); 

    // set session vars 
    $_SESSION['privilege_level'] = $array['privilege_level']; 

} 

然后,在要检查你可以使用一个开关或其他控制结构/设计图案的权限级别动态地加载内容的网页,即:

switch($_SESSION['privilege_level']){ 
    default: 
     echo 'you have no privileges'; 
    break; 
    case "1": 
     echo 'you have some privileges'; 
    break; 
    case "2": 
     echo 'you have lots of privileges'; 
    break; 
} 
+0

所以一旦我连接到我的数据库并选择该表和字段privilege_level那么我该怎么办?你能给我一个这样的代码示例吗?我对此很陌生。谢谢:) – Huntaz556 2012-01-29 00:35:34

+0

我的编辑是@sissonb陈述的一个例子 – AndyPerlitch 2012-01-29 00:59:58

+0

你的例子比我的更好+1 – sissonb 2012-01-29 01:03:18

0

当用户登录时,他们提供用户名/密码。数据库应该存储这个用户名和密码的散列。例如。 md5($password)。您首先执行一个查询,如"SELECT privilege_level FROM table WHERE username = ".mysql_real_escape_string ($_POST["username"])." AND password=".md5($_POST["password"])

然后将该privilege_level保存到会话中。 $_SESSION["privilege_level"] = $privilege_level

现在,当它们加载下一页时,该页面应引用会话变量中的特权级别来构造页面。