<?php//---------权限检查函数:检查用户是否有权限访问当前页面
//---------perval,当前页面所属的权限值:参见数据字典
//---------rank,访问当前页面所需要的权限等级,如无权限 0,查看 1,修改+查看 2
function checkPermit(perval,rank)
{
if($_SESSION["P"][perval-1]>=rank)
return true;
else
return false;
}function echoNoPermit()
{
echo "<br><br><p align='center'>用户无权限访问此页。请返回<br><a href='javascript:history.back()'>返回</a></p>";
}?>以上是判断权限的函数,一下是checklogn部分代码:<?php
session_start();
include "../conn/conn.php";
$user=$_POST['user'];
$pwd=$_POST['pass'];
$sql=mysql_query("select * from tbl_admin where adSN='".$user."' and adPass='".$pwd."'");
if($sql){
$_SESSION[name]=$user;
$sql=mysql_query("select rolPermitVal1,rolPermitVal2,rolPermitVal3,rolPermitVal4,rolPermitVal5,rolPermitVal6,rolPermitVal7,rolPermitVal8,rolPermitVal9,rolPermitVal10,rolPermitVal11,rolPermitVal12,rolPermitVal13,rolPermitVal14,rolPermitVal15,rolPermitVal16,rolPermitVal17 from tbl_indi_permit1 where ptSN='".$_SESSION[name]."' and ptSort=0");
$permit=mysql_fetch_array($sql);
$_SESSION["P"][0]=$permit['rolPermitVal1'];//这里我有个疑问,这里的session[""][0]=$permit['*'];是什么意思....
$_SESSION["P"][1]=$permit['rolPermitVal2'];
$_SESSION["P"][2]=$permit['rolPermitVal3'];
$_SESSION["P"][3]=$permit['rolPermitVal4'];
$_SESSION["P"][4]=$permit['rolPermitVal5'];
$_SESSION["P"][5]=$permit['rolPermitVal6'];
$_SESSION["P"][6]=$permit['rolPermitVal7'];
$_SESSION["P"][7]=$permit['rolPermitVal8'];
$_SESSION["P"][8]=$permit['rolPermitVal9'];
$_SESSION["P"][9]=$permit['rolPermitVal10'];
$_SESSION["P"][10]=$permit['rolPermitVal11'];
$_SESSION["P"][11]=$permit['rolPermitVal12'];
$_SESSION["P"][12]=$permit['rolPermitVal13'];
$_SESSION["P"][13]=$permit['rolPermitVal14'];
$_SESSION["P"][14]=$permit['rolPermitVal15'];
$_SESSION["P"][16]=$permit['rolPermitVal16'];
$_SESSION["P"][17]=$permit['rolPermitVal17'];
echo"<script>alert('登录成功');window.location.href='admin.php';</script>";
}
else{
echo"<script>alert('账号或密码错误');window.location.href='login.php';</script>";
}
?>
解决方案 »
- 这里有没百度的技术人员?我的站不知道出了什么问题,无法收录内页
- php的strlen函数计算汉字字节数问题?
- 页面刷新问题
- imagettftext有人使用过这个函数吗? 关于向图片上写文字的函数
- 怎么样才能把下面的程序改成传在指定的目录下?在线等待!!急!!!!
- 一个奇怪的问题,请高人指点!
- 如何使用PHPExcel生成标题可筛选下拉属性值的xls?感谢
- 如何在插入数据的同时知道其id号
- 羊年是本命年,好高兴阿。散分200
- 如何使用Php中的exec()函数
- 安装Zend Optimizer后出现"事件 ID ( 487 )的描述(在资源( Zend Optimizer )中)无法找到"
- is_numeric()问题
{
if($_SESSION["P"][perval-1]>=rank)
少了美元吧
{
if($_SESSION["P"][$perval-1]>=$rank)
return true;
else
return false;
}
更改如下:
function checkPermit($perval,$rank)
{
if($_SESSION["P"][$perval-1]>=rank)
return true;
else
return false;
}function echoNoPermit()
{
echo "<br><br><p align='center'>用户无权限访问此页。请返回<br><a href='javascript:history.back()'>返回</a></p>";
}
简单的理解。
$_SESSION['P'] 为全局的 权限 数组!
$_SESSION['P'][0]例如 为 可以 查看 内裤的权限
系统已经 设定 如果 $_SESSION['P'][0] < 设定值 既 $rank
checkPermit( 全局权限的存储变量,$rank(例如会员有 9个等级 0 - 9 ))已经清楚明白了吧?
就是说 你的当前会员 查看内裤权限 如果 低于 设定值 的话 就不可以看别人内裤了
$_SESSION['P'][0] = 3级的 内裤 会员 不能 查看 $rank 预设定为4级 的内裤等级
$_SESSION["P"][查看内裤]=4级;
$_SESSION["P"][查看三围]=0级;
$_SESSION["P"][去厕所]=5级;
$_SESSION["P"][吃饭]=6级;
$_SESSION["P"][走路]=1级;
内裤查看页面 selXXX.phpif(checkPermit(查看内裤,5级才可以看))
{ echo YEAH,我看到很多小裤裤 }else{ echo 切!我不稀罕看小裤裤 }
include("../function/function.php");//这里就是调用的最上面列出来的那个函数
if(checkPermit(1,1)==false); //供应商查看权限
{
echoNoPermit();
exit();
}
我在这里做了一个判断,if(checkPermit(1,1)==false),而里面的参数值“1“,”1“是固定的,而且和用户”001“没联系,我是想让”001“一登录,系统就知道他有什么权限可以看哪些模块了,为了表达的更详细点,我把这连个数据表列出来
session_start();
include "../conn/conn.php";
$user=$_POST['user'];
$pwd=$_POST['pass'];
$sql=mysql_query("select * from tbl_admin where adSN='".$user."' and adPass='".$pwd."'");
if($sql){
$_SESSION[name]=$user;
//查询出这个管理员的权限( 储存于 tbl_indi_permit1 )
$sql=mysql_query("select rolPermitVal1,rolPermitVal2,rolPermitVal3,rolPermitVal4,rolPermitVal5,rolPermitVal6,rolPermitVal7,rolPermitVal8,rolPermitVal9,rolPermitVal10,rolPermitVal11,rolPermitVal12,rolPermitVal13,rolPermitVal14,rolPermitVal15,rolPermitVal16,rolPermitVal17 from tbl_indi_permit1 where ptSN='".$_SESSION[name]."' and ptSort=0");
//赋值,
$permit=mysql_fetch_array($sql);
$_SESSION["P"][0]=$permit['rolPermitVal1'];
$_SESSION["P"][1]=$permit['rolPermitVal2'];你可以设置的权限
就是表中 rolPermitVal1 - rolPermitVal17 而1 - 17 分别是什么权限。那我就不知道了
例如 rolPermitVal1 就是 那个查看 "供应商资料"这个模块 的权限
好了 我 把
//注意表中 rolPermitVal1 字段的值 设置为 9
$_SESSION["P"][0]=$permit['rolPermitVal1'];//$_SESSION["P"][0]= 9;//去到 供应商资料模块 页面if(checkPermit(1,8)==false); //供应商查看权限
{
echoNoPermit();
exit();
}
我们先看 checkPermit(1,8) 函数体
function checkPermit(1,8)//之前我们设定的权限 $_SESSION["P"][0]= 9;
{
//函数体内原代码if($_SESSION["P"][perval-1]>=rank)
//现在判断 $_SESSION["P"][0] >= 8;
if($_SESSION["P"][1-1]>=8)
//好!我们很明显 大于 8 返回 TRUE 可以查看
return true;
else
return false;
}
//想让”001“一登录,系统就知道他有什么权限可以看哪些模块了
//很明显 权限表 tbl_indi_permit1 是固定字段的 , 那你可以使用语言包实现
//新建语言包 $Pname[0-17] = 权限名称, $Prank[0-17] = 可使用权限,
foreach ($_SESSION["P"] as $key => $var)
{
if($var>=$Prank[$key])
echo $P[$key];
}
那他可以使用什么权限就一目了然了。 而上边向 checkPermit 传值进 rank 也可以使用$Prank[] 替换掉