[RESOLU] ldap_add invalid syntax

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] ldap_add invalid syntax

Re: [RESOLU] ldap_add invalid syntax

par moogli » 26 mai 2013, 22:09

Modération :
Puisque ta question est résolue, je l'indique en cliquant sur le bouton "Mettre le sujet en tant que Résolu" pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.

Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert situé en haut de la page à côté du titre, si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

Re: ldap_add invalid syntax

par elerf » 26 mai 2013, 18:38

J'ai trouvé tout seul finalement.

En fait, chacune des valeurs du tableau $ldif[$i] commençait par un espace, ce qui provoquait l'erreur.

C'était quelque chose comme ça :
[mail] => espaceprenom.nom'arobas'test.fr //J'ai du remplace @ par 'arobas pour ne pas être classer en spam
[sn] => espaceNOM
[givenName] => espaceprenom
[userPassword] => espace01031991
[uid] => espace[email protected]
[cn] => espacePrenom NOM
...

En enlevant cet espace en trop, ça passe !

ldap_add invalid syntax

par elerf » 26 mai 2013, 13:30

Bonjour à tous,

J'ai un problème avec ldap_add, je m'en sors pas, je ne vois pas l'erreur.

Avec le bout de code suivant, ldap_add me renvoie l'erreur Invalid Syntax :

Code : Tout sélectionner

for ($i=0; $i<array_pop(array_keys($ldif)); $i++) { $dn=$ldif[$i]['dn']; unset($ldif[$i]['dn']); if (ldap_add($con, $dn, $ldif[$i]) === false) { $msg[] = "Erreur d'ajout."; return false; } else { $msg[] = "Fichier import&eacute; avec succ&egrave;s !"; } }
Le contenu de $ldif[$i] qui pose problème :
Array
(
[mail] => prenom.nom'arobas'test.fr //J'ai du remplace @ par 'arobas pour ne pas être classer en spam
[sn] => NOM
[givenName] => prenom
[userPassword] => 01031991
[uid] => [email protected]
[cn] => Prenom NOM
[objectClass] => Array
(
[0] => person
[1] => organizationalPerson
[2] => supannPerson
[3] => iutSenartPerson
[4] => eduPerson
[5] => inetOrgPerson
)

)

Maintenant, si je déclare "à la main" le tableau d'attributs, comme ceci :

Code : Tout sélectionner

$test = array( "mail" => "prenom.nom'arobas'test.fr", //J'ai du remplace @ par 'arobas' pour ne pas être classer en spam "sn" => "NOM", "givenName" => "prenom", "userPassword" => "01031991", "uid" => "[email protected]", "cn" => "Prenom NOM", "objectClass" => array( "0" => "person", "1" => "organizationalPerson", "2" => "supannPerson", "3" => "iutSenartPerson", "4" => "eduPerson", "5" => "inetOrgPerson" ) );
et que je rappelle la fonction ldap_add avec le nouveau paramètre, cela fonctionne.

Code : Tout sélectionner

if (ldap_add($con, $dn, $test) === false) { $msg[] = "Erreur d'ajout."; return false; }
Je ne comprends pas. Que ce soit la variable $ldif[$i] ou $test, le contenu est le même !
Mais ldap_add($con, $dn, $ldif[$i]) renvoie l'erreur Invalid Syntax
Alors que ldap_add($con, $dn, $test) passe sans problème.

Merci de votre aide.