IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP]Problème avec la fonction ldap_search


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut [PHP]Problème avec la fonction ldap_search
    Bonjour à tous,

    J'ai un petit problème avec ma fonction ldap_search... Je n'arrive pas à la faire marcher. J'ai déjà lu plein de tutoriel, j'ai fais des recherches sur je ne sais combien de forum mais je ne trouve toujours pas la solution à mon problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php
    	$serveur="192.168.0.1";
    	$port=389;
    	$pseudo="Administrator";//login de connexionau serveur de test
    	$mdp="";// pas de mdp
    	$result=ldap_connect($serveur) or die ("Impossible de se connecter au serveur<br/>");
     
    	/*CONNEXION AU SERVEUR*/
     
    	if($result){
    		echo('Connexion établie<br/>');	
    		ldap_set_option ($result, LDAP_OPT_PROTOCOL_VERSION, 3);
    		//ldap_set_option($result, LDAP_OPT_REFERRALS, 0);
    		echo($result.'<br/>');
    	}else{
    		echo('Impossible d\'établir la connexion<br/>');
    	}
     
    	/*LIAISON AU SERVEUR*/
     
    	$liaison=ldap_bind($result, $pseudo, $mdp) or die ("Impossible d'établir la liaison avec le serveur<br/>");
     
    	if($liaison == TRUE){
    		echo('Liaison établie<br/>');
    		echo($liaison.'<br/>');
    	}else{
    		echo('Impossible d\établir la connexion<br/>');
    	}
     
    	/*RECHERCHE D'UNE ENTREE*/
    	$find=ldap_search($result, 'OU=user DC=test.local', 'sb=*') or die ("impossible de faire la recherche ".ldap_error($result));
    	$i = ldap_errno($result);
    	echo("erreur suivante :".ldap_err2str($i).'<br/>');
    	$info=ldap_get_entries($result, $find);
    	echo($info["count"]." enregistrement trouvés<br/>");
     
    	/*DECONNEXION DU SERVEUR*/
    	$deconnec=ldap_unbind($result) or die ("Impossible de se déconnecter du serveur !<br/>");
     
    	if($deconnec == TRUE){
    		echo('Déconnexion réalisée avec succès<br/>');	
    	}else{
    		echo('Impossible de se déconnecter du serveur<br/>');
    	}
    ?>
    Mon code d'erreur est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Connexion établie
    Resource id #2
    Liaison établie
    1
     
    Warning: ldap_search(): Search: Operations error in c:\program files\easyphp1-7\www\gestion de contrats\connec_ldap.php on line 31
    impossible de faire la recherche Operations error

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 256
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
     
    <?php
    $user = "Administrateur@essaie.du";// mon nom d utilisateur c'est la convetion de active Directory d'utiliser le @
    $pass = "dd";// mon mot de passe  
    echo "<h3>Test LDAP n° 1</h3>";
    echo "Connexion ...<br />";
    $ds = ldap_connect ("essaie.du","389") or die ("error");
    if ($ds) {echo ("ok");}
    else {echo ("you cant not");}
     
     
    echo "Attachement...";
     ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);// c'est la derniere version de LDAP
    ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
     
    $bd = ldap_bind($ds, $user, $pass)or die("Couldn't bind to AD!");
     
     //$result = ldap_search($ds, "DC=essaie,DC=du", "objectClass=*");// la caste est importante pour faire des recherches!!!!!!!!!!
    // $result = ldap_search($ds, "DC=essaie,DC=du", "objectClass=computers");
      $result = ldap_search($ds, "DC=essaie,DC=du", "objectClass=User");
      $val = ldap_get_entries($ds, $result);// val est un tableux
     
      echo "Nombre de personnes trouvées : ".$val["count"]. "<p>";
      for ($i=0;$i<$val["count"];$i++)
      {
     
     echo "dn : ". $val[$i]["dn"] ."<br>";// afichier DN des user
     echo "phone ".$val[$i]["telephonenumber"][0]."<br>";
     echo "name;".$val[$i]["name"][0]."<br>";
     echo "description ".$val[$i]["description"][0]."<br>";
     echo "display  ".$val[$i]["displayname"][0]."<br>";
     echo "mail".$val[$i]["mail"][0]."<br>";
     
     echo "log" .$val[$i]["logoncount"][0]."<br>";
     echo "pay".$val[$i]["c"][0]."<br>";// comme dz fr deux caractére
     echo "name of country".$val[$i]["co"][0]."<br>";
     
     echo "code postale est ".$val[$i]["postalcode"][0]."<br>";
     echo "first name :".$val[$i]["givenname"][0]."<br>";
     echo "le téléphone :".$val[$i]["homephone"][0]."<br>";
     echo "adresse :".$val[$i]["streetaddress"][0]."<br>";
    ;
     
     
     
    echo "numéro de mobile :".$val[$i]["mobile"][0];
     
      }
     /*$entry = ldap_first_entry($ds, $result);
    
    $attrs = ldap_get_attributes($ds, $entry);
    
    echo $attrs["count"] . " attributs dans cette entrée :<p>";
    
    for ($i=0; $i<$attrs["count"]; $i++) 
        echo $attrs[$i]."<br />";*/
     
     ldap_close ($ds); 
    ?>
     
     
    </body>
    conseil :ce code fonctionne sous Windows serveur 2003 tu doit te connecter avec name of user et son mot de passe
    pour connaitre un nom d'attribut tu utilise un logiciel qui s'appelle AD explorer et tu doit pas ecrire les nom d'atribut en majuscules

    tu veut utiliser open LDAP il ya un tutoriel sur developper dans la section php

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 9
    Par défaut
    J'ai finalement réussi à faire marcher mon code,

    Plusieurs choses à prendre en compte.

    - Sous un active directory, on est obligé de mettre un login et un password.
    - Utiliser un software du genre ldap administrator pour avoir test les requêtes et aussi voir de façon claire et précise le chemin pour le DN.
    - Avoir de la patience ^^

    Merci quand même à ceux qui ont cherchés !


  4. #4
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Par défaut
    Bonjour Xmemy,
    ton post remonte à plus d'un an, mais j'aimerai si possible
    que tu m'expliques comment tu as réussi à faire fonctionner la fonction ldap_search. J'ai testé le code ci-dessus, il me renvoi toujours le nombre d'utilisateur à 1000 et n'affiche aucune donné

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP] problème avec la fonction ora_logon
    Par sarahG dans le forum Interfaces de programmation
    Réponses: 1
    Dernier message: 27/03/2008, 09h31
  2. [XSLT]Probléme avec une fonction php dans un fichier xsl!
    Par Mo_Poly dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 29/10/2007, 07h32
  3. Probléme avec la fonction php "session_start()"
    Par freetibet1 dans le forum Langage
    Réponses: 2
    Dernier message: 04/05/2007, 11h37
  4. Réponses: 7
    Dernier message: 10/06/2006, 14h31
  5. [SQL-Server] Problème avec la fonction mssql_connect (connexion PHP SQL Server)
    Par flydragon dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/05/2006, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo