[PHP]用户及权限管理

考虑到后台系统一般上都会有用户登陆管理:用户名、密码及所属权限 

如:

CREATE TABLE users (
  id int(11) NOT NULL auto_increment,
  username char(20) NOT NULL default '',
  password char(20) NOT NULL default '',
  policy int(11) NOT NULL default '0',
  PRIMARY KEY  (id)
);

这样policy用1、2等区分,当然也可以创建一个policy表来说明具体1、2等代表什么值。

在用户登陆时login.php中,会先从users表中判断用户是否正确(用户名、密码),正确返回一个policy值,当然用户可能要记录到session中;根据policy的不同,分配不同的url地址。

但这里有一个问题:用户的密码在数据库中是明码表示,相对不安全,因此可以用php自带的md5()函数来加密。

  1. <?php
  2. $db_conn = mysql_connect ( "host", "db_user", "db_pass" );
  3. mysql_select_db ( "db_name", $db_conn );
  4.  
  5. // 插入用户表时,$password 用了 md5 加密
  6. mysql_query ( "insert into users values
  7.                         ('$username', '". md5 ($password ). "', '2')" );
  8. ?>

用户登陆时,login.php中判断取policy值可以如下这样写:

  1. <?php
  2. $db_conn = mysql_connect ( "host", "db_user", "db_pass" );
  3. mysql_select_db ( "db_name", $db_conn );
  4.  
  5. $sql = "select policy from users where `username`='$username' and
  6.                         `password`='". md5 ($password ). "' limit 1";
  7. $result = mysql_query($sql);
  8. if (mysql_num_rows ($result ) > 0 ) {
  9.      list($policy) = mysql_fetch_row($result );
  10. } else {
  11.     // 登陆错误
  12.     header('location:index.php');
  13.     exit();
  14. }
  15. ?>

以上可以写一个单独的类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值