[prb] : ajout dans LDAP

Signaler
Messages postés
182
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
22 octobre 2010
-
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
-
Bonjour,



j'ai le probleme suivant, j'utilise l'annuair LDAP (openLdap) et je
fait la connexion avec les librairie DB de Pear, le prb c'est que la
conexion et linterrogation de l'annuair marche tres bien, mais l'ajout
dans l'annuair ne marche pas lui (sans message d'erreur, sauf si je
fais un var_dump()) j'ai cherché longtmp mais je ne vois pas d'erreurs.



Mon code :






<meta http-equiv= "Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Kate, the KDE Advanced Text Editor">

<?
require_once("DB.php");

class Ldap{

private $ldap;

function __construct()
{

$BASE_LDAP = "dc= xxx,dc=local";
$DSN_LDAP = "ldap3://cn=Manager,$BASE_LDAP:monPass@localhost/$BASE_LDAP";
ldap_set_option($this->ldap, LDAP_OPT_PROTOCOL_VERSION, 3);


$this->ldap= DB::connect($DSN_LDAP);
if(DB::isError($this->ldap)) die ("$this->ldap->message($this->ldap->code) $this->ldap->userinfo");
}

function add()
{

$ldap_row =array();
$ldap_row["dn"]= "uid=ID0005,ou=Users,dc=xxx,dc=local";
$ldap_row["objectclass"] = "uidObject";
$ldap_row["objectclass"] = "person";
$ldap_row["uid"] = "ID0005";
$ldap_row["userpassword"] = "fionfion";
$ldap_row["cn"] = "Renaud XXXXX";
$ldap_row["sn"] = "renus";


$rep = $this->ldap->simpleQuery(
array(
$ldap_row,
"action" => "add",
"base_dn" => "ou=Users,dc=xxx,dc=local"
)
);
if(DB::isError($this->ldap)) die ("$this->ldap->message($this->ldap->code) $this->ldap->userinfo");
}

}
?>

Si queslqu'un avait la solution je lui serait extrement reconnaissant ;)

Merci a tous

3 réponses

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
"$this->ldap= DB::connect($DSN_LDAP);

"

Moi c'est ta classe de DB qui me fait peur. Tu l'appèles sans l'instancier ? Pourquoi pas... mais :

"$rep = $this->ldap->simpleQuery"

Heu, la je veux voir le code de la classe de DB. Tu renvoie "$this" dans ta classe DB ? Ca m'étonnerait bien ca...
Messages postés
182
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
22 octobre 2010

DB es une librairie de pear je l'ai toujours utilisé de cette maniere...sa marche tres bien pour Postgres ou encore mysql,

j'ai installer les librairie qui permettai de faire la connexion ldap
...les exemples fournits indique aussi cette maniere de faire,



je comprend pas pourquoi cela te derange : "$this->ldap->simpleQuery"


ldap est une variable privée de ma classe je l'apelle dans mes fonctions de cette maniere : $this->ldap

elle est intancié dans le constructeur par :




<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Kate, the KDE Advanced Text Editor">

"$this->ldap= DB::connect($DSN_LDAP);"

c donc le resultat de cette connexion qui effectue la fonction simpleQuery
ya t'il reelement une erreur ?

Merci de t'interesser ;)
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Nan, c'est que je n'utilise jamais les fonctions DB de pear c'est pour ca... :)

Parce que sinon je ne vois pas d'erreurs.

$this->ldap->simpleQuery() ? J'ai beau regarder dans la doc mais je trouve pas. Par contre, je trouve query();