Bonjour,
Je dois accéder à l'annuaire active directory et récupérer l'attribut telephoneNumber pour un utilisateur donné (voir le code ci-après).
Je n'y parviens pas et j'ai toujours l'erreur suivante :
Notice: Undefined index: telephoneNumber in C:\Program Files\EasyPHP 3.0 www\Intranet\includes\validlogin.php on line (ligne de l'echo ("Poste 1 ....
Pouvez-vous m'aider svp ?
Merci
<?PHP
$userid=$_POST['userid']; //récupération userlogin
$userpwd=$_POST['userpwd']; //récupération userpwd
$pageret=$_POST['pageretour']; //récupère la page à appeler si login ok
// LDAP variables
$ldaphost = "monserveur"; // votre serveur LDAP
$ldapport = 389; // votre port de serveur LDAP
$dn = "ou=xxxx,dc=xxxx,dc=loc";
$ldapusr="adminldap";
$ldappwd="pwd";
// Connecting to LDAP
$ldapconn = ldap_connect( $ldaphost,$ldapport)
or die( "Impossible de se connecter au serveur LDAP {$ldaphost}" );
if ($ldapconn)
{
//Connexion anonyme au serveur LDAP
$ldapbind = ldap_bind($ldapconn, $ldapusr,$ldappwd);
if ($ldapbind)
{
$verifuid= rechercheuid($userid,$ldapconn,$dn); // vérification code utilisateur
}
else
{
echo "Connexion LDAP échouée";
}
}
if ($verifuid)
{
$ch="uid=".$userid.$dn;
$verifpwd=recherchepwd($userpwd);
}
else
{
echo "Utilisateur inconnu";
}
if ($verifpwd === TRUE)
{
$retour= TRUE; // le login est bon
}
elseif ($verifpwd === FALSE)
{
$retour= FALSE;
echo "Mot de passe incorrect!";
}
ldap_close($ldapconn);
//return $retour;
function rechercheuid($id,$conn,$d)
{
//recherche uid saisi
$filter="(|(SAMAccountName=$id))";
$justthese = array("SAMAccountName","name","SN","CN","dn","mail","telephoneNumber","homephone","mobile");
$sr=ldap_search($conn, $d, $filter);
echo "nombre=".ldap_count_entries($conn,$sr);
$info = ldap_get_entries($conn,$sr);
echo "Affichage des données des ".$info["count"]. " entrées trouvées :";
for ($i=0; $i<$info["count"]; $i++)
{
echo "<p align='justify'>";
echo "Le dn (Distinguished Name) est: ". $info[$i]["dn"] ."<br>";
echo "Nom (sn) : ". $info[$i]["sn"][0] . "<br>";
echo "Prénom (cn) : ". $info[$i]["cn"][0] . "<br>";
echo "Name : ". $info[$i]["name"][0] . "<br>";
echo "GivenName : ". $info[$i]["givenname"][0] . "<br>";
echo "Displayname : ". $info[$i]["displayname"][0] . "<br>";
echo "logoncount : ". $info[$i]["logoncount"][0] . "<br>";
echo "Poste1 : ". $info[$i]["telephoneNumber"][0]. "<br>";
echo "Poste2 : ". $info[$i]["otherTelephone"][0]. "<br>";
echo "Teldom : ". $info[$i]["homephone"][0]. "<br>";
echo "Telmob : ". $info[$i]["mobile"][0]. "<br>";
for($j=0;$j<$info[$i]["mail"]["count"];$j++)
{
$rang=$j+1;
echo "Email numéro $rang: ". $info[$i][ "mail"][$j] ."<br>";
}
}
$entry = ldap_first_entry($conn,$sr);
$attrs = ldap_get_attributes($conn, $entry);
echo $attrs["count"] . " attributs dans cette entrée :<p>";
for ($i=0; $i < $attrs["count"]; $i++) {
echo $attrs[$i]. "<br />";
}
return $sr;
}
JP 