Comment post spécial/les caractères réservés à partir de formulaires HTML des pages PHP?

J'ai un formulaire qui ressemble à ceci:

<form action="/assesment/savelist/" method="post">
    <input type="hidden" name="owner" value="<?php echo $userid ?>" />
    <input type="text" name="title" value="Question List Title" />
    <textarea name="description"></textarea>
    <input type="submit" />
</form>

Dans la description de personnes devront être en mesure d'utiliser le £ personnage (parmi d'autres non-caractères autorisés).

Est-il de toute façon de convertir ces caractères à quelque chose qui est autorisé avant de poster ma page PHP?


Salut à Tous, merci pour vos commentaires jusqu'à présent.

Si je fais print_r($_POST) sur mon "savequestion" il les avant-postes de la postdata qui est envoyé à partir de ce formulaire.

cependant, si il y a un £ dans l'un des champs alors que le caractère spécifique n'ya pas envoyé. Par exemple si j'ai été à la poste "sdfsdfs £ adasd" à partir de ce formulaire tout ce qui aurait pu être envoyé est "sdfsdfs adasd"

la question est comment puis-je convertir € pour quelque chose que je peux envoyer en tant que poste de données à partir d'un formulaire HTML.

  • Avez-vous essayé htmlspecialchars()?
  • "£" est permis l'amende juste. Quel problème avez-vous avec de l'envoyer?
  • vous utilisez des &livre; lorsque vous remplissez des formulaires web ?
  • Tous les autres caractères de couture pour envoyer fine... Quand j'essaie de soumettre le formulaire de pauses. Salut Matt, je suis pas sûr de la façon d'utiliser htmlspecialchars() pour convertir avant que le formulaire est envoyé.
  • qu'entendez-vous par autorisés et non-autorisés?
  • Comment est-il casser? Décrivez votre problème. La solution que vous cherchez est dans la mauvaise direction.
  • $description = htmlspecialchars($_POST['description']); bien garder à l'esprit que ce sera convertir d'autres personnages. Personnellement, je préfère stocker tout non-convertis, puis de les convertir en sortie.
  • C'est une mauvaise solution pour quelque chose qui n'est pas un réel problème. Vous avez juste besoin de gérer les codages correctement.
  • AVANT de poster implique l'utilisation de javascript. Pourquoi ne pas traiter APRÈS la publication avec les fonctions PHP mentionné ici
  • Lire: Gestion de l'Unicode Avant en Arrière Dans Une Application Web
  • Le danger est d'encoder les caractères spéciaux uniquement pour l'affichage.
  • Mais ce n'est pas à propos de l'affichage. C'est sur entrée.
  • Je suis sûr que c'est, parce qu'il est à la recherche d'une certaine façon et il n'est probablement pas échappé/codé de manière correcte. HTML échapper les données avant de les mettre dans une base de données (ou quel que soit le stockage) est une très mauvaise idée. Sur cette note... @Chris comment avez-vous déterminer que le personnage est interdit ?
  • Salut à Tous, merci pour vos commentaires jusqu'à présent. Si je fais print_r($_POST) sur mon "savequestion" il les avant-postes de la postdata qui est envoyé à partir de ce formulaire. cependant, si il y a un £ dans l'un des champs alors que le caractère spécifique n'ya pas envoyé. Par exemple si j'ai été à la poste "sdfsdfs £ adasd" à partir de ce formulaire tout ce qui aurait pu être envoyé est "sdfsdfs adasd" la question est de savoir comment puis-je convertir € pour quelque chose que je peux envoyer en tant que poste de données à partir d'un formulaire HTML.
  • Pour quiconque cherche manuellement échapper à encoder les caractères spéciaux, il y a cette - encodeURIComponent()