Apostroph codé comme un caractère d'échappement
-
23-10-2019 - |
Question
J'ai un script PHP qui saisit les données d'un formulaire HTML et il envoie dans un courriel avec SwiftMailer. Lorsqu'un utilisateur entre guillemets ou en apostrophe un champ de saisie (textarea), l'e-mail ressemble à quelque chose comme ceci:
Entrée Forme: PLD mari
Courriel reçu reçu: Mari \ 's PLD
Entrée Forme: "Casse-croûte" "vieux" de pld
Courriel reçu: pld \ 's \ "collation \" \ "vieux \"
Il y a une validation et à l'assainissement en cours dans mon script:
if ($_POST['form_message'] != "") {
$form_message = filter_var($_POST['form_message'], FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
if ($_POST['form_message'] == "") {
$errors .= 'Please enter a valid comment.<br/><br/>';
}
} else {
$errors .= 'Please enter your comment.<br/>';
}
Voici la partie Swiftmailer:
$message->setBody("Here is the information submitted to
www.polycystic-kidneydisease.com/html/contact_email.php à partir de $ ip $ jour. \ n \ n -------------------------------- \ n \ n nom: $ name \ n \ n Adresse e-mail: $ email \ n \ n sujet: $ form_subject \ n \ n Commentaire: form_message de $ ");
Comment puis-je résoudre ce problème? Merci!
La solution
magic_quotes_gpc
est activée. Si vous pouvez le désactiver, vous pouvez le faire; sinon, utilisez stripslashes()
sur l'entrée avant de faire votre filtrage.