<?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);
以前从未使用过这门课程,所以我不确定为什么会给我这个错误,感谢任何帮助。
答案 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
类的实例,而不是使用不存在的变量。