对于checkbox的话,那么用数组序列化将会是很好的解决方案。
解决方案 »
- php怎么解决手机不支持cookie
- 着急? Windows 2003 iis 7.0下,如何调试 mysql + php 程序?
- phpMyAdmin中创建数据库中的字符字段不能用中文吗?
- 求一条mysql求和语句.
- $file=isset($file) && $file?$file:'index'这段代码什么意思?
- 100分请教个 SQL语句!!谢谢了!!!!!
- 怎么样把复选框选中的内容加到数据库中去?在线等,急!!!!
- php怎么解决复先框输入数据库中
- 求教一个例子(请进来看一下)
- PHP是什么东东?
- 在php中如何获得来访者的url?比如从www.aaa.com指向到www.bbb.com的网址信息?
- 急,关于汇总统计的SQL语句写法
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'];
...........................................................
id userID gradeID moudel
表id 用户ID 权限级别 模块或各种删除,编辑,添加,认证
用需要有删除。编辑。添加。认证操作时。
根据用户ID级别操作相应的功能
都是表示用户的访问权限了。我如果授予用户x的权限为power1,那么他就有power1对应的权限,如:访问所有页面。而授予power2的权限有可能只能访问部分页面了,这样就可以限制用户对受保护页面的访问。
http://blog.csdn.net/misnet/
例如:建一张名为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 "失败";
}
}
if($_SESSION['user']['browser']==1)
{
//如果拥有浏览权限..........
}
if($_SESSION['user']['add']==1)
{
//如果拥有添加权限..........
}
以下依次类推
if($_SESSION['user']['browser']==1)
{
//如果拥有浏览权限..........
}
.
.
.
.
你的“//如果拥有浏览权限..........”这部分内容可能就是一些授权语句了,我现在就是在想,如果我只是授权用户访问一个页面那应该怎么来实现呢?也就是怎么样让check的值和一个页面进行关联了。怎么样读取一个用户的信息中的存储的check的值就知道他拥有访问该页面的权限呢?
system_user存放用户
system_menu存放每个页面的路径
system_access存放用户ID和menu_id,进入一个页面时判断在system_access中是否有user_id和该页面的menu_id,这样可以检查某用户是否对该页面有访问权。但后来发现如果同一个页面中又分浏览、删除、修改等几种权限时,该方法就不行了。
<?php
<?php
session_start();
if(!isset($_SESSION['user']['name']))
header("Location: login.php");
else
{
if($_SESSION['user']['browser']==1)
{
echo "你有权限";
}
else
{
echo "你没有权限";
}
}
?>
再解释一下,授权语句是在上面的add.php中,把授权信息存入数据库内,其他页面再从数据库中取出授权信息,根据授权信息把不同的内容显示给不同权限用户