IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[LDAP] Problèmes d'accent dans les valeurs


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut [LDAP] Problèmes d'accent dans les valeurs
    Bonjour à tous/toutes,

    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

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Login et nom ne sont pas des attributs standards, vous êtes sûrs de votre coup ? De plus, il faut préciser la ou les classes objets dont dépend l'objet inséré.


    Julp.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    De plus, il faut préciser la ou les classes objets dont dépend l'objet inséré
    Je précise bien les attributs "objectClass" si c'est cela que vous me demandez... ?

    Login et nom ne sont pas des attributs standards, vous êtes sûrs de votre coup ?
    Oui ce ne sont pas des attributs standards (ce qui va etre modifié d'ici peu).
    Le problème c'est que même avec des attributs standards, cela ne fonctionne pas.

    Je m'explique :

    Prenons l'attribut "l" qui lui est standard, son attribut supérieur est "name" (lui aussi standard).
    La syntaxe de "name" est du "Distingished Name"... Or cette syntaxe n'accepte pas de caractères spéciaux tels que les accents.

    Ce cas de figure vaut aussi pour pas mal d'autres attributs standards...

    Cependant il faut que je puisse accepter les accents dans mon adresse, localite, etc,... !
    Il faut donc que je modifie le schéma standard pour changer la syntaxe de ses attributs ou alors créer mes propres attributs !

    Donc le choix se résume à :

    Soit garder la compatibilité, atout des objets standards... Les accent sont oubliés !

    Soit perdre les avantages des objets standards et pouvoir jouer avec les caractères spéciaux...


    Quelqu'un a une conclusion/solution différente (j'avoue que cela m'arrangerai...)

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    C'est faux, les accents sont acceptés mais il vous faut les coder en UTF-8 (encodage de stockage pour les chaînes de caractère défini par RFC). Vous pourvez effectivement utiliser utf8_[en|de]code ou bien passer vos pages/scripts en UTF-8.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    En effet, après une scéance de tests plutôt fastidieuse, mes conclusions se sont avérées inexactes.

    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).

    En espérant que ce post pourra éviter à d'autres une perte de temps précieu, je vous remercie pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [javascript] accents dans les message "alert&q
    Par logica dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 10/07/2008, 10h08
  2. Injection des accents dans les nom de tables ?
    Par lathenor dans le forum SQLite
    Réponses: 3
    Dernier message: 21/05/2007, 11h36
  3. Réponses: 1
    Dernier message: 09/10/2006, 20h00
  4. Accent dans les champs
    Par Alexlesilex dans le forum Installation
    Réponses: 10
    Dernier message: 17/05/2006, 13h15
  5. [XML] Accent dans les noms de balises
    Par virgul dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 09/03/2005, 13h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo