Formulario de contacto problema

  • Slowm
  • Born
  • Born
  • No Avatar
  • Registrado: Oct 01, 2012
  • Mensajes: 3
  • Status: Offline

Nota Octubre 1st, 2012, 4:00 pm

Hola, Ive intentó aplicar un formulario de contacto a mi sitio Web y todo parece estar funcionando perfectamente. Puedo escribir y enviar mensajes, pero yo no puedo recibirlos.
¿Puede decirme si hay algo mal con el código?

Les proporciono el código original sin modificaciones hechas por mí. Y gracias por su tiempo valioso y respuestas!:)

Este es el código HTML
Código: [ Select ]
<form id="contact" action="#">
             <fieldset>
               <label for="name" id="name_label">Your User Name: <span class="required">*</span></label>
               <input type="text" name="name" id="name" size="50" value="" class="text-input" />
               <label for="email" id="email_label">Your Email Address: <span class="required">*</span></label>
               <input type="text" name="email" id="email" size="50" value="" class="text-input" />
               <label for="subject" id="subject_label">Subject</label>
               <input type="text" name="subject" id="subject" value="" class="text-input" />
               <label for="msg" id="msg_label">Your Message: <span class="required">*</span></label>
               <textarea cols="60" rows="10" name="msg" id="msg" class="text-input"></textarea>
               <br />
               <input type="submit" name="submit" class="button" id="submit_btn" value="Send Message &rarr;"/><br class="clear" />
             <span class="error" id="name_error">Please enter name !</span>
             <span class="error" id="email_error">Please enter email address !</span>
             <span class="error" id="email_error2">Please enter valid email address !</span>
             <span class="error" id="msg_error">Please enter message !</span>
             </fieldset>
            </form>
          </div>
  1. <form id="contact" action="#">
  2.              <fieldset>
  3.                <label for="name" id="name_label">Your User Name: <span class="required">*</span></label>
  4.                <input type="text" name="name" id="name" size="50" value="" class="text-input" />
  5.                <label for="email" id="email_label">Your Email Address: <span class="required">*</span></label>
  6.                <input type="text" name="email" id="email" size="50" value="" class="text-input" />
  7.                <label for="subject" id="subject_label">Subject</label>
  8.                <input type="text" name="subject" id="subject" value="" class="text-input" />
  9.                <label for="msg" id="msg_label">Your Message: <span class="required">*</span></label>
  10.                <textarea cols="60" rows="10" name="msg" id="msg" class="text-input"></textarea>
  11.                <br />
  12.                <input type="submit" name="submit" class="button" id="submit_btn" value="Send Message &rarr;"/><br class="clear" />
  13.              <span class="error" id="name_error">Please enter name !</span>
  14.              <span class="error" id="email_error">Please enter email address !</span>
  15.              <span class="error" id="email_error2">Please enter valid email address !</span>
  16.              <span class="error" id="msg_error">Please enter message !</span>
  17.              </fieldset>
  18.             </form>
  19.           </div>


Se trata de la JS
Código: [ Select ]
jQuery(function() {
 jQuery('.error').hide();
 var messagetext = jQuery("textarea#msg");
 messagetext.focusout(function(){
        if (messagetext.val() == ''){messagetext.text('Message'); }
 });
 messagetext.focus(function(){
        if (messagetext.val() == 'Message') {messagetext.text(''); }                     
 });
 jQuery(".button").click(function() {
        // validate and process form
        // first hide any error messages
  jQuery('.error').hide();
     var name = jQuery("input#name").val();
        if (name=="Name" || name == "") {
   jQuery("span#name_error").show();
   jQuery("input#name").focus();
   return false;
  }
     var email = jQuery("input#email").val();
     if (email == "Email" || email == "") {
   jQuery("span#email_error").show();
   jQuery("input#email").focus();
   return false;
  }
    
    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    if(!emailReg.test(email)) {
    jQuery("span#email_error2").show();
  jQuery("input#email").focus();
   return false;
    }
    
     var subject = jQuery("input#subject").val();

     var msg = jQuery("textarea#msg").val();
     if (msg == "Message" || msg == "") {
     jQuery("span#msg_error").show();
     jQuery("textarea#msg").focus();
     return false;
  }
        
        var dataString = 'name='+ name + '&email=' + email + '&subject=' + subject + '&msg=' + msg;
        //alert (dataString);return false;
        
     jQuery.ajax({
   type: "POST",
   url: "process.php",
   data: dataString,
   success: function() {
    jQuery('#contactform').html("<div id='message'></div>");
    jQuery('#message').html("<b>Contact Form Submitted!</b>")
    .append("<p>We will be in touch soon.</p>")
    .hide()
    .fadeIn(1500, function() {
     jQuery('#message');
    });
   }
   });
  return false;
    });
});
  1. jQuery(function() {
  2.  jQuery('.error').hide();
  3.  var messagetext = jQuery("textarea#msg");
  4.  messagetext.focusout(function(){
  5.         if (messagetext.val() == ''){messagetext.text('Message'); }
  6.  });
  7.  messagetext.focus(function(){
  8.         if (messagetext.val() == 'Message') {messagetext.text(''); }                     
  9.  });
  10.  jQuery(".button").click(function() {
  11.         // validate and process form
  12.         // first hide any error messages
  13.   jQuery('.error').hide();
  14.      var name = jQuery("input#name").val();
  15.         if (name=="Name" || name == "") {
  16.    jQuery("span#name_error").show();
  17.    jQuery("input#name").focus();
  18.    return false;
  19.   }
  20.      var email = jQuery("input#email").val();
  21.      if (email == "Email" || email == "") {
  22.    jQuery("span#email_error").show();
  23.    jQuery("input#email").focus();
  24.    return false;
  25.   }
  26.     
  27.     var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
  28.     if(!emailReg.test(email)) {
  29.     jQuery("span#email_error2").show();
  30.   jQuery("input#email").focus();
  31.    return false;
  32.     }
  33.     
  34.      var subject = jQuery("input#subject").val();
  35.      var msg = jQuery("textarea#msg").val();
  36.      if (msg == "Message" || msg == "") {
  37.      jQuery("span#msg_error").show();
  38.      jQuery("textarea#msg").focus();
  39.      return false;
  40.   }
  41.         
  42.         var dataString = 'name='+ name + '&email=' + email + '&subject=' + subject + '&msg=' + msg;
  43.         //alert (dataString);return false;
  44.         
  45.      jQuery.ajax({
  46.    type: "POST",
  47.    url: "process.php",
  48.    data: dataString,
  49.    success: function() {
  50.     jQuery('#contactform').html("<div id='message'></div>");
  51.     jQuery('#message').html("<b>Contact Form Submitted!</b>")
  52.     .append("<p>We will be in touch soon.</p>")
  53.     .hide()
  54.     .fadeIn(1500, function() {
  55.      jQuery('#message');
  56.     });
  57.    }
  58.    });
  59.   return false;
  60.     });
  61. });


El PHP
Código: [ Select ]
<?php
$emailTo = 'your mail adress';
$subject = 'Template Contact Form';
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$msg=$_REQUEST['msg'];

$body = "Name: $name \n\nEmail: $email \n\nMessage: $msg";
$headers = 'From: '.$name.' <'.$email.'>' . "\r\n" . 'Reply-To: ' . $email;

mail($emailTo, $subject, $body, $headers);
?>
  1. <?php
  2. $emailTo = 'your mail adress';
  3. $subject = 'Template Contact Form';
  4. $name=$_REQUEST['name'];
  5. $email=$_REQUEST['email'];
  6. $msg=$_REQUEST['msg'];
  7. $body = "Name: $name \n\nEmail: $email \n\nMessage: $msg";
  8. $headers = 'From: '.$name.' <'.$email.'>' . "\r\n" . 'Reply-To: ' . $email;
  9. mail($emailTo, $subject, $body, $headers);
  10. ?>
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Octubre 1st, 2012, 4:00 pm

  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Octubre 1st, 2012, 6:42 pm

¿Cuál es el código para process.php?
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Slowm
  • Born
  • Born
  • No Avatar
  • Registrado: Oct 01, 2012
  • Mensajes: 3
  • Status: Offline

Nota Octubre 1st, 2012, 7:29 pm

Bogey escribió:
¿Cuál es el código para process.php?

Hola madera.
Por favor, perdóname, me olvidé totalmente de pegar el código php. Ive había actualizado el post original con dicho código.
Gracias por señalar mi error!
  • Pbpixels
  • Novice
  • Novice
  • Avatar de Usuario
  • Registrado: May 23, 2012
  • Mensajes: 17
  • Status: Offline

Nota Octubre 3rd, 2012, 2:51 am

Hey Slowm, en mi sitio Web puede realmente crear su propio formulario de contacto con un sistema de cms, si te gusta usted puede probarlo, tiene una contraseña pero mandarme un MP Si quiere, entonces puedo dar a usted:)
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Octubre 6th, 2012, 8:44 am

Perdón por la larga espera de mi respuesta...no recibió en el equipo durante días y estaba navegando en el foro en mi iPhone. Mucho más fáciles de responder a este tipo de preguntas en un teclado y una pantalla más grande:)

PHP Código: [ Select ]
<?php
$emailTo = 'your mail adress';
$subject = 'Template Contact Form';
$name=$_REQUEST['name'];
$email=$_REQUEST['email'];
$msg=$_REQUEST['msg'];
 
$body = "Name: $name \n\nEmail: $email \n\nMessage: $msg";
$headers = 'From: '.$name.' <'.$email.'>' . "\r\n" . 'Reply-To: ' . $email;
 
mail($emailTo, $subject, $body, $headers);
?>
  1. <?php
  2. $emailTo = 'your mail adress';
  3. $subject = 'Template Contact Form';
  4. $name=$_REQUEST['name'];
  5. $email=$_REQUEST['email'];
  6. $msg=$_REQUEST['msg'];
  7.  
  8. $body = "Name: $name \n\nEmail: $email \n\nMessage: $msg";
  9. $headers = 'From: '.$name.' <'.$email.'>' . "\r\n" . 'Reply-To: ' . $email;
  10.  
  11. mail($emailTo, $subject, $body, $headers);
  12. ?>


Veo una serie de problemas con que se forman allí. Voy a enumerarlos abajo para usted.
  1. El código PHP no es muy seguro. De hecho, su no seguro en absoluto.
    1. Usa $_REQUEST para recuperar los datos del formulario.
      • Supongo que no puede realmente importa para el correo desde su no cambiar las bases de datos ni nada parecido, pero solía Ive crecido $_POST y supongo que sería equivocado decir a otros que nada está mal, pero su mejor práctica no uso $_REQUEST y utilice cualquiera $_GET o $_POST de que recomiendo este último.
    2. No se esteriliza la entrada del usuario.
      • Se trata de un grande. Porque no están haciendo esto, el usuario puede manipular el código para hacer lo que no espera que hagan. Entrada unsanitized realmente podría causar problemas. Nunca, nunca, nunca confiar en los usuarios de la web...no esperan lo mejor de la gente cuando se trata de internet.
      • Para esterilizar, suelen usar preg_match para asegurarse de que toda la información introducida por el usuario esté limpio de datos insalubres. Mal ayudarle con esto un poco más tarde.
  2. No están comprobando si los campos son de campo.
    • Esto significa que ninguno de los campos son necesario y que usted podría conseguir un montón de mensajes de correo electrónico en blanco. ¿No realmente desea que usted? Sólo comprobar si un campo está vacío y su vacío, a continuación, detener la secuencia de comandos desde el envío de correo electrónico y dar al usuario un mensaje de error.
  3. Usando correo función está muy bien en la mayoría de los casos. Me gusta usar SMTP, como da (o parece dar) más control sobre el proceso de envío del correo electrónico. Y me gusta las clases de SMTP sobre la función de correo porque la función de correo nunca ha funcionado para mí:lol:


Encontré la siguiente función en w3schools utilizar para desinfectar y validar una dirección de correo electrónico. Ive nunca antes utilizado (no se han codificado por un tiempo) pero parece que sería buena práctica para empezar a usarlo. Me gustaría obtener una oportunidad para probar esta función un poco por mí mismo y ver cómo funciona, pero Im no en mi equipo y no quiero empezar a descargar cosas de este equipo Im préstamos (cosas como WAMP, Notepad ++, etc.).
PHP Código: [ Select ]
function spamcheck($field)
{
    // filter_var() sanitizes the e-mail
    // address using FILTER_SANITIZE_EMAIL
    $field = filter_var($field, FILTER_SANITIZE_EMAIL);
 
    // filter_var() validates the e-mail
    // address using FILTER_VALIDATE_EMAIL
    if(filter_var($field, FILTER_VALIDATE_EMAIL))
    {
        return true;
    }
    else
    {
        return false;
    }
}
  1. function spamcheck($field)
  2. {
  3.     // filter_var() sanitizes the e-mail
  4.     // address using FILTER_SANITIZE_EMAIL
  5.     $field = filter_var($field, FILTER_SANITIZE_EMAIL);
  6.  
  7.     // filter_var() validates the e-mail
  8.     // address using FILTER_VALIDATE_EMAIL
  9.     if(filter_var($field, FILTER_VALIDATE_EMAIL))
  10.     {
  11.         return true;
  12.     }
  13.     else
  14.     {
  15.         return false;
  16.     }
  17. }


Aquí es un código muy muy simplista para comprobar si se rellena el campo. No se detiene el script de enviar el mensaje sin embargo. Puede que desee [url=http://www.ozzu.com/php-tutorials/tutorial-sending-email-via-smtp-t104370.html]comprobar este tutorial a [/ b] sobre el envío de correo electrónico mediante SMTP. Incluso si usted no desea utilizar SMTP, revisa el tutorial de todas formas (al final) porque Im mostrando un ejemplo de un formulario HTML y un procesador de forma correspondiente para lo que va de la clase SMTP doy allí. Pero puede modificarlo para satisfacer sus necesidades...necesita una edición muy poco para que funcione sin SMTP si no desea SMTP. Mal deja esta parte a usted.
PHP Código: [ Select ]
if(empty($field))
{
    echo 'This field is not field in';
}
  1. if(empty($field))
  2. {
  3.     echo 'This field is not field in';
  4. }
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Slowm
  • Born
  • Born
  • No Avatar
  • Registrado: Oct 01, 2012
  • Mensajes: 3
  • Status: Offline

Nota Octubre 16th, 2012, 5:20 pm

Bogey, gracias para señalar los errores. Pero el hecho de que no puedo recibir cualesquiera preocupaciones de correo electrónico me más gracias a recibir correo spam :roll: porque si no puedo enviar un correo electrónico a mí mismo, dudo que mal recibe spam!:|
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Octubre 17th, 2012, 1:15 am

Intente leer el post completo y los fijación a fallos y luego vienen si no soluciona su problema de correo remitente.

Asegúrese de que sus credenciales de smtp se rellenan en php.ini (creo que su su...lo que es el archivo de configuración de php) si insiste en usar la función mail() en lugar utilizando una clase smtp como he sugerido.

También, el formulario no tiene un método set, por lo que su no enviar información para el php. Recomiendo usar $_POST.

Lo sentimos, no notó que validar tus cosas en jQuery, pero recuerde, JavaScript podría ser apagado y luego de esa validación se mostraría inútil ya que simplemente no funciona.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8

Publicar Información

  • Total de mensajes en este tema: 7 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 115 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC