ldap_get_entries()不一致

时间:2018-08-30 18:24:21

标签: php apache ldap

我正在尝试从下面的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>";

?>

0 个答案:

没有答案