输入字段无法恢复?

时间:2013-01-29 14:56:53

标签: php ldap

我正在使用LDAP,由于一些奇怪的原因,我能够通过PHP恢复所有条目,但我无法获得 telephonenumber 。如果它是空的,它就像它一样,但显然不是。

以下是相关代码:

$ds = ldap_connect($LDAP_SERVER);

$sr = ldap_search($ds, $LDAP_PEOPLE, "(|(cn=*$search*)(sn=*$search*)(gn=*$search*)(uid=*$search*)(mail=*$search*))", array('uid', 'sn', 'givenname', 'mail', 'telephoneNumber', 'o') );

ldap_sort($ds, $sr, $_GET['tri']);

foreach ($entries as $entry) {
    if (! isset($entry['uid'])) continue;

    $uid = $entry['uid'][0];
    $telnum = $entry['telephoneNumber'][0];
    if (! isset($entry['telephonenumber'])) continue; //THIS IS EVALUATED AS TRUE
...
}

如果错误以某种方式显而易见,请原谅我。我已经在这几个小时工作了但是我是LDAP新手,对其他领域有用的东西似乎不适用于 telephonenumber 。我知道在LDAP +电话上还有其他条目,但我找不到一个似乎适合我的问题。


编辑:

我发现LDAP管理器不允许访问某些字段,包括 telephonenumber 。我不负责授权。我向sysadmin发送了一个请求以更改授权。我认为应该解决这个问题。我会及时向大家发布。感谢。

1 个答案:

答案 0 :(得分:0)

正在设置的数组项和具有值的数组项之间存在差异。

例如:

$array['test'] = "";
if (!isset($array['test'])) //false
if (empty($array['test'])) //true

我想你的LDAP服务器总是会返回一个电话号码,无论是否有值。

您可以使用

if (empty($entry['telephonenumber'])) continue;

相反?

尝试var_dump($entry['telephonenumber'])并查看输出以查看$entry设置为

的内容