Foros del Web » Programando para Internet » PHP »

URGENTE Ayuda con formulario

Estas en el tema de URGENTE Ayuda con formulario en el foro de PHP en Foros del Web. Hola , bueno de antemano gracias por su ayuda . Mi problema es que tengo un formulario pero cuando alguien lo llena y lo envía ...
  #1 (permalink)  
Antiguo 21/02/2011, 22:30
 
Fecha de Ingreso: julio-2009
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
URGENTE Ayuda con formulario

Hola , bueno de antemano gracias por su ayuda . Mi problema es que tengo un formulario pero cuando alguien lo llena y lo envía a mi correo , este me llega cortado cuando alguien escribe un acento ó una Ñ . =O (

Que puedo hacer , no sé mucho de esto. les mando mi php para que me ayuden o me digan que puedo hacer.

GRACIAS.

<?

//Estoy recibiendo el formulario, compongo el cuerpo


$cuerpo = "Formulario de contacto\n";
$cuerpo .= "Nombre: " . $_POST[nombre] . "\n";
$cuerpo .= "Apellidos: " . $_POST[apellidos] . "\n";
$cuerpo .= "Telefono: " . $_POST[telefono] . "\n";
$cuerpo .= "Dia de visita: " . $_POST[dia] . "\n";
$cuerpo .= "Comentarios: " . $_POST[comentarios] . "\n";

/* INICIO SECCION A COPIAR */
$De = ' Empresa';
$MailDe = '[email protected]';
$Asunto = 'Registro';
$Cuerpo = $cuerpo;
$Para = '[email protected]';

require("mail/mail.php");

if(Enviar($De,$MailDe,$Asunto,$Cuerpo,$Para)){
header ("location: suscrito.htm");
//echo 'E-mail enviado!';
}else{
echo 'Error en el envio.';
}
  #2 (permalink)  
Antiguo 21/02/2011, 22:34
Avatar de solrakmnk  
Fecha de Ingreso: febrero-2011
Ubicación: Mexico
Mensajes: 23
Antigüedad: 13 años, 1 mes
Puntos: 3
Respuesta: URGENTE Ayuda con formulario

Hola, pues podrias usar la funcion replace para sustituir por ejemplo al enie con &ntilde;
  #3 (permalink)  
Antiguo 21/02/2011, 22:38
 
Fecha de Ingreso: julio-2009
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

Perdon pero como te comento , no entiendo mucho de lo que me hablas , de hecho estoy aprendiendo este formulario me lo pasaron amablemente pero ahora que lo veo y que lo pruebo tiene este pequeño problemita.

Podrías ayudarme un poco mas con esto que me dices?

Gracias!
  #4 (permalink)  
Antiguo 21/02/2011, 22:59
 
Fecha de Ingreso: noviembre-2003
Ubicación: Chihuahua
Mensajes: 17
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

htmlentities podria corregir tu problema, prueba con esto a ver que tal....
Código:
foreach($_POST as $key => $value){
$_POST[$key]=htmlentities($value);
}

$cuerpo = "Formulario de contacto\n";
$cuerpo .= "Nombre: " . $_POST[nombre] . "\n";
$cuerpo .= "Apellidos: " . $_POST[apellidos] . "\n"; 
$cuerpo .= "Telefono: " . $_POST[telefono] . "\n";
$cuerpo .= "Dia de visita: " . $_POST[dia] . "\n";
$cuerpo .= "Comentarios: " . $_POST[comentarios] . "\n"; 

/* INICIO SECCION A COPIAR */
$De = ' Empresa'; 
$MailDe = '[email protected]'; 
$Asunto = 'Registro'; 
$Cuerpo = $cuerpo; 
$Para = '[email protected]';

require("mail/mail.php");

if(Enviar($De,$MailDe,$Asunto,$Cuerpo,$Para)){
header ("location: suscrito.htm");
//echo 'E-mail enviado!';
}else{
echo 'Error en el envio.';
}
  #5 (permalink)  
Antiguo 21/02/2011, 23:32
 
Fecha de Ingreso: julio-2009
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

Utilizando las variables que me diste MISERO9000000000 , me arroja estos resultados

Formulario de contacto
Nombre: Jos&eacute; Arturo
Apellidos: Ru&iacute;z Zavala
Telefono:
Dia de visita: Domingo
Comentarios: &iquest;Qu&eacute; costos manejan?


Que podré hacer para que aparezcan los acentos y las ñ ?


Muchas Gracias por la ayuda al menos ahora aparecen estos caracteres antes si escribia un acento no me aparecia nada. =O (
  #6 (permalink)  
Antiguo 21/02/2011, 23:51
 
Fecha de Ingreso: noviembre-2003
Ubicación: Chihuahua
Mensajes: 17
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

quizá te falte definir la codificación de caracteres que se pondría al inicio del archivo de esta manera.
Código:
header("Content-Type: text/html; charset=iso-8859-1");
prueba quitando el htmlentities y probando con algo así.
  #7 (permalink)  
Antiguo 22/02/2011, 00:04
 
Fecha de Ingreso: noviembre-2003
Ubicación: Chihuahua
Mensajes: 17
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

El problema esta en las codificaciones. Este me funciono a mi. Saludos.
Código:
header("Content-Type: text/html; ISO-8859-1");

foreach($_POST as $key => $value){
$_POST[$key]=htmlentities($value,ENT_COMPAT,'ISO-8859-1');
}

$cuerpo = "Formulario de contacto\n";
$cuerpo .= "Nombre: " . $_POST[nombre] . "\n";
$cuerpo .= "Apellidos: " . $_POST[apellidos] . "\n"; 
$cuerpo .= "Telefono: " . $_POST[telefono] . "\n";
$cuerpo .= "Dia de visita: " . $_POST[dia] . "\n";
$cuerpo .= "Comentarios: " . $_POST[comentarios] . "\n"; 

/* INICIO SECCION A COPIAR */
$De = ' Empresa'; 
$MailDe = '[email protected]'; 
$Asunto = 'Registro'; 
$Cuerpo = $cuerpo; 
$Para = '[email protected]';

require("mail/mail.php");

if(Enviar($De,$MailDe,$Asunto,$Cuerpo,$Para)){
header ("location: suscrito.htm");
//echo 'E-mail enviado!';
}else{
echo 'Error en el envio.';
}
  #8 (permalink)  
Antiguo 22/02/2011, 00:06
 
Fecha de Ingreso: julio-2009
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

Mmm ya lo puse pero me sigue arrojando el mismo resultado:

Formulario de contacto
Nombre: Jos&eacute; Arturo
Apellidos: Ru&iacute;z Zavala
Telefono:
Dia de visita: Domingo
Comentarios: &iquest;Qu&eacute; costo manejan?

Asi quedo mi codigo:

<?

//Estoy recibiendo el formulario, compongo el cuerpo

header("Content-Type: text/html; charset=iso-8859-1");

foreach($_POST as $key => $value){
$_POST[$key]=htmlentities($value);
}

$cuerpo = "Formulario de contacto\n";
$cuerpo .= "Nombre: " . $_POST[nombre] . "\n";
$cuerpo .= "Apellidos: " . $_POST[apellidos] . "\n";
$cuerpo .= "Telefono: " . $_POST[telefono] . "\n";
$cuerpo .= "Dia de visita: " . $_POST[dia] . "\n";
$cuerpo .= "Comentarios: " . $_POST[comentarios] . "\n";


Será que debe ser UTF-8 ? por ahi leí algo de eso .. =O (

Gracias MISERO90000000000000
  #9 (permalink)  
Antiguo 22/02/2011, 00:19
 
Fecha de Ingreso: noviembre-2003
Ubicación: Chihuahua
Mensajes: 17
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

podrias poner el codigo de mail/mail.php... ?
  #10 (permalink)  
Antiguo 22/02/2011, 00:25
 
Fecha de Ingreso: julio-2009
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

Aqui va:

<?php

function Enviar($De,$MailDe,$Asunto,$Cuerpo,$Para){



require_once('mail/phpmailer/class.phpmailer.php');
$Mail = new PHPMailer();
$Mail->PluginDir = 'mail/phpmailer/';
$Mail->SetLanguage("es", 'mail/phpmailer/language/');
$Mail->Mailer = "smtp";
$Mail->Host = "mail.prueba.com"; // SERVIDOR
$Mail->Port = 26; // PUERTO
$Mail->Username = "[email protected]"; // USUARIO
$Mail->Password = "prueba"; // CONTRASEÑA
$Mail->SMTPAuth = true;
$Mail->CharSet = "utf-8";
$Mail->Encoding = "quoted-printable";
$Mail->FromName = $De;
$Mail->From = $MailDe;
$Mail->Subject = $Asunto;
$Mail->Body = $Cuerpo;
$Para = explode(',',$Para);
foreach($Para as $address){
$Mail->AddAddress($address);
}
/** FIN ************************************************/
if($Mail->Send())
return true;
else
return false;
}

?>


ahi está d ehecho dice en este UTF - 8 ... =O S
  #11 (permalink)  
Antiguo 22/02/2011, 00:28
 
Fecha de Ingreso: noviembre-2003
Ubicación: Chihuahua
Mensajes: 17
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

pon esa codificación, lo mas probable es que sea eso.
  #12 (permalink)  
Antiguo 22/02/2011, 00:36
 
Fecha de Ingreso: julio-2009
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

No fue eso . tambien intenre poniendo en el charset del mail.php la codfiicacion que me mandaste osea el iso-8859-1 .. pero tampoco funciono .


Esta raro vdd ?
  #13 (permalink)  
Antiguo 22/02/2011, 00:47
 
Fecha de Ingreso: noviembre-2003
Ubicación: Chihuahua
Mensajes: 17
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

solo faltaria checar la clase phpmailer que esta en mail/phpmailer/class.phpmailer.php
  #14 (permalink)  
Antiguo 22/02/2011, 01:07
 
Fecha de Ingreso: julio-2009
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

YA LO LOGRE !!!! pero ahora surgio otro problema ...

Ahora me aparece en horizontal todo :

Formulario de contacto Nombre: joséfina járed Apellidos: Sanchez Añil Telefono: Dia de visita: Viernes Comentarios: á é í ó ú Ñ ñ !"#$%&/()=?¡'¿\ [}*´++ ¨ u¨ü


Lo que hice fue entrar al php mailer y en content/type .. estába como plain .. lo cambie a HTML.

Pero ps como te digo ahora me sale todo en una sola línea ! = OS

Que puedo hacer para que aparezca acomodado en renglones?

GRACIAS !!!
  #15 (permalink)  
Antiguo 22/02/2011, 01:29
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 15 años, 10 meses
Puntos: 12
Respuesta: URGENTE Ayuda con formulario

agrega esto a tu funcion "Enviar":

Código PHP:
Ver original
  1. $MAIL->IsHTML(true);
  2. $cuerpo = stripslashes ($Cuerpo);
  3. $cuerpo_text = str_replace ('</p>', '
  4.  
  5. ', $cuerpo);
  6. $cuerpo_text = str_replace ('<br>', '
  7. ', $cuerpo_text);
  8. $cuerpo_text = strip_tags ($cuerpo_text);
  9. $MAIL->AltBody = $cuerpo_text;
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #16 (permalink)  
Antiguo 22/02/2011, 01:32
 
Fecha de Ingreso: julio-2009
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

Eso donde dices que va?

En el HTML ? dentro del boton enviar ?


Gracias.
  #17 (permalink)  
Antiguo 22/02/2011, 01:47
 
Fecha de Ingreso: julio-2009
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

Gracias pero ya lo pude arreglar .. me quede pensando que en mi php ... Tenía puesto \n que es para cambiar de linea si no me equivoco .

Pues bien pense .. si estoy poniendo que tome el contenido de mi formulario en HTML .. entonces porque no cambio el \n por el <br> . y que creen? Vuoalaaaaa!

Así me respeto los cambios de línea.

Muchas gracias .. les dejo como quedo mi codigo =O )

<?
//Estoy recibiendo el formulario, compongo el cuerpo
header("Content-Type: text/html; charset=iso-8859-1");

foreach($_POST as $key => $value){
$_POST[$key]=htmlentities($value,ENT_COMPAT,'ISO-8859-1');
}


$cuerpo = "Formulario de contacto <br>";
$cuerpo .= "Nombre: " . $_POST[nombre] . "<br>";
$cuerpo .= "Apellidos: " . $_POST[apellidos] . "<br>";
$cuerpo .= "Telefono: " . $_POST[telefono] . "<br>";
$cuerpo .= "Dia de visita: " . $_POST[dia] . "<br>";
$cuerpo .= "Comentarios: " . $_POST[comentarios] . "<br>";


MISERO9000000 Muchas Gracias por tu ayuda en verdad !

Xalupeo . tambien gracias creo que entendí que debía agregar lo que me pasaste dentro del php mailer .. pero no creía que fuera esa la solución.


Muchas Gracias .. si pudieran recomendarme algun tutorial para aprender php completamente .. aunque comience de lo basico , pero me gustaría tambien crear un formulario con validacion y con Captcha pero desde cero.

GRACIAS comunidad.
  #18 (permalink)  
Antiguo 22/02/2011, 01:48
 
Fecha de Ingreso: noviembre-2003
Ubicación: Chihuahua
Mensajes: 17
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: URGENTE Ayuda con formulario

prueba con estos cambios a tu mensaje:
Código:
$cuerpo = "Formulario de contacto\n";
$cuerpo .= "<br>Nombre: " . $_POST[nombre] . "\n";
$cuerpo .= "<br>Apellidos: " . $_POST[apellidos] . "\n"; 
$cuerpo .= "<br>Telefono: " . $_POST[telefono] . "\n";
$cuerpo .= "<br>Dia de visita: " . $_POST[dia] . "\n";
$cuerpo .= "<br>Comentarios: " . $_POST[comentarios] . "\n";
edit: a que bien xD no me fije que ya habias solucionado, en fin saludos. http://phpya.com.ar/ ahí hay un manual sencillo.

Etiquetas: formulario
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 01:45.