Caracteres raros en un formulario

  • Autor Autor ulises2010
  • Fecha de inicio Fecha de inicio
U

ulises2010

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Me dice mi cliente que cuando recibe la información de un formulario le salen caracteres raros en los acentos y las Ñ.

Yo he hecho pruebas y a mi si me llegan bien, así que supongo que será un problema de su gestor de correo, pero como es muy incómodo me gustaría solucinarselo.

El correo se envia con un archivo llamado send_email.php... ¿hay algún modo de incluir una llamada o algo así para que se envié con caracteres UFT-8 o algo parecido?

Gracias
 
tienes que pasar los caracteres a html entitites... usando: htmlentities de php

ejemplo: ñomo; quedaria ñomo ... y de esa forma se ve bien en cualquier lado!
 
supongo que con utf8_encode() puedes hacerlo, solo pones el código que te menciones y dentro de los aprendices el texto (o la variable que contiene el texto) quedaría mas o menos así:
Insertar CODE, HTML o PHP:
utf8_encode($mitexto);

por mas información, aqui puedes leer la documentación oficial: PHP: utf8_encode - Manual

Mejor aplica lo que comenta cicklow.
 
Última edición:
Muchas gracias cicklow, lo de pasarlos a html ya lo he intentado, y a mi que lo recibo bien ahora me aparece mal (me llega con el acute;

Lo que me comenta Voldemorth no se exactamente como hacerlo. Este es el contenido de mi sen_email.php.. ¿Como tendría que ponerlo

Insertar CODE, HTML o PHP:
<?php
	$to = "prueba@gmail.com"; /*Your Email*/
	$subject = "Información GENÉRICA sobre Dirección, Planificación y Gestión"; /*Issue*/
	$date = date ("l, F jS, Y"); 
	$time = date ("h:i A"); 
	
		
	$Email= $_REQUEST['Email'];
	$firstName = $_REQUEST['Firstname'];
	$lastName = $_REQUEST['Lastname'];
	$telefono = $_REQUEST['telefono'];

	$msg="
	Nombre: $firstName $lastName
	Email: $Email
	Telefono: $telefono
	
	Mensaje de peticion de información enviado desde Dirección, Planificación y Gestión GENÉRICA el día  $date, hour: $time.\n
	
	$_REQUEST[Message]";

	if ($Email=="") {
		echo "<div class='alert alert-error'>
  				<a class='close' data-dismiss='alert'>×</a>
  				<strong>Error</strong> Por favor, proporcionanos tu email.
			</div>
		
		";
	}	
	elseif ($firstName=="" or $lastName=="" or $telefono=="") {
		echo "<div class='alert alert-error'>
  				<a class='close' data-dismiss='alert'>×</a>
  				<strong>Error</strong> Por favor, rellena correctamente todos los campos.
			</div>";
	}	
	else{
		mail($to, $subject, $msg, "From: $_REQUEST[Email]");
		echo "<div class='alert alert-success'>
  				<a class='close' data-dismiss='alert'>×</a>
  				<strong>Gracias por tu interés</strong>
			</div>
		
		
		";	
	}
	
?>
 
Muchas gracias cicklow, lo de pasarlos a html ya lo he intentado, y a mi que lo recibo bien ahora me aparece mal (me llega con el acute;...

mmm raro...
PHP:
mail($to, $subject, utf8_encode($msg), "From: $_REQUEST[Email]");
esta es otra opcion como comentan mas arriba!
 
Muchas gracias por vuestra ayuda pero lo siguen recibiendo mal. He hecho una prueba y esto es lo que reciben:

De: promerits@gmail.com [mailto😛romerits@gmail.com]
Enviado el: viernes, 27 de febrero de 2015 10:49
Para: info@prouniversitas.es
Asunto: Información desde LP de Prouniversitas sobre Máster de Acceso a la AbogacÃa


Nombre: Cañó probándó
Email: promerits@gmail.com
Telefono: 666666666

Mensaje de peticion de información enviado desde la Landing Page de PROUNIVERSITAS sobre el Máster de Acceso a la abogacÃÂ*a Friday, February 27th, 2015, hour: 09:48 AM.

El texto cambia un poco porque he usado un archivo para preguntar pero luego lo he implementado en otro, (me he asegurado de implemntarlo en el que envio, ese no es el problema).

Muchas gracias de nuevo y a ver si a alguien se le ocurre alguna otra solución.
 
Hola

prueba con esto (variable $msg):

Insertar CODE, HTML o PHP:
$msg = '<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	</head>
	<body>
		<p>'.$Email.'</p>
		<p>'.$firstName.'</p>
		<p>'.$lastName.'</p>
		<p>'.$telefono.'</p>

		<p>Mensaje de peticion de información enviado desde Dirección, Planificación y Gestión GENÉRICA el día  '.$date.', hour: '.$time.'.</p>
	</body>
</html>';


Completo como tu ejemplo (pero no probado):

Insertar CODE, HTML o PHP:
<?php
	$to = "prueba@gmail.com"; /*Your Email*/
	$subject = "Información GENÉRICA sobre Dirección, Planificación y Gestión"; /*Issue*/
	$date = date ("l, F jS, Y"); 
	$time = date ("h:i A"); 
	
		
	$Email= $_REQUEST['Email'];
	$firstName = $_REQUEST['Firstname'];
	$lastName = $_REQUEST['Lastname'];
	$telefono = $_REQUEST['telefono'];

	$msg = '<!DOCTYPE html>
	<html>
		<head>
			<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		</head>
		<body>
			<p>'.$Email.'</p>
			<p>'.$firstName.'</p>
			<p>'.$lastName.'</p>
			<p>'.$telefono.'</p>

			<p>Mensaje de peticion de información enviado desde Dirección, Planificación y Gestión GENÉRICA el día  '.$date.', hour: '.$time.'.</p>
		</body>
	</html>';


	if ($Email=="") {
		echo "<div class='alert alert-error'>
  				<a class='close' data-dismiss='alert'>×</a>
  				<strong>Error</strong> Por favor, proporcionanos tu email.
			</div>
		
		";
	}	
	elseif ($firstName=="" or $lastName=="" or $telefono=="") {
		echo "<div class='alert alert-error'>
  				<a class='close' data-dismiss='alert'>×</a>
  				<strong>Error</strong> Por favor, rellena correctamente todos los campos.
			</div>";
	}	
	else{
		mail($to, $subject, $msg, "From: $_REQUEST[Email]");
		echo "<div class='alert alert-success'>
  				<a class='close' data-dismiss='alert'>×</a>
  				<strong>Gracias por tu interés</strong>
			</div>
		
		
		";	
	}
	
?>


Espero te funcione, saludos.
 
Muchas gracias S3rgio....

Joder que cosa más rara:

Cambiando lo que me decias se recibía el correo con el asunto bien (contiene algún acento y antes también fallaba) pero ahora llega bien pero en el texto viene todo el código html que hemos metido....

De todos modos he recuperado una versión anterior, que tiene este código

Insertar CODE, HTML o PHP:
<?php
	$to = "info@prouniversitas.es"; /*Your Email*/
	$subject = "Información desde LP de Prouniversitas sobre Máster Universitario en Asesoría Fiscal"; /*Issue*/
	$date = date ("l, F jS, Y"); 
	$time = date ("h:i A"); 
	
		
	$Email= $_REQUEST['Email'];
	$firstName = $_REQUEST['Firstname'];
	$lastName = $_REQUEST['Lastname'];
	$telefono = $_REQUEST['telefono'];

	$msg="
	Nombre: $firstName $lastName
	Email: $Email
	Telefono: $telefono
	
	Mensaje de peticion de información enviado desde la Landing Page de PROUNIVERSITAS sobre el Máster Universitario en Asesoría Fiscal  $date, hour: $time.\n
	
	$_REQUEST[Message]";

	if ($Email=="") {
		echo "<div class='alert alert-error'>
  				<a class='close' data-dismiss='alert'>×</a>
  				<strong>Error</strong> Por favor, proporcionanos tu email.
			</div>
		
		";
	}	
	elseif ($firstName=="" or $lastName=="" or $telefono=="") {
		echo "<div class='alert alert-error'>
  				<a class='close' data-dismiss='alert'>×</a>
  				<strong>Error</strong> Por favor, rellena correctamente todos los campos.
			</div>";
	}	
	else{
		mail($to, $subject, $msg, "From: $_REQUEST[Email]");
		echo "<div class='alert alert-success'>
  				<a class='close' data-dismiss='alert'>×</a>
  				<strong>Gracias por tu interés</strong>
			</div>
		
		
		";	
	}
	
?>

y funcina correctamente.... no se que habrá variado ;-)
 
Hola.

Prueba con esto: (no lo he probado, pero deberia funcionar xD)

Insertar CODE, HTML o PHP:
<?php
    $to = "prueba@gmail.com"; /*Your Email*/
    $subject = "Información GENÉRICA sobre Dirección, Planificación y Gestión"; /*Issue*/
    $date = date ("l, F jS, Y"); 
    $time = date ("h:i A"); 
    
        
    $Email= $_REQUEST['Email'];
    $firstName = $_REQUEST['Firstname'];
    $lastName = $_REQUEST['Lastname'];
    $telefono = $_REQUEST['telefono'];
    $cabeceras = "From: ".$Email."\r\nContent-type: text/html\r\n";

    $msg = '<!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        </head>
        <body>
            <p>'.$Email.'</p>
            <p>'.$firstName.'</p>
            <p>'.$lastName.'</p>
            <p>'.$telefono.'</p>

            <p>Mensaje de peticion de información enviado desde Dirección, Planificación y Gestión GENÉRICA el día  '.$date.', hour: '.$time.'.</p>
        </body>
    </html>';


    if ($Email=="") {
        echo "<div class='alert alert-error'>
                <a class='close' data-dismiss='alert'>×</a>
                <strong>Error</strong> Por favor, proporcionanos tu email.
            </div>
        
        ";
    }   
    elseif ($firstName=="" or $lastName=="" or $telefono=="") {
        echo "<div class='alert alert-error'>
                <a class='close' data-dismiss='alert'>×</a>
                <strong>Error</strong> Por favor, rellena correctamente todos los campos.
            </div>";
    }   
    else{
        mail($to, $subject, $msg, $cabeceras);
        echo "<div class='alert alert-success'>
                <a class='close' data-dismiss='alert'>×</a>
                <strong>Gracias por tu interés</strong>
            </div>
        
        
        ";  
    }
    
?>


Lo unico que cambio de aqui fue que le agregue cabeceras:

Insertar CODE, HTML o PHP:
$cabeceras = "From: ".$Email."\r\nContent-type: text/html\r\n";

La siguiente linea cambio por lo de arriba.

Insertar CODE, HTML o PHP:
"From: $_REQUEST[Email]"
 
Atrás
Arriba