Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2008, 11h41   #1
Membre habitué
 
Homme
Enseignant
Inscription : avril 2002
Messages : 300
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : avril 2002
Messages : 300
Points : 100
Points : 100
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 :
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
bastien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 12h16   #2
Membre confirmé
 
Développeur Web
Inscription : octobre 2006
Messages : 251
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 251
Points : 268
Points : 268
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
benji07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 13h07   #3
Membre éclairé
 
Inscription : mai 2008
Messages : 359
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 359
Points : 397
Points : 397
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 :
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 ?
Tsilefy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 13h58   #4
Membre habitué
 
Homme
Enseignant
Inscription : avril 2002
Messages : 300
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France, Vosges (Lorraine)

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : avril 2002
Messages : 300
Points : 100
Points : 100
J'ai une erreur de codage.
Je souhaite que vous me corrigiez.

Code :
," onblur="this.className="i_text"""
en fait, this.className='i_text' doit être entre guillemets pour onblur.
Et le tout est entre guillement.
bastien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 14h12   #5
Modérateur
 
Avatar de SirDarken
 
Eric Willems
Développeur Web
Inscription : février 2004
Messages : 895
Détails du profil
Informations personnelles :
Nom : Eric Willems
Âge : 30
Localisation : France, Hérault (Languedoc Roussillon)

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

Informations forums :
Inscription : février 2004
Messages : 895
Points : 1 065
Points : 1 065
Envoyer un message via MSN à SirDarken Envoyer un message via Skype™ à SirDarken
Utilise le caractère d'échapement \.
exemple :
Code :
onblur=\"this.className=\'i_text\'\"
ce qui donnera onblur="this.className='i_text'".
SirDarken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 14h15   #6
Membre éclairé
 
Inscription : mai 2008
Messages : 359
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 359
Points : 397
Points : 397
Essaie avec ça :
Code :
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]))."'");
Tsilefy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 23h36   #7
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Pour info, voici un tutoriel bien utile : Apostrophes ou guillemets : lesquels choisir ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 09h27   #8
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
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 :
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]))."'");
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 09h59   #9
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
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 :
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])).'"');
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 10h31   #10
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
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 :
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 :
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));
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 10h45   #11
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
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...
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h32.


 
 
 
 
Partenaires

Hébergement Web