LDAP: couldn't connect to LDAP server

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lpro:ldap:code_php [2016/01/12 16:41]
jbaudry [Ajout]
lpro:ldap:code_php [2016/01/13 10:12] (current)
jbaudry
Line 27: Line 27:
  
 <code php> <code php>
-//del group +//del user 
-function ​delGroup($dn) { +function ​delUser($dn) { 
- $ds=authenticate("login", "pass");+ //​authentification 
 +        ​$ds=ldap_connect("localhost"​);​ 
 +        ldap_set_option($ds,​ LDAP_OPT_PROTOCOL_VERSION,​ 3); 
 +        $r=@ldap_bind($ds,"​cn=admin,​dc=univ-lehavre,​dc=fr","​azerty");
  $res=ldap_delete($ds,​$dn);​  $res=ldap_delete($ds,​$dn);​
  ldap_close($ds);​  ldap_close($ds);​
Line 38: Line 41:
  
 <code php> <code php>
-function addGroup($dn, $info) {+function addGroup() {
         //​authentification         //​authentification
- $ds=authenticate("login", "passwd");+        ​$ds=ldap_connect("localhost"​);​ 
 +        ldap_set_option($ds,​ LDAP_OPT_PROTOCOL_VERSION,​ 3); 
 +        $r=@ldap_bind($ds,"​cn=admin,​dc=univ-lehavre,​dc=fr","​azerty"); 
 +        ​
         //on indique l'​endroit où ajouter l'​element         //on indique l'​endroit où ajouter l'​element
  $group_path="​ou=groups,​dc=univ-lehavre,​dc=fr";​  $group_path="​ou=groups,​dc=univ-lehavre,​dc=fr";​
         //on stocke les donnees dans un tableau         //on stocke les donnees dans un tableau
- $info["​objectclass"​][0] = "groupOfNames" ; +      
-        ... etc+ $info["​objectclass"​][0] = "posixGroup" ; 
 +        ​$info["​cn"​]="​utilisateurs3"​ ; 
 +        $info["​gidnumber"​]="​2025";​ 
 +         
 +        $dn="​cn="​.$info["​cn"​].","​.$group_path ;
    
  $res = ldap_add($ds,​ $dn, $info);  $res = ldap_add($ds,​ $dn, $info);
  $res = ldap_err2str( ldap_errno($ds) );  $res = ldap_err2str( ldap_errno($ds) );
         ​         ​
 +        //fermeture de la connexion
 + ldap_close($ds);​
 + return $res ;
 +}
 +</​code>​
 +
 +<code php>
 +function addUser() {
 +        //​authentification
 +        $ds=ldap_connect("​localhost"​);​
 +        ldap_set_option($ds,​ LDAP_OPT_PROTOCOL_VERSION,​ 3);
 +        $r=@ldap_bind($ds,"​cn=admin,​dc=univ-lehavre,​dc=fr","​azerty"​);​
 + ​ var_dump($r);​
 +        //on indique l'​endroit où ajouter l'​element
 + $user_path="​ou=users,​dc=univ-lehavre,​dc=fr";​
 +        //on stocke les donnees dans un tableau
 + 
 +        $info["​cn"​] = "​newuser"​ ;
 +        $info["​objectclass"​][0] = "​account"​ ;
 +        $info["​objectclass"​][1] = "​posixAccount"​ ;
 +        $info["​objectclass"​][2] = "​top"​ ;
 +        $info["​userpassword"​] = "​pass";​
 +        $info["​loginshell"​] = "/​bin/​bash"​ ;
 +        $info["​uidnumber"​] = "​123"​ ;
 +        $info["​gidnumber"​] = "​345"​ ;
 +        $info["​homedirectory"​] = "/​home/​newuser"​ ;
 + 
 +        $dn="​uid=newuser,"​.$user_path ;
 + 
 + $res = ldap_add($ds,​ $dn, $info);
 + $res = ldap_err2str( ldap_errno($ds) );
 + 
         //fermeture de la connexion         //fermeture de la connexion
  ldap_close($ds);​  ldap_close($ds);​
Line 110: Line 152:
 <code php> <code php>
 function show_a_person2($host,​ $uidPerson, $rootdn, $rootpasswd) { function show_a_person2($host,​ $uidPerson, $rootdn, $rootpasswd) {
- $ds=ldap_connect($host); +        ​$ds=ldap_connect("​localhost"​); 
- ldap_set_option($ds,​ LDAP_OPT_PROTOCOL_VERSION,​ 3); +        ldap_set_option($ds,​ LDAP_OPT_PROTOCOL_VERSION,​ 3); 
- $r=@ldap_bind($ds,​$rootdn,$rootpw); +        $r=@ldap_bind($ds,​"​cn=admin,dc=univ-lehavre,​dc=fr","​azerty"​);
- if($ds && $r) {+
  $sr=ldap_search($ds,​ $uidPerson, "​objectclass=*"​);​  $sr=ldap_search($ds,​ $uidPerson, "​objectclass=*"​);​
  $info = ldap_get_entries($ds,​ $sr);  $info = ldap_get_entries($ds,​ $sr);
 + $i=0;
  if(count($info)>​0) {  if(count($info)>​0) {
  $res["​cn"​] = $info[$i]["​cn"​][0];​  $res["​cn"​] = $info[$i]["​cn"​][0];​
- $res["​gecos"​] = $info[$i]["​gecos"​][0];​ 
  $res["​gidnumber"​] = $info[$i]["​gidnumber"​][0];​  $res["​gidnumber"​] = $info[$i]["​gidnumber"​][0];​
  $res["​homedirectory"​] = $info[$i]["​homedirectory"​][0];​  $res["​homedirectory"​] = $info[$i]["​homedirectory"​][0];​
Line 127: Line 168:
  }  }
  return $res ;  return $res ;
- } 
- else { 
- return "​Erreur de connexion"​ ; 
- } 
 } }
 +
 +$profil = show_a_person2("​localhost",​ "​uid=gaetan,​ou=users,​dc=univ-lehavre,​dc=fr",​ "​cn=admin,​dc=univ-lehavre,​dc=fr",​ "​azerty"​) ;
 +
 +echo "<​table border=1>"​ ;
 +foreach($profil as $k=>$v) {
 + echo "<​tr><​td>"​.$k."</​td><​td>"​.$v."</​td></​tr>"​ ;
 +}
 +echo "</​table>";​
 </​code>​ </​code>​