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é avec succè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.
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] 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é avec succès !";
}
} [/code]
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]$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"
)
);[/code]
et que je rappelle la fonction ldap_add avec le nouveau paramètre, cela fonctionne.
[code] if (ldap_add($con, $dn, $test) === false)
{
$msg[] = "Erreur d'ajout.";
return false;
}[/code]
Je ne comprends pas. Que ce soit la variable $ldif[$i] ou $test, le contenu est le même !
Mais [b]ldap_add($con, $dn, $ldif[$i]) [/b]renvoie l'erreur Invalid Syntax
Alors que[b] ldap_add($con, $dn, $test)[/b] passe sans problème.
Merci de votre aide.