Foros del Web » Programando para Internet » PHP »

fallo con funcion mail en formulario

Estas en el tema de fallo con funcion mail en formulario en el foro de PHP en Foros del Web. Hola tengo un problema con un formulario que lo envio a un email con la funcion mail. pero cuando en esta linea pongo charset utf-8 ...
  #1 (permalink)  
Antiguo 15/03/2012, 14:37
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
fallo con funcion mail en formulario

Hola

tengo un problema con un formulario que lo envio a un email con la funcion mail. pero cuando en esta linea pongo charset utf-8 para los caracteres latinos , sigue sin reconocer los acentos y las "ñ". este es el codigo

Código PHP:
<?php 
if (isset($_POST['submit'])) 
{

    
$nombre =$_POST["nombre"];
    
$email =$_POST["email"];
    
$contenido $_POST["contenido"];
    
$error "";
    if(empty(
$nombre))
    {
        
$error .= "Nombre <br>";
    }
    
    if(empty(
$email))
    {
        
$error .= "email <br>";
    }
    
    if(empty(
$contenido))
    {
        
$error .= "mensaje <br>";
    }
    
    if(!empty(
$error))
    {
        echo 
"por favor, rellena los siguientes campos:<br>".$error;
        
    }
    else
    {
        
$nombre $_POST['nombre'];
           
$email $_POST['email'];
        
$para $_POST['para'];
        
$asunto $_POST['asunto'];      
        
$contenido $_POST['contenido'];      
  
      
$para='[email protected]';
      
$asunto 'formulario contacto';
      
$contenido=$contenido." <br><br>Correo: ".$email." <br>Nombre: ".$nombre;

$headers 'MIME-Version: 1.0' "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
  
//dirección del remitente
$headers .= "From: $email\r\n";

if(
mail($para$asunto$contenido,$headers))
{
    
$nombre "";
    
$email "";
    
$contenido="";
    
$mensaje "mensaje enviado";
}
ahora le tengo cambiado el charset a iso8859 por que si no no me aparecen algunos campos del formulario en el email de destino. me pasa esto con el charset utf-8

que estoy haciendo mal?
  #2 (permalink)  
Antiguo 15/03/2012, 14:44
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: fallo con funcion mail en formulario

recuerda que el contenido HTML que envies debe estar en la misma codificación, así que tanto tu formulario, como el HTML que envíes debe tener el META content-type UTF8
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 15/03/2012, 14:53
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: fallo con funcion mail en formulario

no entiendo bien que es lo que me quieres explicar. la pagina es un .php y tengo las metas del head con el charset utf-8 el script de php va arriba del todo antes de la <html> es esto el error?
  #4 (permalink)  
Antiguo 19/03/2012, 13:19
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: fallo con funcion mail en formulario

el codigo php, es decir el script que me manda los email a la direccion de destino lo tengo ahora asi:

Código PHP:
<?php 
if (isset($_POST['submit'])) 
{

    
$nombre =$_POST["nombre"];
    
$email =$_POST["email"];
    
$contenido $_POST["contenido"];
    
$error "";
    if(empty(
$nombre))
    {
        
$error .= "Nombre <br>";
    }
    
    if(empty(
$email))
    {
        
$error .= "email <br>";
    }
    
    if(empty(
$contenido))
    {
        
$error .= "mensaje <br>";
    }
    
    if(!empty(
$error))
    {
        echo 
"por favor, rellena los siguientes campos:<br>".$error;
        
    }
    else
    {
        
$nombre $_POST['nombre'];
           
$email $_POST['email'];
        
$para $_POST['para'];
        
$asunto $_POST['asunto'];      
        
$contenido $_POST['contenido'];      
  
      
$para='[email protected]';
      
$asunto 'formulario contacto';
      
$contenido=$contenido." <br><br>Correo: ".$email." <br>Nombre: ".$nombre;

$headers 'MIME-Version: 1.0' "\r\n";
$headers .= 'Content-type:text/html; charset=utf-8' '\r\n';
  
//dirección del remitent
$headers .= 'From:' .$email '\r\n';

if(
mail($para$asunto$contenido,$headers))
{
    
$nombre "";
    
$email "";
    
$contenido="";
    
$mensaje "mensaje enviado";
}

}

}

?>
y ahora el codigo me va bien para los caracteres latinos usando el mozilla firefox para pc. pero en el imac de mi amigo que es el que va a usar el formulario con este mismo script no le aparecen los caracteres latinos.

que estoy haciendo mal?

Etiquetas: fallo, formulario, funcion, html, mail
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:32.