Page 1 sur 1

LDAP aide script d'analyse d'attribut faux/vide

Posté : 11 déc. 2013, 12:20
par Wagnouf
Bonjours à vous . Dans un premier temps je tiens à dire que je suis débutant (plus ou moins) étudiant en BTS .

En bref voila depuis quelque temps je m'attaque au LDAP et plus précisément sur un script permettant de lire chaque attributs de chaque entrées d'un AD .En cas d'erreur (attribut faux ou manquant) concaténer un message d'erreur contenant le nom de l'entrée et l'attribut faux dans un mail qui serat envoyé après l'analyse complete sur ma boite mail .

(Vous arrivez toujours a suivre ? )

Donc voici les attributs que je doit vérifier

"givenName",
"sn",
"displayName ",
"physicalDeliveryOfficeName",
"telephoneNumber",
"mail",
"homeDirectory ",
"homeDrive ",
"pager ",
" ipPhone",
"otherTelephone",
"ProfilePath ",
"title",
"company",
"groupOfMembers",
"mobile"

Voila le code (non fini) que j'ai réalisé . les "Echo" avec les .$fullname je sais que ce n'est pas bon que cela ne m'affichera pas le nom de l'entrée mais "displayname"

Donc voila je ne demande pas que l'on fasse mon script je demande juste un coup de main sur la marche a prendre pour pouvoirs le réaliser .
<?php
 
$ldapServer = '*********.com'; 

$ldapconn=ldap_connect($ldapserver);  // doit être un serveur LDAP valide !

if ($ldapconn) { 
    echo 'Liaison ...'; 
    $ldapbind=ldap_bind($ldapconn);    
                                     
   		 if ($ldapbind) {
        	 echo "Connexion LDAP réussie...";
   		 } else {
       		 echo "Connexion LDAP échouée...";
			 include ("mail.fonction.php")
			 connect_error();	
			 }

        $fname      = "givenName";
        $name       = "sn";
        $fullname   = "displayName ";
        $office     = "physicalDeliveryOfficeName";
        $numtel     = "telephoneNumber";
        $mail       = "mail";
        $hdirectory = "homeDirectory ";
        $hdrive     = "homeDrive ";
        $pager      = "pager ";
        $ipphone    = " ipPhone";
        $othertel   = "otherTelephone";
        $profilPath = "ProfilePath ";
        $title      = "title";
        $company    = "company";
        $memberOf   = "groupOfMembers";
        $mobile     = "mobile"

    $sr=ldap_search($ldapconn,OU=EMEA,OU=****,OU=U***,OU=***);

  $entry = ldap_first_entry($ldapconn,$sr);

  $attrs = ldap_get_attributes($ldapcoon ,$sr, $entry,"givenName","sn","displayName ","physicalDeliveryOfficeName","telephoneNumber","mail","homeDirectory ","homeDrive ","pager "," ipPhone","otherTelephone","ProfilePath ","title","company","groupOfMembers","mobile");


        if ($profilPath != "c:\policies\user.man") {
          echo "Profil path on" .$fullname "not match" ($ds); 

        } elseif (empty($name) {
          echo "Name on" .$fullname "is empty"

        } elseif (empty($fname)) { 
          echo "First name on" .$fullname "is empty"

        } elseif (empty($fullname)) {  
          echo "Full name on"  .$mail "is empty"

        }elseif (empty($office)) {
          echo "Office on" .$fullname "is empty"  

        } elseif ($office != "Paris") {
          echo "Office on" .$fullname "not match"

        }elseif (empty($numtel)) {
          echo "Telephone number on" .$fullname "is empty"
        }

        } elseif ($numtel != "#^\+33 1 5506 [0-9]{4}$#") {
          echo "Telephone number on" .$fullname "is not match"

        } elseif (empty($mail)) {
          echo "Mail address on" .$fullname "is empty"

        } elseif ($mail != "#^[a-z\.a-z]+@********\.com$#") {
          echo "Mail address on" .$fullname "not match"
        }

        } elseif ($hdirectory != "PARAFFOS\users\ " ) {          
          echo "Home directory on" .$fullname "not match"

        } elseif ($hdrive != "H:" ) {
          echo "Home drive on" .$fullname "not match"

        } elseif (empty($pager)) {
          echo "Pager on" .$fullname "is empty"

        } elseif ($pager != "#^9 040 [0-9]{4}$#") {
          echo "Pager on" .$fullname "not match"
        }

        } elseif (empty($ipphone)) {
          echo "Ip Phone on" .$fullname "is empty"

        } elseif ($ipphone != "#^9040 [0-9]{4}$#") {
          echo "Ip phone on" .$fullname "not match"
        }

        } elseif (empty($othertel)) {
          echo "other telephone on" .$fullname "is empty"

        } elseif ($othertel != "#^9040[0-9]{4}") {
          echo "Other telephone on" .$fullname "not match"
        }

        } elseif ($mobile != "#^\+33 6 [0-9]{4} [0-9]{4}$#") {
          echo "Mobile on" .$fullname "not match"
        }

        } elseif (empty($mobile)) {
          echo "Mobile on" .$fullname "is empty"
        }

        } elseif (empty($title)) {
          echo "Title on" .$fullname "is empty"
 
        } elseif (empty($company)) {
         echo "Company on" .$fullname "is empty"

        }elseif ($memberOf == ) {
         echo ""
        }

        } elseif ($r === false ) {
         echo 
        }
           
      $next = ldap_next_entry($ldapconn, $sr)



    echo 'Fermeture de la connexion';
    ldap_close($ldapconn);
 }
 $ldapcloseldap_close;
 }
?>

Re: LDAP aide script d'analyse d'attribut faux/vide

Posté : 11 déc. 2013, 23:02
par moogli
salut,

la fonction ldap_get_attributes ne prend que deux attribut pourquoi en met tu autant ?

il y a un exemple dans la doc.

il te faut faire une boucle pour taitrer le résultat de la recherche
tant que ldap_next_attribut en retourne pas false tu peux avancer.

à utiliser :
- do ... while
- les fonctions ldap que tu as déja + ldap_next_attribut en fonction de l'exemple de la doc.

@+