ldap_set_option没有设置超时选项

时间:2013-08-28 11:38:59

标签: php timeout ldap settings options

我正在使用ldap_connect来处理来自PHP应用程序的LDAP服务器,该工作正常。 现在我需要设置超时,以便在请求运行很长时取消。 为此,我使用以下代码行设置以下选项:

$ldapconn = ldap_connect($ldap['host'], $ldap['port'])
            or myExClass::throwException("unable to connect");
echo LDAP_OPT_TIMELIMIT;
ldap_set_option ($ldapconn, LDAP_OPT_TIMELIMIT,1);
ldap_set_option ($ldapconn, LDAP_OPT_NETWORK_TIMEOUT,1);
echo LDAP_OPT_TIMELIMIT;

插入echo进行调试。在此示例中,我发现选项LDAP_OPT_TIMELIMIT未更改4.在ldap_set_option之前和之后。

为什么不更改该选项? 可能是什么原因? 顺便说一下:ldap_set_option的返回码在两种情况下均为1。

1 个答案:

答案 0 :(得分:2)

LDAP_OPT_TIMELIMIT是一个标志,用于告诉ldap_set_option()设置哪个选项 - 其值永远不会改变。 1中的ldap_set_option($ldapconn, LDAP_OPT_TIMELIMIT, 1);是您为LDAP_OPT_TIMELIMIT设置的值。

由于您致ldap_set_option的电话正在返回TRUE,因此听起来他们的工作正常。您可以使用ldap_get_option()验证您的设置:

if( ldap_get_option($ldapconn, LDAP_OPT_TIMELIMIT, $retVal) ) {
    echo $retVal;
} else {
    echo "Uh oh. Couldn't retrieve value for LDAP_OPT_TIMELIMIT.";
}