2013-06-28 26 views
1

我检查用户是否是管理员或不是从LDAP此外,我是来自LDAP的代码PHP如何通过ldap设置变量值?

部分原因是越来越值,

foreach ($memberOf as $key => $value) { 
    $membership = explode(",", $value); 
    $member  = explode("=", $membership[0]); 
    if (in_array($member[1], $adminGroups)) { 
     $is_admin = TRUE; 

    } elseif (in_array($member[1], $userGroups)) { 
     $is_admin = FALSE; 
    } 

所以我的问题,我怎么可以使用这个变量$is_admin到处都是我的应用程序,这样我就可以隐藏一些按钮,取决于用户是否是管理员等等?

我是否需要设置会话这个变量?

+0

看起来像不好的实践你在那里... – DaGardner

+0

为什么你不添加一列到你的数据库表来定义一个用户作为管理员或用户?这可能会好得多使用。是的,你应该使用会话存储的用户 – Fallen

+0

类型'可以隐藏一些buttons'你需要每一个PHP页面,让行政行为上也做的检查,只是躲在并没有做太多。 –

回答

0

使用PHP的会议!

只需session_start()你想在...

使用会话文件的顶部指定一个会话密钥

$_SESSION['is_admin'] = true; 

后来检查的关键在应用程序的不同部分...

if($_SESSION['is_admin'] === true) { /* do stuff */ } 

夫妇,与功能或类,你可以让自己一个很好,很容易的认证库。

http://us2.php.net/manual/en/book.session.php

编辑

我不得不使用LDAP身份验证有点..你想要做的最后一件事是锤LDAP服务器让您的帐户被锁定,这就是为什么我建议会议。验证一次...一旦通过身份验证,只需使用会话即可,直到它过期...然后用户再次登录。

+0

@ Rob W:非常感谢!将尝试实现.. – S52

0

有几个选项:

  • 使用一个会话,如果你想让它重新加载页面/导航
  • 使用静态成员在静态下课后持续存在,因此,你可以随处如果引用它不想持久