对于checkbox的话,那么用数组序列化将会是很好的解决方案。

解决方案 »

  1.   

    http://www.pconline.com.cn/pcedu/empolder/wz/php/10203/37991.htmlthis webpage can solve your problem
      

  2.   

    你的表设计的不是很好 
    UsrLogin Name vChar 50   登录名
    UsrPwd vChar 50     密码
    Grade int     级别
    权限表:
    1 Gradeid tintny     等级    gradename vchar 202 canview tinyint(3)  UNSIGNED      访问权限...................................以下字段省略
    如果可以查看把字段为1 默认为0不能查看,然后程序中用empty判断
    尽量封装,能省去你很多事情
    简单的给你写点代码,你自己看吧function usergroup($userid)
    {
         $query1="select * from user_group left join user_info on group=groupid where userid=$userid";

     $result1=$db->ExeCute($query1) or die("数据库错误");
     if($result1->RecordCount()==1)
    {
         
     $this->group['caniview']=&$result1->fields['canview'];
    ...........................................................
      

  3.   

    grade和grade_id都可以用tinyint(3)  UNSIGNED   类型
      

  4.   

    做一个表用来放权限吧。
    id userID gradeID moudel
    表id 用户ID 权限级别 模块或各种删除,编辑,添加,认证
    用需要有删除。编辑。添加。认证操作时。
    根据用户ID级别操作相应的功能
      

  5.   

    字段Power1 Power2 Power3  Power4..
    都是表示用户的访问权限了。我如果授予用户x的权限为power1,那么他就有power1对应的权限,如:访问所有页面。而授予power2的权限有可能只能访问部分页面了,这样就可以限制用户对受保护页面的访问。
      

  6.   

    呵,看看我的访问控制系统吧
    http://blog.csdn.net/misnet/
      

  7.   

    为了介绍方便,我只建一张表,把用户信息和权限全放入这张表
    例如:建一张名为user的表,有username, pw, brow, addu, modi, dele,admi等字段,其中admi字段是1的话,就是管理员,默认为0。每个用户都有浏览,添加,修改,删除四种权限,1表示有权限,0表示没有权限,默认为0。首先建立一个login页面,作用为判断用户权限,以后每个页面都首先调用login页面
    //login.php
    if (isset($_POST['login']))
    {
    mysql_connect('localhost', 'root', '1234567') or die('Connect error!'.mysql_error());
    mysql_select_db('test') or die ('Select error!'.mysql_error());
    $query = "select * from user where username='$_POST[username]'";
    $result = mysql_query($query);
    $num = mysql_num_rows($result);
    $row = mysql_fetch_array($result);
    if ($num==0) exit("用户名不存在");
    if ($row['pw']==md5($_POST['password']))
    {
    $_SESSION['user']['name'] = $_POST['username'];
    $_SESSION['user']['administrator'] = $row['admi'];
    $_SESSION['user']['browser'] = $row['brow'];
    $_SESSION['user']['add'] = $row['addu'];
    $_SESSION['user']['modify'] = $row['modi'];
    $_SESSION['user']['delete'] = $row['dele'];
    echo "<meta http-equiv=refresh content='0; url=main.php'>";
    }
    else exit("密码错误");
    }
    }这是添加用户页面,
    //add.php
    <?php 
    session_start();
    if(!isset($_SESSION['user']['name'])) 
    header("Location: login.php");
    ?>
    //如果没有登陆就回到login登陆,否则继续
    <?php
    if($_SESSION['user']['administrator']!=1)
    exit("不是管理员,没有权限"); //不是管理员的话就停止
    else
    {
    ?>
    <FORM action="add.php" method="post">
    用户权限:
    <input type="checkbox" name="browser"  /><label for="browser">浏览 </label>
    <input type="checkbox" name="add"  /><label for="add">增加 </label>
    <input type="checkbox" name="modify"  /><label for="modify">修改 </label>
    <input type="checkbox" name="delete"  /><label for="delete">删除 </label>
    <input type="submit" name="register" value="添加">
    </FORM><?php
    //提交后,开始用PHP处理
    if(isset($_POST['register']))
    {
    $browser = $_POST['browser']=="on"?1:0;//1表示允许,0表示不允许
    $add = $_POST['add']=="on"?1:0;
    $modify = $_POST['modify']=="on"?1:0;
    $delete = $_POST['delete']=="on"?1:0;
    mysql_connect('localhost', 'root', '1234567');
    mysql_select_db('test');
    $sql = "insert into user (brow, addu, modi, dele) values ('$browser', '$add', '$modify', '$delete')";
    if(mysql_query($sql) or die(mysql_error()))
    echo "成功";
    else echo "失败";
    }
    }
      

  8.   

    上面是管理员分配普通用户的权限,现在再说权限的控制,权限控制其实更简单,因为已经把用户的权限信息放入Session,所以只需要判断Session中存放的值就可以了,例如:
    if($_SESSION['user']['browser']==1)
    {
    //如果拥有浏览权限..........
    }
    if($_SESSION['user']['add']==1)
    {
    //如果拥有添加权限..........
    }
    以下依次类推
      

  9.   

    starflash2003(大柠檬) 的想法我是 懂了,可是就是关键的地方被省略了,本人太笨了~~~
    if($_SESSION['user']['browser']==1)
    {
    //如果拥有浏览权限..........
    }
    .
    .
    .
    .
    你的“//如果拥有浏览权限..........”这部分内容可能就是一些授权语句了,我现在就是在想,如果我只是授权用户访问一个页面那应该怎么来实现呢?也就是怎么样让check的值和一个页面进行关联了。怎么样读取一个用户的信息中的存储的check的值就知道他拥有访问该页面的权限呢?
      

  10.   

    我是用3张表实现的:
    system_user存放用户
    system_menu存放每个页面的路径
    system_access存放用户ID和menu_id,进入一个页面时判断在system_access中是否有user_id和该页面的menu_id,这样可以检查某用户是否对该页面有访问权。但后来发现如果同一个页面中又分浏览、删除、修改等几种权限时,该方法就不行了。
      

  11.   

    to 楼主,在login.php中,已经把用户的所有信息都从数据库中调出存在Session中了,然后在其他页面只需要判断Sesson中的信息就行了,例如:
    <?php
    <?php 
    session_start();
    if(!isset($_SESSION['user']['name'])) 
    header("Location: login.php");
    else
    {
    if($_SESSION['user']['browser']==1)
    {
      echo "你有权限";
    }
    else
    {
      echo "你没有权限";
    }
    }
    ?>
    再解释一下,授权语句是在上面的add.php中,把授权信息存入数据库内,其他页面再从数据库中取出授权信息,根据授权信息把不同的内容显示给不同权限用户
      

  12.   

    个人的思考:将checkbox的参数传递给管理页面。管理页通过读取的参数来决定locate哪个访问页
      

  13.   

    asp 中一般都是用session,分配权限后,刷一遍session