[英]PHP LDAP bind intermittent issue
我正在为我的公司开发一个需要用户登录的应用程序。为了使登录过程自动化,我尝试将ldap id和密码身份验证与此应用程序集成在一起。 以下是我为此集成编写的代码。 我已经在线检查过,找不到任何人遇到此问题。
我有这个代码->
function isAuthenticated($u,$p) {
$ldap_host = 'my_host';
$ldap = ldap_connect($ldap_host);
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
if($ldap) {
if($bind = ldap_bind($ldap,$u,$p)) {
ldap_unbind($ldap);
return 'Authenticated';
} else {
return 'Invalid Credentials';
}
} else {
return 'Not able to connect';
}
}
$username = 'preventAnonymousLogin';
$password = 'preventAnonymousLogin';
if(isset($_REQUEST['uname'])) {
$username = $_REQUEST['uname'];
}
if(isset($_REQUEST['password'])) {
$password = $_REQUEST['password'];
}
$auth = isAuthenticated($username,$password);
这在大多数情况下都有效,但有时却不起作用,并给出此错误->
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\avrs\htdocs\ldap.php on line 12
我不知道为什么这有时会起作用,有时却不起作用。 请提出建议。 提前致谢。
相同的代码会间歇性地工作。 我已经尝试清除Cookie,并且所有这些似乎都可以在一段时间内正常工作,但现在不是。 因此,除非我确切知道问题出在哪里,否则我认为我将永远无法解决此问题。
确保提供ldap_host的完整DNS名称,例如myhost.mydomain.com。
根据错误,您可以尝试将C:\\ xampp \\ htdocs \\ avrs \\ htdocs \\ ldap.php中的最大脚本执行时间设置为60秒或大于30秒。 从上面的代码来看,它看起来像
function isAuthenticated($u,$p) {
set_time_limit(60);
// Rest of your code from above
}
看一下这些例子。 第一个是一个非常简单的LDAP /活动目录登录脚本。 第二个实际上是为Yii框架构建的,但是更强大,因为它可以在多个服务器之一发生故障的情况下使用多个服务器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.