首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP多维数组验证

PHP多维数组验证
EN

Stack Overflow用户
提问于 2016-05-07 15:37:12
回答 2查看 199关注 0票数 0

我一直在寻找答案,但找不到,所以这是我的案例。我有以下数组:

代码语言:javascript
复制
$pages = array(
   'page-one'=>range(1,9),
   'page-two'=>range(1,3),
   'page-three'=>range(5,9)
);

我想根据用户的角色id来验证用户对页面的访问权限,因此,假设John (角色id=2)想要访问第二个页面。那么,我如何验证该页面是否存在以及他是否拥有有效的角色。

我试过像这样的..。

代码语言:javascript
复制
foreach ($pages as $page=>$roles) {
   if (given-page==$page) {
      // Then validate role id
      if (in_array(given-role,$roles)) {
         include('the-page');
      } else {
         include('403-page');
      }
   } else {
      include('404-page');
   }
}

但是,它总是显示404页。如何使用该数组结构验证两个变量(页面和角色id)?

谢谢,卡洛斯

EN

回答 2

Stack Overflow用户

发布于 2016-05-07 15:58:42

代码语言:javascript
复制
$pages = array(
   'page-one'=>range(1,9),
   'page-two'=>range(1,3),
   'page-three'=>range(5,9)
);
$givenpage = "page-one";
$givenrole = 2;

if(isset($pages[$givenpage])) {
    if(in_array($givenrole, $pages[$givenpage])) {
        include $givenpage;
    }
    else {
        include "403-page";
    }
}
else {
    include "404-page";
}
票数 0
EN

Stack Overflow用户

发布于 2016-05-07 16:07:35

我想我找到了一个解决方案。它可以像这样解决。

代码语言:javascript
复制
if (!isset($pages[given-page])) {
   include(404-page);
} else if (isset($pages[given-page]) && in_array(given-role,$pages[given-page])) {
   include(given-page);
} else {
   include(403-page);
}

然而,如果你认为有更好的方法,请分享它。

谢谢!

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37085864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档