使用Adldap php类,但在查找组用户时遇到错误

时间:2010-03-17 19:32:14

标签: php authentication class ldap

<?php
    ini_set('display_errors',1);
    error_reporting(E_ALL);
    require_once('/include/adLDAP.php');
    $adldap = new adLDAP();

    $username = "user123";
    $password = "pass123";

    $authUser = $adldap->authenticate($username, $password);
    if ($authUser === true) {
      echo "<p>User authenticated successfully</p>";
    }
    else {
      echo "User authentication unsuccessful";
    }

    $result=$ldap->user_groups($username);
    print_r($result);

?>

我正在使用此类http://adldap.sourceforge.net/并且身份验证工作正常,但它给了我以下错误:

注意:未定义的变量:第18行的/web/protected/protected.php中的ldap

致命错误:在第18行的/web/protected/protected.php中的非对象上调用成员函数user_groups()

第18行是:

$result=$ldap->user_groups($username);

以前从未使用过这门课程,所以我不确定为什么会给我这个错误,感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

在实例化adLDAP类时,您将实例对象存储在$adldap中:

$adldap = new adLDAP();


但是,稍后,您尝试使用$ldap

$result=$ldap->user_groups($username);

$ldap变量不存在 - 因此通知。


由于它不存在,PHP认为它是null

并且null不是一个对象 - 这意味着你无法在其上调用方法 - 这解释了致命错误。


我想你应该替换这一行:

$result=$ldap->user_groups($username);

通过这个:

$result=$adldap->user_groups($username);

请注意$adldap而不是$ldap,以使用adLDAP类的实例,而不是使用不存在的变量。