Apostroph codificado como personaje de escape
-
23-10-2019 - |
Pregunta
Tengo un script PHP que toma datos de un formulario HTML y lo envía en un correo electrónico con Swiftmailer. Cuando un usuario ingresa a Apoestrofe o cita en un campo de entrada (TextARea), el correo electrónico se parece a esto:
Entrada de formulario: PLD del marido
Correo electrónico recibido recibido: PLD de marido
Entrada de formulario: "Snack" de PLD "viejo"
Correo electrónico recibido: PLD 's "Snack " "Old "
Hay cierta validación y saneamiento en mi guión:
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/>';
}
Aquí está la parte de Swiftmailer:
$message->setBody("Here is the information submitted to
www.polycystic-kidneydisease.com/html/contact_email.php desde $ ip en $ fecha. n n ------------------------------ ------ n n Nombre: $ Nombre n n Dirección de correo electrónico: $ correo electrónico n n Asunto: $ form_subject n n comentario: $ form_message ");
¿Cómo lo arreglo? ¡Gracias!
Solución
Suena como magic_quotes_gpc
está habilitado. Si puede deshabilitarlo, es posible que desee hacerlo; Si no, usa stripslashes()
en la entrada antes de hacer su filtrado.