Bonjour à tous,

Je travaille sur une application php/ldap avec comme annuaire active directory. C'est pour moi la première fois que je touche à cela, alors j'avoue être plutôt perdu

Voici mon code :
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
<?php   
 
if($saisieEffectuer) 
{ 
$ds=ldap_connect("192.168.41.1");
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3); 
 
	if ($ds) 
	{   
    		if (ldap_bind($ds)) 
    		{  
        		$dn = "cn=$login,dc=loir-et-cher,dc=chambagri,dc=fr";  
 
        		$value = $pass;
 
        		$attr = "userPassword";
 
        		$r=ldap_compare($ds, $dn, $attr, $value);
 
        		if ($r === -1) 
        		{
            			echo "Erreur : ".ldap_error($ds);
        		} 
        		elseif ($r === TRUE) 
        		{
            			echo "Mot de passe correct";
        		} 
        		elseif ($r === FALSE) 
        		{
            			echo "Mot de passe incorrect : ".$value;
        		}
 
    		} 
    		else 
    		{
        		echo "Impossible de se connecter au serveur LDAP";
    		}           
 
    		ldap_close($ds);
 
	} 
	else 
	{
    		echo "Impossible de se connecter au serveur LDAP";
	}
 
}
 
?>
Cela me retourne comme erreur :
Warning: ldap_compare(): Compare: No such object in /usr/local/apache/htdocs/stocks_conso/index.php on line 18
Vous l'aurez deviné la ligne 18 est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$r=ldap_compare($ds, $dn, $attr, $value);
Puisque le code se déroule jusqu'ici je suppose que ma connexion en anonyme s'établie sans problème. Je pense qu'il y'a une erreur au niveau de mon $dn ou $attr.

Mes questions sont :
-De quelle manière puis-je connaître la structure de mon annuaire ? C'est-à-dire comment puis-je connaître le DN à utiliser ?

-Dois-je renseigner l'intégralité des champs (cn=$login,dc=loir-et-cher,dc=chambagri,dc=fr) ou pourrais-je m'en tenir qu'a cn=$login ?

-Et sinon voyez-vous une autre erreur dans le code qui vous saute aux yeux ?

J'ai bien sûr fait des recherches, ce qui m'a d'ailleurs permis d'en arriver à ce code, mais aucun explique comment obtenir le DN.

Voilà je vous remercie énormément par avance, cela fait 3-4 jours que je me prends la tête là-dessus et je n'en peux plus