帮我看一个函数

poonzsp 2006-06-16 10:53:16
function isModRight($zStr)
{
session_start();
$foo = false;
// 判断参数非空,session 非空
if (!$_SESSION["sp_authority"]) $foo = false;
if (!(strlen($zStr) > 0) || $zStr = ""):
$foo = false;
else:
$zStr = "||".$zStr."||";
endif;
if (strpos($_SESSION["sp_authority"],$zStr)):
$foo = true;
else:
$foo = false;
endif;
return $foo;
}

测试:
if (isModRight("admin")):
echo "zz";
else:
echo "xx";
endif;
测试答案且是 xx...

修改函数的错误的返回值:
$foo = "err001";
$foo = "err002";
$foo = "err003";

测试:echo isModRight("admin");

返回是err003 既是if (strpos($_SESSION["sp_authority"],$zStr)): 这里返回错误

再测试 把 $foo = "err003"; 修改为 $foo = "err003".$zStr;
返回err003 $zStr 怎么没有数值。。好晕

望兄弟们点拨一下
...全文
102 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
poonzsp 2006-06-16
  • 打赏
  • 举报
回复
谢谢 唠叨大哥 问题已解决。。

那个fales 应该是笔误吧 false
poonzsp 2006-06-16
  • 打赏
  • 举报
回复
fales 这个什么意思啊?
xuzuning 2006-06-16
  • 打赏
  • 举报
回复
两处错误:
1、
if (!(strlen($zStr) > 0) || $zStr = ""):
应为
if (!(strlen($zStr) > 0) || $zStr == ""):

2、
if (strpos($_SESSION["sp_authority"],$zStr)):
应为
if (strpos($_SESSION["sp_authority"],$zStr) !== false):
iasky 2006-06-16
  • 打赏
  • 举报
回复
你还在用php3的语法……

你用的||admin||会在第一个出现,所以返回了strpos返回了0

最好把
if (strpos($_SESSION["sp_authority"],$zStr))
改为
if (fales !== strpos($_SESSION["sp_authority"],$zStr))
poonzsp 2006-06-16
  • 打赏
  • 举报
回复
$_SESSION["sp_authority"] 如为: ||admin||store||intel||

21,886

社区成员

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

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