Я пытаюсь напечатать переключатели всех объектов OrganizationalUnit в моем каталоге LDAP из сценария PHP ниже. Сценарий иногда работает так, как задумано, но иногда, если я перезагружаю его, я получаю пустую страницу и запись в журнале ошибок apache, в которой говорится:
[php7:warn]... PHP Warning: ldap_get_entries() expects parameter 2 to be resource, boolean given in /var/www/authtest/test.php on line 13
Если я запускаю скрипт из командной строки (php test.php), он всегда будет выводить правильные результаты без ошибок. Я попытался написать код на нескольких примерах, но прежде всего это пример . Есть ли лучший способ сделать это?
<?php
print "<html><head><title>ldap test</title></head><body>";
// connect to ldap server
$ldapconn = ldap_connect("ldaps://ldap.my.net") or die("Could not connect to LDAP server.");
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
if ($ldapconn)
{
$basedn = "dc=my,dc=net";
$attributes = array("ou","cn");
$sr = ldap_search ($ldapconn, $basedn, "(ObjectClass=OrganizationalUnit)", $attributes);
$info = ldap_get_entries($ldapconn, $sr);
}
if ($info["count"] > 0)
{
for ($i=0; $i < $info["count"]; $i++)
{
$ou = $info[$i]["ou"][0];
print "<input type='radio' name='ldap_ou' value='$ou'>$ou<br>";
}
}
print "</body></html>";
?>