php 不同用户登录

数据库:在数据库flightplan下面有一个用户的信息总信息数据fg_user,包含字段f_id,f_uid,
f_callsign,f_password,f_limi,f_ip,f_lastime.
id是自动累加的主键,uid是有点类似论坛里的那种序号uid,callsign是相当于帐号,limi是一个系统权限,设置为0普通用户,1会员用户,2管理用户.默认为0.剩下的password,ip,lastime就不解释了.
页面
a.登陆选项[下拉列表,A普通用户,B会员用户,C管理登录]
b.帐号
c.密码
d.登陆
我想问的是如何根据用户的选择a中的ABC三个选项进行判断登陆,成功后分别跳入相应的ABC三个对应页面中?
最好能给出代码.
写在后面:我是PHP新手,这段时间一直在看php100的视频教程,虽然网上也有一些源码,但是...怎么说呢,直接看源码,虽然后面也给出了注释,可是自己好像有点对不上,完全不理解,所以自己想这样一边做一个小的php功能,一边对照着看,麻烦各位了
还有一个问题
f_id,f_uid,f_callsign,f_password,f_limi,f_ip,f_lastime.
1,1,123,****,2,0.0.0.0,0000
这个可以知道id为1的这个用户,他的权限应该是2,也就是管理权限,但是如果他在页面登陆的时候是选择普通用户登录的话,我还需要给他另行建立一个权限是0的数据吗?
...这个我知道了,做一个判断就行了...

首先,你得把自己要做系统的权限设计好,比如系统管理员是否可以登录会员页面(系统管理员有最高权限,那么登录会员和普通用户页面也应该可以),会员是否能登录普通用户页面(一般来说会员是可以登录普通页面的),好了,接下来就是你的问题了:假设管理员可以登录余下两个页面,会员既能登录会员页面也能登录普通页面
第一个问题,选择abc之后提交,获取相应选择的选项:比如是普通会员,但是登录用户是管理员权限,那么你只要在根据选择的权限和用户权限判断是否有权限登录该页面,判断成功后跳转到相应页面
大致代码么,我简单写下:
$a = $_POST[登录选项];
$b = 用户权限(f_limi)用sql根据post过来的账号密码获取
if($a==0&&($b==0||$b==1||$b==2)){
跳转到普通用户页面(我记得php里location能实现)
}elseif($a==1&&($b==1||$b==2){
跳转到会员页面
}elseif($a==2&&$b==2){
跳转到管理员页面
}else{
echo“权限不足无法访问”;
}

第二个问题上面也解决了,不用另外给权限,判断的时候加个或就行了,规则自己建立好就行了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-03
login.php

----
<form action="handle.php" method="post">
<select name="user_limi">

<option value='0'>普通用户</option>

<option value='1'>会员用户</option>

<option value='2'>管理用户</option>
</select>
<br />
<input type="text" name="name" />
<br />
<input type="password" name="password" />
<br />
<input type="submit" value="登录" />
</form>
------------
handle.php
------------
$user_limi = intval($_REQEUST['user_limi']); // intval() 将传入的值变成整数
$user_name = $_REQUEST['name'];
$user_pass = $_REQUST['password'];
//连接数据库验证用户名密码和权限,代码我就不写了..
//doing something
//如果用户名密码都对,就调转页面
if($user_limi == 0){
header('Location: user.php'); //跳转到普通用户界面
}else if($user_limi == 1){
header('Location: member.php'); //跳转到会员用户界面
}else if($user_limi == 2){
header('Location: admin.php'); //跳转到管理页面界面
}追问

这个我看懂了,但是,如果一个权限为2的用户,当他登陆的是0的时候或者1的时候如何判断跳转...
因为我数据库内有只有一个user的信息,这里包含了所有的用户基本信息.limi权限只能在这里012的进行读取,别的地方没有这个limi的信息

第2个回答  2012-07-03
我觉得你登录页面的那个登录选项可以不要的

因为你的数据库里面3中信息都在一个表里面

你查询的时候肯定是

select limi from fg_user where f_callsign = xx and f_password = xx

然后肯定先判断 这个查询是否存在 如果存在则登录通过 不存在则登录不通过

如果通过了 则判断 limi == ?

这个时候你可以写 如果limi 等于1的时候 输出一个js跳转 顺便给一个session什么的验证一下权限也可以

真的需要完整的代码吗????追问

你的意思的有点理解,又有点不理解.前面的意思是先判断是否有这个人,然后再判断他的权限.但是整体我看不明白了,如过不要那个登陆选项.一个权限为2的最高权限,他如果想登陆0权限或者1权限,怎么办?
他登陆的时候可能永远都是跳转到2的界面了

追答

一般程序的设计 高级权限意味者可以兼容下级权限 这个就是页面权限设计的问题了
你可以在每个页面放置衔接 ,对于权限不够的人隐藏衔接就可以

第3个回答  2012-07-03
最简单的办法是那建一个对应limi的链接表,在登录的时候通过查询得到链接然后跳转,然后你扩展修改的时候也不要动代码,更新数据就行.
另外一个就是在程序判断,根据不同的权限跳转到不同的页面:
$limi=查询得到的limi;
$uarr=array(
array("limit"=>"common","url"=>"a.php")
array("limit"=>"member","url"=>"b.php"),
array("limit"=>"admin","url"=>"c.php"),
);
$url='a.php';//默认到普通页面
foreach($uarr as $item)
{
if($item['limit']==$limi)

{
$url=$item['url'];

}
}
header("location:".$url);
//用数组加foreach是便于扩展,有更改只要维护数组就行了,其它地方不要动.本回答被网友采纳
第4个回答  2012-07-03
不会PHP,学过忘记了,帮顶

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网