voici mon problème :
je tente désepérément de développer un client web vers ma base LDAP (OpenLDAP sur une machine Ubuntu)
Lorsque le formulaire contenant le profil d'un utilisateur est validé je suis censé remettre a jour/insérer ses informations dans la base de données (logique...).
Lorsque d'une information ne contient pas de caractère particulier é, è ,...
Tout se passe très bien.
Sinon, j'ai cette erreur :
Warning: ldap_add(): Add: Invalid syntax in /var/www/lib/lib_ldap.php on line 114
Avant de modifier la base, je prends bien soin de convertir la donnée en UFT-8 :
//$new: classe 'user'
user_add($new)
{
$item['login'][0]=utf8_encode($new->login);
$item['nom'][0]=utf8_encode($new->nom);
...
ldap_data_insertion($connexion,'login='.$item['login'][0].',ou=personnes,'.$ldap_base,$item);
}
ldap_data_insertion($conn,$item_dn,$item)
{
//Execution de la requete
$res=ldap_add($conn,$item_dn,$item);
if(!$res)
return makeResult(false,'LDAP[ADD]-INSERT_ERROR');
else
return makeResult(true);
}
Merci d'avance pour votre participation

J'utilisais LDAP admin pour faire mes tests et cet outil est plutôt instable.
Il est pratique pour importer ses fichiers ldif mais pas évident pour vraiment l'utiliser comme client LDAP (il génère souvent des erreurs).
Mon problème PHP venait du fait que la syntaxe qu'utilisait mon objet était du IA5String (et non du String tout court).
En esseyant d'insérer des objets standards avec accents en utilisant LDAP admin, les tests n'étaient pas non plus concluant (les accents étaient très mal gérés, d'où ma conclusion).
Bref, autant utiliser les objets standards...
Je pense par contre que la conversion en UTF8 n'est obligée que lors de l'utilisation ldif (mes scripts PHP fonctionnent correctement sans conversions). En effet, les fichiers ldif ne supportent que le format ASCII et les accents n'y sont pas permis (d'où la conversion en UTF8).
J'espère que ce post pourra éviter à d'autres une perte de temps précieu...