我正在尝试从下面的PHP脚本中打印LDAP目录中所有 OrganizationalUnit 对象的单选按钮。该脚本有时会按预期工作,但有时如果我重新加载该脚本,则会得到一个空白页,并在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)运行脚本,它将始终如一地打印出正确的结果。我试图用一些示例编写代码,但很遗憾,此示例example。有更好的方法吗?
<?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>";
?>