[devweb] quote, double quote, et ???
Résolu
Fricky42
Messages postés
466
Date d'inscription
Statut
Membre
Dernière intervention
-
Fricky42 Messages postés 466 Date d'inscription Statut Membre Dernière intervention -
Fricky42 Messages postés 466 Date d'inscription Statut Membre Dernière intervention -
Coucou tout le monde,
Voici un probleme en devweb (surtout en php) sur lequel je tombe souvent et qui fini pas mal par me gaver. Je n'ai encore trouvé aucune solution... Pour plus simplement expliquer ce probleme voici un exemple :
jusqu'ici, aucun probleme... Mais si je complique un peu la chose...
Probleme : l'argument de my_function (qui est ici un string) ne peux pas utiliser ces doubles quotes car elles englobent deja le string $str. Idem pour les simple quote qui englobe le onmouseover.
Je ne cherche pas un regler le probleme pour cet exemple precis. Mais a savoir si il existe une methode pour venir a bout de ce probleme de facon general. Quand les doubles et simples quotes sont deja occupes...
Merci d'avoir prete attention =).
Bonne journee.
Voici un probleme en devweb (surtout en php) sur lequel je tombe souvent et qui fini pas mal par me gaver. Je n'ai encore trouvé aucune solution... Pour plus simplement expliquer ce probleme voici un exemple :
$str = "<div onmouseover='my_function()'>hello world</div>"
jusqu'ici, aucun probleme... Mais si je complique un peu la chose...
$str = "<div onmouseover='my_function("un_argument")'>hello world</div>"
Probleme : l'argument de my_function (qui est ici un string) ne peux pas utiliser ces doubles quotes car elles englobent deja le string $str. Idem pour les simple quote qui englobe le onmouseover.
Je ne cherche pas un regler le probleme pour cet exemple precis. Mais a savoir si il existe une methode pour venir a bout de ce probleme de facon general. Quand les doubles et simples quotes sont deja occupes...
Merci d'avoir prete attention =).
Bonne journee.
A voir également:
- [devweb] quote, double quote, et ???
- Double ecran - Guide
- Whatsapp double sim - Guide
- Double driver - Télécharger - Pilotes & Matériel
- Double appel - Guide
- Double boot - Guide
3 réponses
Met simplement un slashes devant tes quotes ;)
Il existe également le `` (altgr + 7) mais je l'ai jammais utilise pour du php, donc je sais pas si ça fonctionne,
En tout cas tu peux l'utiliser dans tes requêtes SQL (pour sélectionner les champs) ;)
$str = "<div onmouseover='my_function(\"un_argument\")'>hello world</div>"
Il existe également le `` (altgr + 7) mais je l'ai jammais utilise pour du php, donc je sais pas si ça fonctionne,
En tout cas tu peux l'utiliser dans tes requêtes SQL (pour sélectionner les champs) ;)
`` => aucun rapport avec le magicquote ;)
magicquote c'est une fonction apache (je crois apache) qui permet d'ajouter automatiquement des slashes devant les quotes.
www.phpfrance.com/tutoriaux/index.php/2005/04/17/29-les-magic-quotes
pour ton erreur:
$text = "toto est trop sympa";
$str = "<b onmouseover=this.style.cursor='pointer' onclick='print_ib(" . $text . ");'>toto</b>";
ou
$str = "<b onmouseover=this.style.cursor='pointer' onclick='print_ib(\"" . $text . "\");'>toto</b>";
devraient marché.
magicquote c'est une fonction apache (je crois apache) qui permet d'ajouter automatiquement des slashes devant les quotes.
www.phpfrance.com/tutoriaux/index.php/2005/04/17/29-les-magic-quotes
pour ton erreur:
$text = "toto est trop sympa";
$str = "<b onmouseover=this.style.cursor='pointer' onclick='print_ib(" . $text . ");'>toto</b>";
ou
$str = "<b onmouseover=this.style.cursor='pointer' onclick='print_ib(\"" . $text . "\");'>toto</b>";
devraient marché.
le ` porte le nom de magic quote.
Ne peux quoi qu'il arrive pas marcher car le HTML généré sera :
onclick='print_ib(toto est trop sympa)'
Alors pour passé un string dans la fonction js il faut l'encadrer (" ou ').
Quant a
Ca marche en effet ! Cependant si je change juste les " inhibées en ' inhibées... ca ne marche plus. C'est etonnant je suis curieux de comprendre.
Mais bref. Probleme resolu ^^. Merci
$text = "toto est trop sympa"; $str = "<b onmouseover=this.style.cursor='pointer' onclick='print_ib(" . $text . ");'>toto</b>";
Ne peux quoi qu'il arrive pas marcher car le HTML généré sera :
onclick='print_ib(toto est trop sympa)'
Alors pour passé un string dans la fonction js il faut l'encadrer (" ou ').
Quant a
$str = "<b onmouseover=this.style.cursor='pointer' onclick='print_ib(\"" . $text . "\");'>toto</b>";
Ca marche en effet ! Cependant si je change juste les " inhibées en ' inhibées... ca ne marche plus. C'est etonnant je suis curieux de comprendre.
Mais bref. Probleme resolu ^^. Merci
https://en.wikipedia.org/wiki/Magic_quotes
et
Introduction
Les magic-quotes sont deux options de PHP accessibles dans le php.ini et qui gèrent les chaines de caractères. Mais leur utilisation devient complètement anarchique et même dangereuse quand l'on ne sait pas s'en servir.
Je Confirme ce que j'ai dis sur les magics quote, je me trompe peu etre, personne n'est infaillible, mais je veux voir un doc qui le prouve ^^
Sinon essaye \' inhibées ;)
et
Introduction
Les magic-quotes sont deux options de PHP accessibles dans le php.ini et qui gèrent les chaines de caractères. Mais leur utilisation devient complètement anarchique et même dangereuse quand l'on ne sait pas s'en servir.
Je Confirme ce que j'ai dis sur les magics quote, je me trompe peu etre, personne n'est infaillible, mais je veux voir un doc qui le prouve ^^
Sinon essaye \' inhibées ;)
Et l'histoire des backslashes j'ai essaye ca ne marche pas... je donne l'exemple reel qui me pose actuellement probleme :
Si je met des espaces dans $text ca plante (car le onclick n'est pas encadré).
Si je l'encadre par des quote, et j'inhibe les quote du print_ib :
Ca ne marche toujours pas...