Caracteres estranhos em um formulário

  • Autor Autor ulises2010
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
U

ulises2010

Beta
Usuário com poucas negociações! Use sempre o saldo do 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
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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í:
Inserir CODE, HTML ou 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 edição:
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

Inserir CODE, HTML ou 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):

Inserir CODE, HTML ou 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):

Inserir CODE, HTML ou 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

Inserir CODE, HTML ou 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)

Inserir CODE, HTML ou 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:

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

La siguiente linea cambio por lo de arriba.

Inserir CODE, HTML ou PHP:
"From: $_REQUEST[Email]"
 
Voltar
Topo