Page 1 sur 1

ldap_add invalid syntax

Posté : 26 mai 2013, 13:30
par elerf
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.

Re: ldap_add invalid syntax

Posté : 26 mai 2013, 18:38
par elerf
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 !

Re: [RESOLU] ldap_add invalid syntax

Posté : 26 mai 2013, 22:09
par moogli
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 !!! ;)