Javascript 实时检查用户可用性LDAP

Javascript 实时检查用户可用性LDAP,javascript,php,ajax,ldap,Javascript,Php,Ajax,Ldap,我在LDAP中有一个表单,我可以在其中添加用户和密码,我可以做什么来使用php和ajax实时检查用户名,而不是mysql,我不知道如何比较和切换mysql中使用的sqlquery或sql_num_rows等命令,并将其移动到LDAP,我在php上阅读了LDAP手册,它与mysql不同。我如何在LDAP中替换这些命令,以便能够实时检查我的用户名??使用javascript(所有内容都放在一个页面中) 以及其他尝试使用mysql的网页 我使用了ldap\u connect、ldap\u bind

我在LDAP中有一个表单,我可以在其中添加用户和密码,我可以做什么来使用php和ajax实时检查用户名,而不是mysql,我不知道如何比较和切换mysql中使用的sqlquery或sql_num_rows等命令,并将其移动到LDAP,我在php上阅读了LDAP手册,它与mysql不同。我如何在LDAP中替换这些命令,以便能够实时检查我的用户名??使用javascript(所有内容都放在一个页面中)

以及其他尝试使用mysql的网页

我使用了ldap\u connect、ldap\u bind\u ldap\u search、ldap get entries,并正在以有趣的方式打印所有内容,因此使用php我清理了所有内容,并以一种很好的方式打印了所有内容,我的问题是如何实时检查用户名???就像正在发生(测试)我这个链接上面

<label for="name"><b>name</b></label>
<input type="text" name="name" onBlur="checkusername() "maxlength="15"value="">
<span id="namestatus"></span>

<script>
function checkusername(){
  var status = document.getElementById("namestatus");
   var u = document.getElementById("name").value;
  if(u != ""){
    status.innerHTML = 'checking...';
    var hr = new XMLHttpRequest();
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    hr.onreadystatechange = function() {
      if(hr.readyState == 4 && hr.status == 200) {
        status.innerHTML = hr.responseText;
      }
    }
        var v = "name="+u;
        hr.send(v);
  }
}
</script>

$user = 'cn=Manager,dc=mydc ,dc=it';
$password = 'mypass';
$host = 'my_numeric_IP';
$basedn = 'ou=sistem,ou=thinks,dc=mydc,dc=it';
$ds = ldap_connect("ldap://{$host}") or die('Could not connect to LDAP     server.'); 
if($ldapbind){
$filter='(&(objectClass=inetOrgPerson)(uid=*))'; // single filter
$attributes=array('dn','uid','sn', 'displayName');
$search = ldap_search($ds,$basedn,$filter,$attributes); // search
ldap_sort($ds, $search, 'sn');
print_r($info = ldap_get_entries($ds, $search));
$info = ldap_get_entries($ds, $search);
$ldaprecord['cn'] = $_POST['name'];
$_dn = "uid=".$_POST[value'].",ou=".$_POST['othervalue'].",ou=VOIP,ou=sistem,dc=something,dc=it";
$r = ldap_add($ds, $_dn, $ldaprecord);
}else {
echo "LDAP bind failed";
    }
名称
函数checkusername(){
var status=document.getElementById(“namestatus”);
var u=document.getElementById(“名称”).value;
如果(u!=“”){
status.innerHTML='正在检查…';
var hr=新的XMLHttpRequest();
hr.setRequestHeader(“内容类型”、“应用程序/x-www-form-urlencoded”);
hr.onreadystatechange=函数(){
如果(hr.readyState==4&&hr.status==200){
status.innerHTML=hr.responseText;
}
}
var v=“name=”+u;
人力资源部发送(v);
}
}
$user='cn=Manager,dc=mydc,dc=it';
$password='mypass';
$host='my_numeric_IP';
$basedn='ou=sistem,ou=thinks,dc=mydc,dc=it';
$ds=ldap_connect(“ldap://{$host}”)或die('无法连接到ldap服务器');
如果($ldapbind){
$filter='(&(objectClass=inetOrgPerson)(uid=*));//单个筛选器
$attributes=array('dn','uid','sn','displayName');
$search=ldap_search($ds,$basedn,$filter,$attributes);//搜索
ldap_排序($ds,$search,'sn');
打印($info=ldap\u获取条目($ds,$search));
$info=ldap\u get\u条目($ds,$search);
$ldaprecord['cn']=$_POST['name'];
$\u dn=“uid=“.$\u POST[value']”,ou=“.$\u POST['othervalue']”,ou=VOIP,ou=sistem,dc=something,dc=it”;
$r=ldap\U add($ds,$\U dn,$ldaprecord);
}否则{
回显“LDAP绑定失败”;
}

我认为这比仅仅替换mysql函数要困难一些,因为mysql(或其他SQL server)与LDAP不相似。
我建议对LDAP使用现有的PHP包。举个例子,我觉得不错。还有很多代码片段。例如

您尝试过什么?展示你的代码,肯定会有人引导你找到解决方案