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

Langage PHP Discussion :

encodage des caractères spéciaux avec Safari


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut encodage des caractères spéciaux avec Safari
    Bonjour,
    J'ai un form tout bête, tout ce passe bien sous IE et FF mais pas sous safari.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    <form action="" method="get" name="FormNewsletter" >
    	<input type="text" size="22" name="Newsletter" value="Votre email..." onclick="document.forms.FormNewsletter.Newsletter.value= ''" />
    	<input type="submit" value="RECEVOIR" name="NewsletterValide" style="color:#8B238D;width:100px;font-size:10px;font-weight:bold;margin-left:28px;margin-top:5px;" />
    			</form>
    quand j'insere le resultat de "Newsletter" dans mon mysql j'obtient :
    kiki%2540aol.com -->sous safari
    kiki@aol.com --> sous IE et FF

    Une idée ?
    Merci,
    Guigo

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    j'dirais bien un format de caractère spéciaux non compatible? tu as quoi avant d'enregistrer? ta table est en quoi ? (utf-8, latin9 ... )
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Salut,
    dsl j'avais pas vu que tu avais repondu :-(....
    du coup ma table est en latin1_swedish_ci.... Et franchement aucun pb sous les autre navigateur. Apres moult manip je seche !
    Du coup j'ai fait une fonction de "reparation" mais bon pas tres clean.

    Merci,
    Guigo

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par guigo Voir le message
    Salut,
    dsl j'avais pas vu que tu avais repondu :-(....
    du coup ma table est en latin1_swedish_ci.... Et franchement aucun pb sous les autre navigateur. Apres moult manip je seche !
    Du coup j'ai fait une fonction de "reparation" mais bon pas tres clean.

    Merci,
    Guigo
    commencez par vérifier les déclarations d'entête du fichier HTML qui contient le <form>…

    si vous ne mettez pas de déclaration d'encoding explicite, le navigateur en déduira un en fonction des préférences définies par l'utilisateur ou des paramètres par défaut de l'OS ou en "sniffant" le texte reçu du serveur… et dans ce cas il considérera que c'est ce charset que le serveur attend…

    vous pouvez aussi spécifier un "accept-charset" explicite dans le <form>…
    http://www.w3.org/TR/html401/interac...accept-charset

  5. #5
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Les entêtes sont correctes il me semble ?

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


    J'essaye le charset encode dans le form.

    Merci beaucoup,
    Guigo

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par guigo Voir le message
    Les entêtes sont correctes il me semble ?

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


    J'essaye le charset encode dans le form.

    Merci beaucoup,
    Guigo
    @ étant un caractère ASCII… cela ne va rien changer directement pour ce problème… même si vous devez bien vérifier les encodings pour une éventuelle saisie de caractères accentués dans d'autres champs…

    %2540 est très étrange :
    %25 c'est l'URL encode de %
    et %40 celui de @…
    mais vous avez %2540 là où vous devriez avoir %40 tout court dans l'URL généré par l'action "GET" de votre <form>… et ce %40 devrait être @ une fois récupéré via la variable $_GET de PHP…

    tout cela ressemble fort à un double URL encoding maladroit quelque part…
    %40 devenant %2540 parce qu'un code buggé ne trouverait rien de mieux à faire qu'encoder le % en %25…

    vous êtes certain qu'il n'y a pas de Javascript associé à votre form qui viendrait perturber la soumission ?
    (comme vous faites un GET vous devriez voir l'URL généré dans le browser…)
    dans votre code PHP ajoutez un dump dans un fichier de tout ce que vous recevez lors du submit (les $_SERVER, $_GET et C°…)

    et dans le PHP : vous n'auriez pas un code qui ferait le malin avec le parsing de l'URL ou des variables (genre un urlencode qui n'a rien à faire là) ?

  7. #7
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Il me semble avoir déjà vérifie tout cela.... Mais je refais le tour demain matin...
    En tout cas cela paraitrait logique de trouver une erreur de ce type !

    Merci pour tout, et je vous tiens au courant

    Guigo

Discussions similaires

  1. problème d'affichage des caractères spéciaux avec la console Dos
    Par javass dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 14/05/2008, 17h58
  2. Réponses: 3
    Dernier message: 24/10/2006, 11h05
  3. Probleme d'encodage des caractères spéciaux
    Par pacoulitou24 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 20/06/2006, 16h47
  4. Réponses: 15
    Dernier message: 24/02/2006, 14h17
  5. traitement des caractères spéciaux avec XSLT
    Par Mirgue dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 19/07/2004, 16h57

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