Foros del Web » Programando para Internet » PHP »

Mejorar Formulario que retorna mensaje al usuario

Estas en el tema de Mejorar Formulario que retorna mensaje al usuario en el foro de PHP en Foros del Web. Hola tengo un formulario aquí http://www.websalvador.com/ esta en el pie de página, trabaja con captcha, bueno el formulario trabaja bien solo que me han pedido ...
  #1 (permalink)  
Antiguo 03/08/2011, 09:50
Avatar de WebSalvador  
Fecha de Ingreso: agosto-2011
Ubicación: Lima - Perú
Mensajes: 171
Antigüedad: 13 años, 3 meses
Puntos: 2
Mejorar Formulario que retorna mensaje al usuario

Hola tengo un formulario aquí http://www.websalvador.com/ esta en el pie de página, trabaja con captcha, bueno el formulario trabaja bien solo que me han pedido algunas mejoras.

1º Me piden que en el mensaje que llega a la empresa se especifique el nº ip y el país de donde se envía el correo.

2º Me han pedido que se envié un mensaje al correo del usuario diciéndole que en breve le contestaremos a su consulta.

3º Al lado de captcha hay un botón que refresca el captcha, digamos que el usuario refresca tres veces el captcha, y después se equivoca en poner correctamente su correo, saldrá un mensaje que dirá que hay un error en la escritura del correo, pero como anteriormente refresco el captcha tres veces el mensaje se repetirá tres veces también.

El formulario funciona de la siguiente manera: los datos que se escriben en el formulario primeramente son validados por un archivo js "c-validar-formulario.js" (aquí para su descarga http://www.websalvador.com/captcha/c-validar-formulario.js), si esta ok los datos son enviados a un ajax que le permite validar el captcha "captcha/c-funciones-index.js" (aquí para su descarga http://www.websalvador.com/captcha/c-funciones-index.js), si el captcha esta ok entonces estos datos se envian al php que enviará el correo, este es mi código:
Código PHP:
<?
    session_start
();
    
    include(
"geoiploc.php");//Este archivo lo descargue que me permite por el ip saber el país
    
$direccion_ip $_SERVER['REMOTE_ADDR'];//obtengo el ip 
    
$ipcliente.=" ".$direccion_ip;
    
$paiscliente=getCountryFromIP($direccion_ip" NamE ");//determino el país
    
$correoclienteutf8_decode($_POST['Correo']);//correo del usuario
    
$email_principal     '[email protected]';
    
$email_secundarios     $correocliente;
    
error_reporting(0);
    include(
"class/captchaZDR.php");
    
$eol="\r\n";
    
$enter="<br />";
    
$capt = new captchaZDR;
    
    if(isset(
$_POST['Submit']) and $capt->check_result()){        
        
$message_send "En breve daremos respuesta a su consulta".$enter.$enter.$enter.
        
"Mensaje enviado".$enter."------------------".$enter.$enter.      
        
"Nombre: ".utf8_decode($_POST['Nombre']).$enter.
        
"E-mail: ".utf8_decode($_POST['Correo']).$enter.
        
"Telefono: ".utf8_decode($_POST['Telefono']).$enter.
        
"Ip: ".utf8_decode($ipcliente).$enter.
        
"Pa&iacute;s: ".utf8_decode($paiscliente).$enter.
        
"Url Web: ".utf8_decode($_POST['Pagina']).$enter;
        
        
$headers .= 'From: '.utf8_decode($_POST['Nombre']).'<'.utf8_decode($_POST['Correo']).'>'.$eol;
        
$headers .= "CC: ".$email_secundarios.$eol;
        
$headers .= "Reply-To: ".$mail."".$eol;
        
$headers .= "Return-Path: ".$mail."".$eol;
        
$headers .= "Message-ID: <".time()."-".$para.">".$eol;
        
$headers .= "X-Mailer: PHP v".phpversion().$eol;
        
$headers .= "MIME-Version: 1.0".$eol;
        
$headers .= "Content-type: text/html; charset=iso-8859-1;".$eol.$eol;

        if(
mail($email_principal'SWS Studio Web Salvador' $message_send$headers))
            echo 
'<div style="color: white; font-size:12px">Gracias por sus comentarios.</div>';
        else 
            echo 
'<div style="color: red">Hubo un problema. Intentelo de nuevo.</div>';  
        } 
    
    else{if(isset(
$_POST['Submit']) and (!$capt->check_result()) ) 
        echo 
'<div style="color: red">Intente de nuevo. Actualizar</div>';
    }
?>
Ya pude resolver lo de determinar el ip y país del usuario como ven en mi código mediante "geoiploc.php" que lo pueden bajar de internet.

Para lo de enviar un mensaje al usuario, le envio el mensaje con CC, pero hay algo extraño, tal como esta mi código he probado que en mi correo de gmail llega a la bandeja principal y a hotmail a mi bandeja de spam, pero haciendo prueba si coloco una cuenta de hotmail directo así: $email_secundarios = '[email protected]'; Esto hace que el mensaje en hotmail llegue a la bandeja principal y en gmail como spam. Yo deseo que llegue en ambos casos a la bandeja principal, como puedo hacerlo, espero su ayuda aquí.

Ahora quisiera saber si de alguna manera puedo hacer que a la empresa le llegue el numero ip en el mensaje y al usuario no, si no se puede no hay problema.

Por ultimo no se como puedo hacer para que no me salga según el numero de refrescadas del captcha el mensaje de error que valida el cptcha puse los enlaces de descarga par que me den una mano.

Muchas gracias de antemano, gracias.

Última edición por WebSalvador; 03/08/2011 a las 09:58
  #2 (permalink)  
Antiguo 03/08/2011, 09:59
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Mejorar Formulario que retorna mensaje al usuario

Creo que tus dos primeros problemas se arreglarían si enviaras dos correos en vez de uno. El primero se lo envías al destinatario de la empresa con el texto que quieras y el segundo al usuario con el texto que quieras.

El tercer problema se lo dejo a los demás, aunque me parece un poco geta preguntar tantas cosas, cuando a ti te pagarán por dicho trabajo, pero bueno, si te quieren responder, lo harán.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 03/08/2011, 10:05
Avatar de WebSalvador  
Fecha de Ingreso: agosto-2011
Ubicación: Lima - Perú
Mensajes: 171
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Mejorar Formulario que retorna mensaje al usuario

Hola Vgonga1986 gracias por tu respuesta bueno como quiero evitar cambiar tanto código ya no enviaré el ip ya que como el nombre del país basta, pero me puedes ayudar a entender si es que tienes la información por que llega el mensaje en algunos casos como spam a hotmail y a gmail, gracias
  #4 (permalink)  
Antiguo 03/08/2011, 14:29
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 8 meses
Puntos: 253
Respuesta: Mejorar Formulario que retorna mensaje al usuario

Buenas,

El tema de que envíe como spam o no no creo que tenga nada que ver con PHP, serán configuraciones propias de los diferentes proveedores de correo.

De todas formas, échale un ojo a PHP Mailer, tiene muchas más opciones que la función básica de mail(), lo que no sé decirte si tiene algo para el tema del spam.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Etiquetas: ajax, captcha, correo, spam, 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 13:05.