1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda Contact Form

Discussão em 'Web Development' iniciada por [email protected], 17 de Outubro de 2012. (Respostas: 9; Visualizações: 1058)

  1. m@rkes

    [email protected] Power Member

    Boas, tudo bem?

    Vim aqui pedir ajuda porque estou a tentar fazer um pequeno portfolio com o pouco html que sei e até agora safei-me. Só me falta mesmo o formulário de contacto, que não parece funcionar. Pesquisei no google e encontrei este que me pareceu porreiro, e tudo parece funcionar...Ele indica que é preciso preencher os campos obrigatórios e até avisa que o e-mail foi enviado...mas o problema é que eu nunca recebo qualquer tipo de e-mail...já andei a ler umas coisas de php e etc e já me aconselharam a trocar o $_request por $_post, mas tudo em vão. E sim...troquei o campo 'your mail adress' pelo meu e-mail profissional.

    Alguém me pode dar uma ajuda? Ficava eternamente agradecido. Obrigado e boa noite :)

    PS: Se não der, paciência, coloco o meu e-mail directamente no site. Se bem que isso seja isco para spams. (acho eu)



    HTML
    Código:
    <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>

    JS
    Código:
    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-\.][email protected]([\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;
        });
    });
    
    
    

    PHP
    Código:
    <?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); 
    ?>
    
     
  2. sEnte!

    sEnte! Power Member

    Em principio e partindo do pressuposto que tens tudo como deve ser só falta mesmo mudares o

    para isto
    se não me engano o action="" abre na própria página e se o form de contacto estiver noutra página tens de indicar o caminho.

    muda também o $_REQUEST para $_POST no ficheiro PHP

    ainda no ficheiro PHP podes meter o $emailTO com o teu email.

    e finalmente e não querendo alarmar
    "PS: Se não der, paciência, coloco o meu e-mail directamente no site. Se bem que isso seja isco para spams. (acho eu)"

    com o contact form que tens podes ser vitima se spam na mesma já que não tens nada do tipo captcha, e podes também ser vitima de sql_injection que é o mesmo que dar de mão beijada o servidor ao atacante.

    experimenta isto
    o trim e htmlentities faz com que o que se escreve não seja executado e vá apenas como texto.
     
    Última edição: 17 de Outubro de 2012
  3. m@rkes

    [email protected] Power Member

    sEnte!, obrigado pela atenção. Mas continua a não funcionar :/
     
  4. sEnte!

    sEnte! Power Member

    O que fizeste?
     
  5. m@rkes

    [email protected] Power Member

    Troquei o

    <form id="contact" action="#">

    por
    <form action="" method="post">

    E o $_REQUEST para $_POST no ficheiro PHP. O ficheiro php já tinha o meu email. E também coloquei o trim agora
     
  6. sEnte!

    sEnte! Power Member

    Eu editei o meu post
     
  7. m@rkes

    [email protected] Power Member

    Eu percebi que tinhas editado, e modifiquei tudo, conforme indicaste no teu post!

    Vou tentar encontrar outro que funcione...
    Mas olha, obrigado pelo teu tempo. :)
     
    Última edição: 17 de Outubro de 2012
  8. sEnte!

    sEnte! Power Member

    já te mostro o ficheiro completo....
     
    Última edição: 17 de Outubro de 2012
  9. m@rkes

    [email protected] Power Member

    O ficheiro completo?
     
  10. sEnte!

    sEnte! Power Member

    sim, como deve ser, agora estou a ter problemas é em implementar o validation.... :S

    sem o validation funciona como deve ser

    tens mensagem...

    EDIT1:
    Esqueci-me de escrever na mensagem....
    o <script type="text/javascript" src="validation.js"></script>
    encontras aquio código para o ficheiro
    http://jorenrapini.com/posts/validation/validation.js

    tens de criar um ficheiro validation.js e meter o devido caminho para funcionar.
    Se por acaso quiseres adicionar algum campo ao formulário que queiras que seja obrigatório adicionas no validation.js
    no $emailTO eu meti lá [email protected] tens de alterar para o teu.
    O CSS que está no que te mandei podes meter no CSS geral que não há problema, assim arrumas um bocado mais a casa.
     
    Última edição: 17 de Outubro de 2012

Partilhar esta Página