php权限管理的一些细节问题
2016-02-29 17:16
471 查看
ps:改bug是怎么的一个过程? 。。。啊、啧啧、 我的天啊
正文:今天在做一个权限管理系统,每个页面都有一个checklogin(),通过用户登录时存储session的ulevstr来判断此页面需要的权限数字是否存在来验证能否查看,
代码如下:
function checkAdminIsLogin($lev=''){
if(FuncClass::session('id')=='') die('<a href="login.php" target="_top">请先登录</a>');
if(FuncClass::session('type')==1){
if(!strstr(FuncClass::session('lev'),(string)$lev)){
die('<b>没有权限</b>');
}
}
}//checkAdminIsLogin
定义了这个函数后,所有页面都变成了没有权限,醉了,。一开始以为是ststr这个函数和strpos函数一样,匹配的字符串在第一个的时候会返回0 ,这个想法是错的,返回的是这个字符串和字符串之后的组合字符串是个(string ),而匹配不到结果时候会返回bool类型的false ;而且就算是相同的字符串,strstr这个函数还是会返回这个字符串,不会返回false或者0.那是什么原因啊 。???
后来各种var_dump才发现strstr 这个函数真的是只接受string类型的, 而我在验证时候的$lev是int类型,if(!strstr(FuncClass::session('lev'),$lev))所以strstr(string,int)无论输入是什么返回都是false!!!,在$lev之前加上(string)强制转换就行了! 问题解决。
问题引申:php是怎么判断 int 的0 和bool 的false的呢 php是基于c语言的,我看下c中这2个有什么区别:
简单百度一下;好像在判断中这2者没有什么区别,false 和 0 是效果一样的
正文:今天在做一个权限管理系统,每个页面都有一个checklogin(),通过用户登录时存储session的ulevstr来判断此页面需要的权限数字是否存在来验证能否查看,
代码如下:
function checkAdminIsLogin($lev=''){
if(FuncClass::session('id')=='') die('<a href="login.php" target="_top">请先登录</a>');
if(FuncClass::session('type')==1){
if(!strstr(FuncClass::session('lev'),(string)$lev)){
die('<b>没有权限</b>');
}
}
}//checkAdminIsLogin
定义了这个函数后,所有页面都变成了没有权限,醉了,。一开始以为是ststr这个函数和strpos函数一样,匹配的字符串在第一个的时候会返回0 ,这个想法是错的,返回的是这个字符串和字符串之后的组合字符串是个(string ),而匹配不到结果时候会返回bool类型的false ;而且就算是相同的字符串,strstr这个函数还是会返回这个字符串,不会返回false或者0.那是什么原因啊 。???
后来各种var_dump才发现strstr 这个函数真的是只接受string类型的, 而我在验证时候的$lev是int类型,if(!strstr(FuncClass::session('lev'),$lev))所以strstr(string,int)无论输入是什么返回都是false!!!,在$lev之前加上(string)强制转换就行了! 问题解决。
问题引申:php是怎么判断 int 的0 和bool 的false的呢 php是基于c语言的,我看下c中这2个有什么区别:
简单百度一下;好像在判断中这2者没有什么区别,false 和 0 是效果一样的
相关文章推荐
- PHP 单一入口
- PHP获取POST方式的XML数据
- 解决php中echo出来的汉子乱码
- php读取excel内容
- 【ThinkPHP】ThinkPHP角色权限的方法
- php get_magic_quotes_gpc()函数用法介绍
- php常用函数(三)数组函数
- PHP流程控制中不经常使用的替代语法
- PHP的mod_rewrite重写模块将.php后缀换成.html
- php 多条数据更新
- php 调用银联接口
- php设计模式 适配器模式
- 深入解析thinkphp中的addAll方法
- php实现socket
- vsftp出现cannot change directory问题的解决方法
- mac 环境下laravel 5.1框架与数据库的连接和配置问题
- 远程获取文件大小
- phpStorm debug
- php上传文件类型大全
- Yii2权威指南中文版及众包翻译平台