!$_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 不一样吗?
...全文
98 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

一起复习下运算符优先级吧

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧