Foros del Web » Programando para Internet » PHP »

Corregir acentos en el form

Estas en el tema de Corregir acentos en el form en el foro de PHP en Foros del Web. Hola a todos: Les agradecería si me pudiecen ayudar en lo siguiente: Tengo un formulario con .php, cuando se envia los textos con acentos, éste ...
  #1 (permalink)  
Antiguo 30/08/2004, 11:10
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Corregir acentos en el form

Hola a todos:
Les agradecería si me pudiecen ayudar en lo siguiente:
Tengo un formulario con .php, cuando se envia los textos con acentos, éste llegan mal, habrá alguna forma de corregir este problema?

Saludos.

Bandido.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #2 (permalink)  
Antiguo 01/09/2004, 08:18
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 3 meses
Puntos: 1
Explicación exacta

Saludos.

Cuando llegan los textos a donde??

Cómo los estas enviando??

Cual es el código con los que trabajas esos textos??

Quieres quitar los caracteres acentuados??
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #3 (permalink)  
Antiguo 01/09/2004, 09:33
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
¿Llegan en el formato de HTML? http://ve.php.net/manual/es/function.str-replace.php con esa función puedes hacer que PHP convierta desde el standard HTML a normal.
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #4 (permalink)  
Antiguo 01/09/2004, 19:15
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Hola José_Molina y drcyber:
Gracias por responder.
El problema es que cuando me escriben usando palabras acentuadas y al recibir el mensaje en mi correo, este llega mal, o sea, no reconoce los acentos, lo que deseo es que se muestren bien los acentos, hay algún código que se deba poner para haga esto?
Este código tengo en el archivo .php:
<?php
if ($sendmail){
$time= date ("l dS of F Y h:i:s A");
$mensaje.= "Fecha: $time\n";
$headers= "From: $nombre<$email>\n";
$mensaje= "Mensaje de formulario de contacto:\n\n";
$mensaje.= "Nombre: $nombre\n";
$mensaje.= "E-mail: $email\n";
$mensaje.= "Comentario: $comentarios\n";
$destinatario= "[email protected]";
$asunto= "Formulario de contacto";
mail($destinatario,$asunto,$mensaje,$headers);
}
?>

Saludos.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #5 (permalink)  
Antiguo 01/09/2004, 20:43
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
Hombre por dios!... ¿podrias poner un ejemplo?... ¿a qué te refieres con que llegan "mal" los acentos? Explícate... de lo contrario es imposible que te ayudemos.
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #6 (permalink)  
Antiguo 01/09/2004, 20:57
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Hola drcyber:
Cuando escriben en el campo del mensaje por ejemplo la palabra: Acción, al llegar a mi correo aparece así: Acciôn o con una diéresis sobre la letra acentuada.
Ese es el problema, no muestra los acentos como debe de ser.

Saludos
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #7 (permalink)  
Antiguo 01/09/2004, 21:07
Avatar de drcyber  
Fecha de Ingreso: julio-2002
Mensajes: 826
Antigüedad: 21 años, 8 meses
Puntos: 2
¿Has probado visualizando tu correo en otro explorador o en otro cliente de correo?... me parece raro que PHP haga eso. Normalmente convierte los carácteres especiales y las letras acentuadas a HTML, por ejemplo:

& a &amp;
á a &aacute;

etc...
__________________
Dr. Cyber
Ingeniarte.com
(soy el mismo Takitei)
  #8 (permalink)  
Antiguo 01/09/2004, 21:44
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Si, se ha probado en varias cuentas de correo diferentes, pero el problema sigue.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #9 (permalink)  
Antiguo 09/11/2004, 03:18
Avatar de auge  
Fecha de Ingreso: septiembre-2004
Ubicación: Barcelona, Spain
Mensajes: 24
Antigüedad: 19 años, 6 meses
Puntos: 0
el problema es el flash 2004 si lo pruebas con el anterior flash MX te funcionara
  #10 (permalink)  
Antiguo 02/08/2005, 20:13
Avatar de raulvegaartiles  
Fecha de Ingreso: agosto-2005
Mensajes: 13
Antigüedad: 18 años, 8 meses
Puntos: 0
A mi me pasa exactamente igual.

Veo que no solo a mi me pasa esto.
Verán, tengo un formulario php de registro en una página web.
Ese formulario me envía los datos personales del registro a mi correo de webmaster, y a la vez le envía un mensaje de agradecimiento a esa persona a su email.
El problema es el siguiente:
Al igual que a Bandit, cuando este formulario me envía los datos a travéz de mi servidor de internet a mi correo, me manda los carácteres de las vocales acentuadas con signos ilegibles. Como por ejemplo;
Si en el campo "nombre" escriben: Raúl
En mi correo se vería: Raúl (exactamente esto)

- No es el correo electrónico porque lo he probado en muchos y pasa lo mismo.
- No es el Flash, porque no utilizo esta herramienta para mi web.

¿Puede ser la función "mail" en mi formulario?
¿Puede ser la función $sheader=$sheader."Content-Type: text/html";?

Gracias de antemano.
  #11 (permalink)  
Antiguo 03/08/2005, 01:33
Avatar de DvD AdN  
Fecha de Ingreso: mayo-2005
Ubicación: Frente al monitor
Mensajes: 610
Antigüedad: 18 años, 11 meses
Puntos: 0
usen htmlentities();
Te reemplaza todo por su codigo html
y tambien chequen htmlspecialchars();

http://mx2.php.net/manual/es/function.htmlentities.php



Saludos
__________________
Keep f***ing learning
Ask for f***ing help.
Use f***ing spell check.
Think about all the f***ing possibilities.
  #12 (permalink)  
Antiguo 03/08/2005, 10:19
Avatar de raulvegaartiles  
Fecha de Ingreso: agosto-2005
Mensajes: 13
Antigüedad: 18 años, 8 meses
Puntos: 0
Como utilizo esta función??

He estado estudiando el link que nos has pasado, pero,
¿Donde y Como utilizo esta función?
¿Dentro del Form?
¿Una vez enviado los mensajes por email?
Tengo lo siguente:
-------------------------------------------------
AQUI VA EL FORM CON LOS CAMPOS::
NOMBRE:
TELEFONO:
EMAIL:
CHECKBOX:
COMENTARIO:
---------------------------------------------------
Código PHP:
 <?

}else{ 
    
// Compongo el cuerpo del formulario para enviarme por correo
    
$cuerpo "<p><b>Formulario Recibido\n</b>"
    
$cuerpo .= "<p><b>Nombre: </b>" $HTTP_POST_VARS["nombre"] . "\n";
    
$cuerpo .= "<p><b>Telefono: </b>" $HTTP_POST_VARS["tlf"] . "\n";
    
$cuerpo .= "<p><b>Email: </b>" $HTTP_POST_VARS["email"] . "\n";
    
$cuerpo .= "<p><b>Boletin: </b>" $HTTP_POST_VARS["boletin"] . "\n"
    
$cuerpo .= "<p><b>Comentarios: </b>" $HTTP_POST_VARS["coment"] . "\n"
    
    
// Determino los correos a los que debo mandar los datos
    
$mail .= $HTTP_POST_VARS["email"] . "\n";
    
$parami="[email protected]";
   
    
// Determino el remitente para el correo automatico
    
$sfrom="micorreo@micorreo"//Remitente
    
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n"// Configuracion
    
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
    
$sheader=$sheader."Mime-Version: 1.0\n";
    
$sheader=$sheader."Content-Type: text/html";
    
    
    
// Elaboro el cuerpo del mensaje para el correo automatico
    
$mensaje .= "Estimado/a " $HTTP_POST_VARS["nombre"] . "," "\n";
    
$mensaje .= "<p><b>Le damos las gracias por enviarnos su solicitud." "\n";

    
// Me mando el formulario por correo... 
    
mail($parami,"Formulario Recibido",$cuerpo,$sheader);
    
    
// Mando el Correo de respuesta Automática...
    
mail($mail,"Gracias",$mensaje,$sheader);

    
// Doy las gracias por el envío en la pagina...
    
$mensaje2 .= "Estimado/a " $HTTP_POST_VARS["nombre"] . "," "\n";
    echo 
"<p>";
    echo 
$mensaje2;
    echo 
"<p>Le damos las gracias por rellenar el formulario. Se ha enviado correctamente.
    Revise su e-mail, se ha enviado un mensaje de agradecimiento."


?>
Donde demonios pongo el htmlentities();???
Ya tengo puesto en el HEAD
Código PHP:
<META http-equiv=Content-Type content="text/html; charset=utf-8"
¿Por qué no funciona los acentos?

Última edición por raulvegaartiles; 03/08/2005 a las 18:54
  #13 (permalink)  
Antiguo 03/08/2005, 16:02
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por raulvegaartiles
Ya tengo puesto en el HEAD
<META http-equiv=Content-Type content="text/html; charset=utf-8">
¿Por qué no funciona los acentos?
... prueba con:
Código HTML:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
Cita:
Iniciado por raulvegaartiles
¿Donde y Como utilizo esta función?
¿Dentro del Form?
¿Una vez enviado los mensajes por email?
Dentro del FORM(ulario?) no puedes pués apenas se van a escribir los datos (recuerda que PHP trabaja del lado del servidor); una vez enviado el correo... pués ya lo enviaste, ya no está en tus manos... por eliminación: a el recibir.

Sería algo como:
Código PHP:
    $cuerpo .= "<p><b>Comentarios: </b>" htmlentities($HTTP_POST_VARS["coment"]) . "\n"
.

>> Se te agradecería iluminaras tu código usando las etiquetas [ PHP] y [ /PHP] (sin espacios): http://forosdelweb.com/misc.php?do=bbcode#code

Un saludo!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #14 (permalink)  
Antiguo 03/08/2005, 18:23
Avatar de raulvegaartiles  
Fecha de Ingreso: agosto-2005
Mensajes: 13
Antigüedad: 18 años, 8 meses
Puntos: 0
Sonrisa Me funciona perfectamente.

Gracias, lo he probado y me funciona.

El
Código PHP:
htmlentities 
lo he colocado como me has dicho y he cambiado:
Código PHP:
<META http-equiv=Content-Type content="text/html; charset=utf-8"por <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
Espero que estas aclaraciones no solo me solucionen el problema a mi solo.
1 Saludo.

Última edición por raulvegaartiles; 03/08/2005 a las 18:50
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 05:04.