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