用于LDAP属性/关联数组的PHP中的未定义索引警告

时间:2014-02-28 18:32:24

标签: php ldap

我有以下功能

function getContactInfo1() {   
        $filter = "(cn="."CRALT - Admins".")"; 

        $result = ldap_search($this->con, "OU=Distribution Groups,OU=Groups,DC=rim,DC=net", $filter, array('managedBy','msExchCoManagedByLink'));  
            $entry = ldap_get_entries($this->con, $result); 
            return array('owner'=>$entry[0]['managedBy'][0],'altOwner'=>$entry[0]['msExchCoManagedByLink'][0]);  

        }

当我尝试调用它时,它会给我以下错误: -

C:\>php C:\Apache2.2\htdocs\1.php
Hitesh Thakur<hr>PHP Notice:  Undefined index:  managedBy in C:\Apache2.2\htdocs
\cralt_dev\LDAPutils.class.php on line 28
PHP Notice:  Undefined index:  msExchCoManagedByLink in C:\Apache2.2\htdocs\cral
t_dev\LDAPutils.class.php on line 28

请帮忙。

3 个答案:

答案 0 :(得分:0)

这不是错误,而是通知说数组索引不存在。

您可以通过在使用前检查值来避免这种情况。

$entry = ldap_get_entries($this->con, $result); 
$owner = isset($entry[0]['managedBy']) ? $entry[0]['managedBy'][0] : '';
$altOwner = isset($entry[0]['msExchCoManagedByLink']) ? $entry[0]['msExchCoManagedByLink'][0] : '';
return array('owner'=>$owner,'altOwner'=>$altOwner);

答案 1 :(得分:0)

您可以在php文件的开头设置错误报告。

error_reporting(0);

答案 2 :(得分:0)

即使您请求了属性“managedBy”,返回的数组也只包含小写的“managedby”键。

由于PHP中的数组键区分大小写,因此密钥“managedBy”不存在。

在您请求的属性名称上使用strtolower,一切都应该没问题。