[php] guillemet et apostrophes dans input
Résolu
apostrophé
-
apostrophé -
apostrophé -
A voir également:
- Php apostrophes
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
13 réponses
comme ca :
ou encore comme ca :
$test = htmlspecialchars('L\'"apostrophe n\'est pas un problème pour PHP'); $input = "<input type=\"text\" value=\"".$test."\"/>"; print $input.'<br />';
ou encore comme ca :
$test = htmlspecialchars('L\'"apostrophe n\'est pas un problème pour PHP'); $input = '<input type="text" value="'.$test.'"/>'; print $input.'<br />';
Voilà, j'ai trouvé, il ne maquais que le flag ENT_QUOTES a la fonction htmlspecialchars.
C'etait assez difficile à comprendre puisque le navigateur interprete directement ces carracteres speciaux mais maintenant c'est tout pigé ;)
Encore merci pour ton aide, je vais pouvoir proteger tous mes champs de textes et les afficher correctement ! :)
C'etait assez difficile à comprendre puisque le navigateur interprete directement ces carracteres speciaux mais maintenant c'est tout pigé ;)
Encore merci pour ton aide, je vais pouvoir proteger tous mes champs de textes et les afficher correctement ! :)
le texte dans la base de données n'est pas bon, tu ne dois pas avoir les \ dans ta base.
comment ta rentrer ton text dans la base ? (php gère très bien ca t'inquiète pas !!)
comment ta rentrer ton text dans la base ? (php gère très bien ca t'inquiète pas !!)
Non dans ma base c'est correct, c'est moi qui fait un addslashes() en sortie afin que ca ne cree pas de problemes.
Il n'y a pas de probleme avec mysql, c'est plutot entre php et html...
Cela m'est egal d'afficher les anti slash dans mon input, j'ai mis ce addslashes pour etre sur qu'il m'affiche ces carracteres speciaux dans l'input.
Mais peu importe... avec ou sans addslash, php ne semble pas savoir gerer une variable contenant les deux caracteres a la fois : guillemets et apostrophe.
Mais peut etre y a-t-il une astuce ?
Il n'y a pas de probleme avec mysql, c'est plutot entre php et html...
Cela m'est egal d'afficher les anti slash dans mon input, j'ai mis ce addslashes pour etre sur qu'il m'affiche ces carracteres speciaux dans l'input.
Mais peu importe... avec ou sans addslash, php ne semble pas savoir gerer une variable contenant les deux caracteres a la fois : guillemets et apostrophe.
Mais peut etre y a-t-il une astuce ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Si tu choisis l'option double-quotes, remplace \\' par '
Si tu choisis l'option simples quotes, remplace \\" par "
Xavier
PS : Je suis d'accord avec Bablon Arnaud : ton utilisation du addslash pour l'insertion en base de données n'est pas pertinente : tu dis que c'est pour t'éviter des ennuis, mais tu as bien là la preuve que ça t'en ajoute plus qu'autre chose.
Si tu choisis l'option double-quotes, remplace \\' par '
Si tu choisis l'option simples quotes, remplace \\" par "
Xavier
PS : Je suis d'accord avec Bablon Arnaud : ton utilisation du addslash pour l'insertion en base de données n'est pas pertinente : tu dis que c'est pour t'éviter des ennuis, mais tu as bien là la preuve que ça t'en ajoute plus qu'autre chose.
Ben j'ai un peu de mal à comprendre comment on peut afficher un texte avec apostrophe et guillemet, meme sans passer par php dans une balise input, c'est donc plus un probleme html en fait... :
Comment html peut-il gerer ça ?
<input type='text' name='test' value="ceci est un "texte", ne l'effacez pas">
<input type='text' name='test' value='ceci est un "texte", ne l'effacez pas'>
Comment html peut-il gerer ça ?
si je fait :
ou ca
ou ca
ou ca
rien ne fonctionne, quelle est la solution ?
<input type='text' name='test' value='ceci est un \"texte\", ne l\'effacez pas'>
ou ca
<input type='text' name='test' value="ceci est un \"texte\", ne l\'effacez pas">
ou ca
<input type='text' name='test' value='ceci est un "texte", ne l'effacez pas'>
ou ca
<input type='text' name='test' value="ceci est un "texte", ne l'effacez pas">
rien ne fonctionne, quelle est la solution ?
un petit coup de pouce
ou
mais enlève ton addslashes il sert a rien, moi j'ai mis le \ à la main sinon j'ai une parse error (normal)
<?php //php (j'ai un antislash car mon contenu est écrit en dure dans mon fichier il vient pas d'une BDD) $test = 'l\'"apostrophe n\'est pas un problème pour PHP'; ?> //template <input id="test" name="test" value="<?php print htmlspecialchars($test); ?>"/>
ou
$test = 'l\'"apostrophe n\'est pas un problème pour PHP'; $input = "<input type='text' value='".htmlspecialchars($test)."'"; print $input.'<br />';
mais enlève ton addslashes il sert a rien, moi j'ai mis le \ à la main sinon j'ai une parse error (normal)
Je n'avais pas pensé à htmlspecialchars, je sens que j'approche d'une solution grace a toi, merci !
L'ennui c'est que ton exemple ne fonctionne pas. Peut etre une petite erreur de syntaxe, mais il m'affiche seulement le l.
Je vais cogiter un peu sur ce htmlspecialchars, merci encore.
L'ennui c'est que ton exemple ne fonctionne pas. Peut etre une petite erreur de syntaxe, mais il m'affiche seulement le l.
Je vais cogiter un peu sur ce htmlspecialchars, merci encore.
voila mon code :
Cela m'affiche seuelement le premier carracter aussi. Comme dans ton exemple. Car je fait la meme chose en intervertissant guillemets et apostrophe.
Ca ne fonctionne donc toujours pas... :(
$test = "l'apostrophe n'est pas un problème pour PHP. \"enfin a priori\"" ; echo $test."<br>" ; echo htmlspecialchars($test)."<br>" ; $input1 = "<input type='text' value='".htmlspecialchars($test)."'>(Fr) ";
Cela m'affiche seuelement le premier carracter aussi. Comme dans ton exemple. Car je fait la meme chose en intervertissant guillemets et apostrophe.
Ca ne fonctionne donc toujours pas... :(
mon exemple fonctionne !!! jlai tester sur mon pc !! jvais re regarder mais ca me parais suspect , jvais faire un test ac ta version les " et ' sont pas identique jvais looker