raw - Codifique correctamente los caracteres en un formulario de correo PHP("I''m" se convierte en "I / m m")
unescape php (2)
Lo más fácil es deshacer las citas mágicas en php.ini,
magic_quotes_gpc = falso
Si no puede hacer eso, necesita eliminar barras como esta,
if (get_magic_quotes_gpc()) {
foreach($_POST as $k => $v) {
$_POST[$k] = stripslashes($v);
}
}
Estoy probando un formulario de correo PHP, uno muy simple, que se encuentra aquí :
<?php
if(isset($_POST[''submit'']))
{
//The form has been submitted, prep a nice thank you message
$output = ''<h3>Thanks for your message</h3>'';
//Deal with the email
$to = ''[email protected]'';
$subject = ''you have a mail'';
$contactname = strip_tags($_POST[''contactname'']);
$adress = strip_tags($_POST[''adress'']);
$contactemail = strip_tags($_POST[''contactemail'']);
$textmessage = strip_tags($_POST[''textmessage'']);
$boundary =md5(date(''r'', time()));
$headers = "From: My Site/r/nReply-To: [email protected]";
$message = "Name: ".$contactname."/n";
$message .= "Adress: ".$adress."/n";
$message .= "E-mail: ".$contactemail."/n";
$message .= "Message: ".$textmessage."/n";
mail($to, $subject, $message, $headers);
}
?>
El problema es que recibo una barra no deseada "/" cada vez que escribo una comilla simple o doble en mi mensaje, por lo que "Yo soy" aparece como "Yo" en mi buzón.
Sé que tiene que ver con la forma en que PHP distingue las citas de códigos de solo citas de conferencias, pero no sabría qué agregar en mi formulario para que se ejecute correctamente.
Cualquier ayuda es apreciada,
Puedes probar a desmenuzar tu mensaje, algo así como:
$message = stripslashes($message);