2010-02-11 10 views
1

Chaque fois que la valeur de texte comporte des guillemets, tout ce qui est derrière et entre guillemets disparaît.les guillemets font disparaître le texte, pourquoi?

Ex: Nice bmw m3 with 19" wheels DEVIENT Nice bmw m3 with 19 la partie après les guillemets est ignorée.

Y a-t-il un endroit autour de ça? A propos du code ci-dessous: Ceci est pour un formulaire sur une page PHP, donc lorsque le formulaire est soumis à lui-même la valeur de l'entrée reste inchangée, de sorte que l'utilisateur n'a pas à tout remplir à nouveau chaque fois que forme soumis à soi-même.

<input style="width:300px;" type="text" name="annonsera_headline" id="annonsera_headline" value="<?php echo @$_POST['annonsera_headline'];?>"> 

Merci

Répondre

3

Parce que " termine la valeur de l'attribut html.

Utilisez htmlentities ou htmlspecialchars

value="<?php echo htmlentities(@$_POST['annonsera_headline']);?>"> 

Il est déconseillé d'écrire des valeurs de $_POST ou $_GET sans utiliser au moins l'une des fonctions ci-dessus sinon il permet aux gens de construire une URL qui modifie le code HTML sur votre page.

2

Vous avez oublié de désinfectez la valeur avec htmlentities().

+0

Vérifiez le commentaire ci-dessus, savez-vous la réponse à cette question? J'utilise utf-8 sur chaque document jusqu'ici. Merci –

+0

Essayez de transmettre false comme 'double_encode'. –

+0

Peu importe, utilisé "htmlentitie ($ var, 'UTF-8') –

0
... value = "htmlentities(<?=$_POST['annonsera_headline']?>)" 
Questions connexes