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 :

[PHP-JS] Apostrophes et guillemets me rendent fou !


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut [PHP-JS] Apostrophes et guillemets me rendent fou !
    Bonjour,

    Je ne me sors plus de mes guillemets.
    Pouvez-vous m'aider svp?
    Voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $echo_html_s -> MxText("bloc_add_message.bloc_pseudo.value_nom",
    ' onblur="this.className=\"i_text\" " value="'.htmlspecialchars(stripslashes($tab_rep_soutien[1])).'"');
    i_text est un div de mon fichier css.

    Merci

  2. #2
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 292
    Points
    292
    Par défaut
    Je vois pas ce que l'on pourrais faire, les guillemets ça a toujours été chiant.


    Puis je comprend pas ce que tu attends de nous

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Bonjour,
    Sans contexte et sans explications, c'est dur de comprendre ce que tu veux.
    Mais je vais me lancer dans l'art de la divination :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $echo_html_s ->MxText("bloc_add_message.bloc_pseudo.value_nom",
    "onblur= this.className='i_text' value='".htmlspecialchars(stripslashes($tab_rep_soutien[1]))."'");
    A moins que tu ne veuilles concaténer bloc_add_message, bloc_pseudo et value_nom ?

  4. #4
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut
    J'ai une erreur de codage.
    Je souhaite que vous me corrigiez.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ," onblur="this.className="i_text"""
    en fait, this.className='i_text' doit être entre guillemets pour onblur.
    Et le tout est entre guillement.

  5. #5
    Membre émérite Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Points : 2 276
    Points
    2 276
    Par défaut
    Utilise le caractère d'échapement \.
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onblur=\"this.className=\'i_text\'\"
    ce qui donnera onblur="this.className='i_text'".

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Essaie avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $echo_html_s -> MxText("bloc_add_message.bloc_pseudo.value_nom",
    "onblur='this.className=\'i_text\' value='".htmlspecialchars(stripslashes($tab_rep_soutien[1]))."'");

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Pour info, voici un tutoriel bien utile : Apostrophes ou guillemets : lesquels choisir ?

  8. #8
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut
    Il vaut mieux toujours alterner et rester sur le même départ, on y voit plus clair... Dans ton cas garde tes doubles pour encadrer tes chaines php et alterne des simples et des doubles avec échappement pour ton contenu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $echo_html_s -> MxText("bloc_add_message.bloc_pseudo.value_nom",
    "onblur='this.className=\"i_text\" value='".htmlspecialchars(stripslashes($tab_rep_soutien[1]))."'");

  9. #9
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Si on cherche a etre perfectionniste, on peut se baser sur ces règles pour déterminer exactement qu'il convient le mieux d'utiliser :

    * Une chaine de caractere en php ne contenant aucune variable => quote (')
    * Une chaine de caractere en php contenant une variable => guillemets (") mais préférer les ' et la concaténation
    * Une valeur d'attribut HTML => guillemets (") (pour respecter les standards)

    Apres, évidemment, ca se complique quand on rajoute du javascript inline... et là faut user sans abuser des caractères d'échappement... ou éviter le inline ;o)

    Donc j'aurais plutot dis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $echo_html_s -> MxText(
        'bloc_add_message.bloc_pseudo.value_nom',
        'onblur="this.className=\'i_text\'" '.
        'value="'.htmlspecialchars(stripslashes($tab_rep_soutien[1])).'"');

  10. #10
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Pour info, JavaScript accepte sans problème un troisième type de chaîne : l'accent grave. De plus, n'oubliez jamais le 2° paramètre d'htmlspecialchars(), surtout dans le contexte "entre guillemets", sans quoi une chaîne contenant des guillemets donnerait du HTML incorrect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $echo_html_s -> MxText(
        'bloc_add_message.bloc_pseudo.value_nom',
        'onblur="this.className=`i_text`"'.
        'value="'.htmlspecialchars(stripslashes($tab_rep_soutien[1]), ENT_QUOTES).'"');
    Une alternative est bien sûr d'utiliser sprintf() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $echo_html_s -> MxText(
        'bloc_add_message.bloc_pseudo.value_nom',
        'onblur="this.className=`i_text`"'.
        sprintf('value="%s"', htmlspecialchars(stripslashes($tab_rep_soutien[1]), ENT_QUOTES));

  11. #11
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Citation Envoyé par Yogui Voir le message
    Pour info, JavaScript accepte sans problème un troisième type de chaîne : l'accent grave.
    oO

    On en apprend tout les jours ! Merci en tout cas, ca va me simplifier la vie ca ^^ Vive le backquote ;o)

    Par contre, il ne faut SURTOUT pas l'utiliser en php hein... c'est l'équivalent d'un appel systeme il me semble...

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

Discussions similaires

  1. [PHP-JS] Problème de guillemets.
    Par -Neo- dans le forum Langage
    Réponses: 2
    Dernier message: 08/06/2007, 10h30
  2. [PHP-JS] problème avec guillemets
    Par nicerico dans le forum Langage
    Réponses: 3
    Dernier message: 03/05/2007, 14h53
  3. Apostrophe et Guillemet dans un href
    Par rekiem71 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/04/2007, 13h56
  4. [PHP-JS] Apostrophe qui devient / via textaera form
    Par didiersee dans le forum Langage
    Réponses: 8
    Dernier message: 08/01/2007, 21h21
  5. [jscript] selectNodes apostrophes et guillemet
    Par trent94 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 23/11/2005, 15h37

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