!$_SESSION['level']==255 和 $_SESSION['level']!=255 不一样吗?

Junorz 2010-07-26 04:08:12
做了个管理身份验证,传递两个SESSION变量,

include('conn.php');
session_start();
$result=mysql_fetch_array(mysql_query("SELECT * FROM users WHERE name='".$_POST['username']."'",$conn));
$_SESSION['login_stat']="OK"; //如果登录正确,赋给变量OK
$_SESSION['level']=$result['level']; //从数据库里取出用户等级,1是普通用户,255是管理员
if(!$_SESSION['login_stat']=="OK" || !$_SESSION['level']==255) //如果没有登录或者不是管理员的话
header("location:error.php"); //跳转到错误页面

但是这样做普通用户也可以进到登录页面,如果这样写的话:

if(!$_SESSION['login_stat']=="OK" || $_SESSION['level']!=255) //如果没有登录或者不是管理员的话
header("location:error.php"); //跳转到错误页面

就成功了= =

真郁闷,!$_SESSION['level']==255 和 $_SESSION['level']!=255 不一样吗?
...全文
65 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lykele 2010-07-26
额 学习了
回复
Dleno 2010-07-26
[Quote=引用 3 楼 junorz 的回复:]

学习了……为什么前面不用加
!($_SESSION['login_stat']=="OK")
[/Quote]
!$_SESSION['login_stat']=="OK"也应该改为:!($_SESSION['login_stat']=="OK")

不是不用,而是你用的||(或)
回复
Dleno 2010-07-26
[Quote=引用 1 楼 amani11 的回复:]

!($_SESSION['level']==255)

$_SESSION['level']!=255

一起复习下运算符优先级吧
[/Quote]

++
!$_SESSION['level']==255//会先执行!$_SESSION['level']
回复
Junorz 2010-07-26
学习了……为什么前面不用加
!($_SESSION['login_stat']=="OK")
回复
CunningBoy 2010-07-26
!运算的优先级高于==
回复
amani11 2010-07-26
!($_SESSION['level']==255)

$_SESSION['level']!=255

一起复习下运算符优先级吧
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告