j'ai un probléme dauthentification ldap avec mon code et je ne vois pas ou vien l'erreur qq pourrait il m'aider car j'ai ma fenêtre d'authentification qui s'ouvre mais je dois cliquer 3 fois sur le boutton OK et ça ne m'affiche pas la page demandé si le login et le pass est bon voilà mon code:
merci de m'aider si vous pouvez
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138 <?php $annu1 = "didie"; //Annuaire Principal il faut remplir avec le nom de ton serveur ou l'adresse ip si c'est pas défini include "./toto.php"; header('WWW-Authenticate: Basic realm="LDAP"'); //fenetre de login ca sort tout seul une jolie fenetre /*j'ai oublié ca sans quoi ca ne te ramene pas les variables*/ if(phpversion() < 4.2){ foreach($HTTP_SERVER_VARS as $NomVar => $Value) $$NomVar = $Value; }else{ foreach($_SERVER as $NomVar => $Value) $$NomVar = $Value; } session_start(); //$identification = "0"; if($PHP_AUTH_USER != '' && $PHP_AUTH_PW != ''){ //---------------------------------------LDAP------------------------------------------- $serveur1 = new LDAP($PHP_AUTH_USER,$PHP_AUTH_PW,$annu1); if($serveur1->connect()){ //connexion au serveur LDAP if($serveur1->identification()){ //identification au serveur LDAP //------------------si identification ok header("location: ./inde.php"); //page suivante de ta page d'authentification /*le code doit etre situé en debut de page si tu utilise le header sinon ca va planter si tu ne veut pas utiliser le header il y a moyen en fait tu met ici tout le code a executer si l'authentification est bonne*/ }else{ //l'utilisateur n'a pas ete reconnu dans l'annuaire LDAP } $serveur1->deconnect(); //on se deconnect du serveur c'est plus propre quand meme }else{ //connexion impossible } }else{ //il faut remplir les champ } ?> et voilà ma page toto.php: <?php /* Fichier : LDAP.class.php */ // Création de la classe class LDAP { // Attribut du login du LDAP var $LDAP_login; // Attribut du password du LDAP var $LDAP_password; // Attribut de l'hôte du LDAP var $LDAP_host; // Attribut de connection var $connect; //Identification var $identification; // Définition du constructeur function LDAP($login, $password, $host) { // Vérification des variables if (empty ($login) || empty ($host) || empty ($password)){ // Affichage du message d'erreur //echo "<b>Erreur :</b> Une ou plusieurs variable(s) n'ont pas été renseigné.<br>Procédure interrompu"; exit; } else { // Initialisation des attributs $this->LDAP_login = $login; $this->LDAP_password = $password; $this->LDAP_host = $host; } } //fonction de connection function connect() { // Connection à LDAP $this->connect = @ldap_connect($this->LDAP_host); // Vérification de la connection if (!$this->connect){ // Affichage du message d'erreur //echo "<b>Erreur :</b> Connection au serveur impossible impossible<br>"; return false; }else{ return true; } // Initialisation de l'attribut de connection } // Méthode Identification() function identification () { // Exécution de l'identification $ident = @ldap_bind($this->connect, $this->LDAP_login, $this->LDAP_password); //Vérification de la connection if ($ident) { $this->identification = $ident; return true; } else { //echo "Echec d'identification<br>"; return false; } } //fonction recherche // Attention le serveur est configurer pourne pas tolerer plus de 200 réponses a la requete // temps de recherche maximale 2 secondes function recherche($Nom) { echo 'Recherchons (sn='.$Nom.') ...'; // Recherche par nom $search = ldap_search($this->connect, 'o="à compléter", c=fr', "sn=$Nom"); echo 'Le résultat de la recherche est ' . $search . '<br />'; echo 'Le nombre d\'entrées retournées est ' . ldap_count_entries($this->connect,$search) . '<br />'; echo 'Lecture des entrées ...<br />'; $info = ldap_get_entries($this->connect, $search); echo 'Données pour ' . $info["count"] . ' entrées:<br />'; for ($i=0; $i<$info["count"]; $i++) { echo 'dn est : ' . $info[$i]["dn"] . '<br />'; echo 'premiere entree cn : ' . $info[$i]["cn"][0] . '<br />'; echo 'premiere entree sn : ' . $info[$i]["sn"][0] . '<br />'; echo 'premier email : ' . $info[$i]["mail"][0] . '<br />'; echo 'premier givenName : ' . $info[$i]["givenName"][0] . '<br />'; echo 'premier uid : ' . $info[$i]["uid"][0] . '<br />'; } } // Méthode deconnect() function deconnect (){ // Déconnection $deconnect = ldap_unbind($this->connect); if(!$deconnect) ldap_close($this->connect);//c les bretelles et la ceinture :) }//fin de déconnexion }//fin de class ?>
Partager