现在有login.php 登录页面 -> loginaction.php 登录处理页面 (登录成功后,跳转到输入界面)->  write.php 这里是记录信息用的 (在这里,可以通过底部的button跳转到,个人书写记录的界面以及所有人书写过的记录界面。)
默认是都能够看的,我现在想加入权限的相关设置,例如我作为管理员,可以看所有人的记录界面,而其他的普通用户,则只给看他们自己写的记录的权限
初步设想是将用户表,添加一个字段quanxian ,值为 1管理员权限,2为普通用户权限我现在查看是否登录,就是在loginaction.php中加入 $_SESSION["name"]=$_POST['name'];  然后在其他界面 @session_start(); 观察     这样处理是不是有些问题
然后回到权限的问题登录时,
① 想到的笨办法,通过在登陆界面,选择身份。然后再loginaction.php中,同时验证name与quanxian如果不符,那么不能登录。
② 一般情况下,应该不会在登录界面自己进行选择身份,而我想知道这样的情况下,应该怎么处理,比如说如何利用session() 记住权限的值

解决方案 »

  1.   

    你可以再写入一个session用来记录权限 ,比如: $_SESSION["role"] =true; (quanxian=1) 验证权限时,if(isset($_SESSION["name"])){
                            if( isset($_SESSION["role"])){
                                        为管理员
                           }  else{
                      为普通用户                      
    }                                            
     }else{
         没有登陆
    }
      

  2.   


    主要就是不明白这个session应该在哪设置
    登录的时候,那个我只要把登录界面时候的name值,通过post方式传过来即可了
    $_SESSION["name"] = $_POST['name'] 这个权限,不是传值过来的,应该在哪里进行设置呢?麻烦了
      

  3.   

    session 是全局的,你只需 loginaction.php 登录处理页面 记录session 跳转的时候都不需要传值了。只要在相关页面开启session_start(); 即可获取session 值。
      

  4.   


    我的意思是 比如名字$_SESSION["name"] = $_POST['name']    $_SESSION["name"]的值我是通过传值方式获得的,而$_SESSION["role"] 这块应该设置成等于什么? 是什么方法将对应用户的quanxian的值给到这个$_SESSION["role"]
      

  5.   

    处理页面不是要查询数据库验证登陆正确性吗? 你将 quanxian 一起查询出来,不就可以验证赋值了吗?
      

  6.   

    loginaction.php
    $sql= "select * from user where name = '$name' and password = '$password' ;
    $result = mysql_query($sql);
     if(mysql_num_rows($result) != 0){
    //启动session
    $_SESSION["name"]=$_POST['name'];
    $_SESSION["area"]=$_POST['area'];
    // $_SESSION["quanxian"]=$row['quanxian']; 错误方法 无输出
                            $_SESSION["quanxian"]=???
                    //主要就是这里不会 没有思路 $sql应该算已经查询了 quanxian 这个字段了吧?          //$_SESSION["password"]=$_POST['password'];
    echo "登陆成功,正在跳转,loading.....";
    echo "<meta http-equiv='refresh' content='2;url=write.php'>";
    //header ("Location:chat.php") ;    //重新定向到其他页面


    }  
      

  7.   

    你的user表中有quanxian 吗?好好看看你的表结构设计
      

  8.   


    确定有,我觉得应该是
    $_SESSION["quanxian"]=$row['quanxian'];  这句的问题吧
    大概是$row['quanxian']这里的问题 这个是空  echo的结果应该怎么改呢?谢谢
      

  9.   

    $sql= "select * from user where name = '$name' and password = '$password' ";
    $result = mysql_query($sql);
     if(mysql_num_rows($result) != 0){
     $row=mysql_fetch_assoc($result) ;
    //启动session
    $_SESSION["name"]=$row['name'];   //这里最好用数据库中的值来赋值 
    $_SESSION["area"]=$_POST['area'];
     $_SESSION["quanxian"]=$row['quanxian']; 错误方法 无输出
      $_SESSION["quanxian"]=???
      //主要就是这里不会 没有思路 $sql应该算已经查询了 quanxian 这个字段了吧?  //$_SESSION["password"]=$_POST['password'];
    echo "登陆成功,正在跳转,loading.....";
    echo "<meta http-equiv='refresh' content='2;url=write.php'>";
    //header ("Location:chat.php") ; //重新定向到其他页面