我在LDAP中有一个表单,可以在其中添加用户和密码,我该怎么做才能使用php和ajax实时检查用户名,不是mysql,而且我不知道如何比较和切换像在MySQL中使用的sqlquery或sql_num_rows之类的命令并将其移至LDAP,我在php上阅读了LDAP手册,与mysql不同,我如何才能在LDAP中替换此命令,以便可以实时检查我的用户名?使用javascript(所有内容都在一页内)
http://www.developphp.com/video/PHP/Check-User-Sign-Up-Name-Ajax-PHP-Social-Network-Tutorial
https://www.webslesson.info/2016/02/how-to-check-username-availability-in.html
和其他尝试使用mysql的网页
我使用了ldap_connect,ldap_bind_ ldap_search,ldap获取条目,并且正在以有趣的方式打印出Everythng,所以我使用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";
}
答案 0 :(得分:0)
我认为这比仅替换mysql函数要困难一些,因为mysql(或其他SQL Server)与LDAP不相似。 我建议将现有的PHP软件包用于LDAP。例如Adldap2对我来说很好。并且有许多代码片段。例如authentication