IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Ldap/ ecriture de données


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2003
    Messages : 99
    Points : 108
    Points
    108
    Par défaut Ldap/ ecriture de données
    bonjours,

    pkoi ca marche pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    /////////////////////////////////////////////////////////
       	//public function set_adusermail($dn,$email)		  -> marche pas.
    	/////////////////////////////////////////////////////////   
    	/* ecrit une nouvelle valeur pour l'attribut mail de l'utilisateur dans active directory *//*
    		{
    		if ($this->LnkStat !== false) 
    			{
    			$le = array("mail" => array($email));
    			$result = ldap_modify($this->Link_ID, $dn, $le);
    			if ( ! $result) {$this->LastErr = "La modification de l'attribut email de :\n".$dn."\n a échoué\n";}
    			return $result;
    			}
    pas de message d'erreur, et la fonction ne renvoie ni false ni true....
    CN=ldapuser,CN=Users,DC=adm,DC=loc

    Notice: Undefined index: mail in D:\EasyPHP-5.4.0RC4\INCS\Class_Ldap.php on line 255
    le code de test c'est:
    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
     
    <?php
      include 'Class_KeyRing.php';
      include 'Class_Ldap.php';
     
      $ktab = array ( 0=>'ldap','ldap'=>array('id'=>'***','pwd'=>'***'),1=>'mysql','mysql'=>array('id'=>'***','pwd'=>'***'));				   					
      $porteclefs = new keyring($ktab);
     
      $ldap = new ldap('192.168.0.5',389,$porteclefs->getid('ldap'),$porteclefs->getpwd('ldap'),true); 
      if ($ldap->connected()) 
      	{
    	 if ($ldap->search_aduser("adm.loc","ldapuser")) 
    	 	{
    		$e = $ldap->getentry(0);
    		echo $ldap->getAttribut(0,'dn')."<br>";
    	 	}	
    	} else {
    		echo $ldap->GetLastErrorTxt();
    	} 
     
    		$email = 'turlututu@titi.fr';
    	    //echo $ldap->set_adusermail($ldap->getAttribut(0,'dn'),$email);
    		$e = $ldap->getentry(0);
    		echo $ldap->getAttribut(0,'mail')."<br>";
    		echo $ldap->GetLastErrorTxt();
    ?>

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    utilise l'extension ldap

  3. #3
    Membre averti Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Points : 331
    Points
    331
    Par défaut
    point N°1 :
    set_adusermail est mal écrite pour la gestion de la valeur de retour
    Point N°2 :
    Utilise Zend Server 5.6 CE (gratuit) avec celui la l'API de connexion LDAP (ldap_...) fonctionne nettement mieux
    Point N°3 :
    A tu pensée à utiliser Zend_Ldap. Ce serait plus facile
    http://framework.zend.com/manual/fr/zend.ldap.html.
    Point N°4 :
    Essai avec une version finale de PHP 5.4 plutot qu'une RC.

  4. #4
    Membre régulier
    Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2003
    Messages : 99
    Points : 108
    Points
    108
    Par défaut
    set_adusermail est mal écrite pour la gestion de la valeur de retour
    pourrais tu approfondir un peu svp ? sinon en effet il manque deux lignes au code. les deux dernieres n'étant pas significative du tout pour mon problème je n'ai pas vu l’interrêt de les mettre.

    essais avec une version finale de php
    Oui, j'ai tenté de me servir de wamp avec version finale 5.4 php mais ce fichu server wamp est une catastrophe en lui même car c'est pas php mais le serveur wamp qui est une rc ... apparemment mal compilé, le ldap passe a la trappe carrément quelque soit les bidouille des fichiers de config. j'en ai eu marre je suis repasser en RC sous easyphp. ça marche nettement mieux.. Quant au zend server je testerais ca chez moi. si je trouve la version gratuite. ca ma l'air pas mal, il réagit commet aux paramétrages manuel ce serveur ?.

    utiliser l'extention ldap
    et non c'est pas une erreur aussi bête. la consultation d'information fonctionne bien cf le dn retourné

  5. #5
    Membre régulier
    Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2003
    Messages : 99
    Points : 108
    Points
    108
    Par défaut
    j'ai trouvé le probleme..
    La modification de l'attribut mail sur : CN=usertest,CN=Users,DC=adm,DC=loc a échoué (Insufficient access)
    je crois que c'est clair ... ^^.

    Comment faire sous active directory(2003 srvr) pour donner les droits d'accès en modification sur l'annuaire ldap ??? please ?, sachant que actuellement je me connecte avec l'identifiant et le mot de passe de l'utilisateur que je cherche à modifier. quels droits dois je lui donner à cet utilisateurs?

    j'ai trouvé ceci:
    Le second élément permet les communications SSL/TLS chiffrées en 128 bits, préalable requis par Active Directory pour donner le droit de modifier un mot de passe via le protocole LDAP.
    dois je passer ldap en ssl pour faire des modifs même sur le mail ? comment on implémente ca?

  6. #6
    Membre régulier
    Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2003
    Messages : 99
    Points : 108
    Points
    108
    Par défaut
    trouvé la solution:

    il suffit de passer l'utilisateur en administrateur... même si c'est pas tres enchantant. y a t'il un utilisateur spécifique (style admin du shema qui na des droits d'administration uniquement que sur l'annuaire AD ?)

  7. #7
    Membre averti Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Points : 331
    Points
    331
    Par défaut
    Il te faut un compte admin avec les droits sur la branche de l'arbre que tu souhaite administrer.

    ça devrait te simplifier le debug et la maintenance si tu fais comme ça :
    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
    public function set_adusermail($dn,$email)		 
    	/////////////////////////////////////////////////////////   
    	/* ecrit une nouvelle valeur pour l'attribut mail de l'utilisateur dans active directory */
    		{
    $result  =null;
    		if ($this->LnkStat !== false) 
    			{
    			$le = array("mail" => array($email));
    			$result = ldap_modify($this->Link_ID, $dn, $le);
    			if ( ! $result) {$this->LastErr = "La modification de l'attribut email de :\n".$dn."\n a échoué\n";}
     
    			}
    }else{
    throw new Exception('non connecté');
    }
     
    return $result
    }

Discussions similaires

  1. [VBA-E]Ecriture de données dans un fichier texte
    Par osito57 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 18/08/2017, 19h42
  2. Ecriture des données d'une table dans un fichier
    Par jeunot0108 dans le forum Forms
    Réponses: 3
    Dernier message: 13/08/2007, 12h49
  3. ecriture de données sur le port série
    Par sanatou dans le forum Windows
    Réponses: 2
    Dernier message: 20/12/2006, 18h09
  4. [CSV] Ecriture des données dans un fichier
    Par kagura dans le forum Langage
    Réponses: 3
    Dernier message: 07/11/2006, 22h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo