Использование Adldap PHP класса, но получение ошибки при поиске группы пользователей принадлежит - PullRequest
1 голос
/ 17 марта 2010
<?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/, и аутентификация работает нормально, но выдает следующую ошибку:

Примечание: неопределенная переменная: ldap в /web/protected/protected.php в строке 18

Фатальная ошибка: вызов функции-члена user_groups () для необъекта в /web/protected/protected.php в строке 18

Строка 18:

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

Никогда ранее не использовал этот класс, поэтому я не уверен, почему он дает мне такую ​​ошибку, любая помощь приветствуется.

1 Ответ

2 голосов
/ 17 марта 2010

При создании экземпляра класса 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 вместо несуществующей переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...