Giuseppe Postado Fevereiro 16, 2014 Compartilhar Postado Fevereiro 16, 2014 Primeiramente não sei se estou na área correta, "Desenvolvimento & Programação" envolve o PHP então queria uma ajuda muito simples, eu marcaria como a melhor resposta quem ajudasse. Meu problema é com um sistema de contato do meu site, envolvendo o código PHP e o complemento Javascript. Como funciona? : no site quando eu clico em enviar a mensagem, tem um código Javascript executando o arquivo .JS e nele processa o .PHP Ele ta enviando a mensagem, mas não chega nada do meu e-mail, vejam : ----------------------------------------------------------------------------------- SCRIPT .JS $(document).ready(function () { $('div#output').hide(); //bind send message here $('#send-message').click(sendMessage); $('button.close').live('click', function () { $(this).parent().find('p').html(''); $(this).parent().hide(); }); }); /* Contact Form */ function checkEmail(email) { var check = /^[\w\.\+-]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,6}$/; if (!check.test(email)) { return false; } return true; } function sendMessage() { // receive the provided data var name = $("input#name").val(); var email = $("input#email").val(); var subject = $("input#subject").val(); var phone = $("input#phone").val(); var message = $("textarea#message").val(); message = 'message'; // check if all the fields are filled if (name == '' || phone == '' || email == '' || subject == '' || message == '') { $("div#output").show().html('<button type="button" class="close" data-dismiss="alert-close">x</button><p class="alert-close">Você deve preencher todos os campos</p>'); return false; } // verify the email address if (!checkEmail(email)) { $("div#output").show().html('<button type="button" class="close" data-dismiss="alert">x</button><p>Por favor, coloque um endereço de e-mail válido</p>'); return false; } // make the AJAX request var dataString = $('#cform').serialize(); $.ajax({ type: "POST", url: 'contact.php', data: dataString, dataType: 'json', success: function (data) { if (data.success == 0) { var errors = '<ul><li>'; if (data.name_msg != '') errors += data.name_msg + '</li>'; if (data.email_msg != '') errors += '<li>' + data.email_msg + '</li>'; if (data.phone_msg != '') errors += '<li>' + data.phone_msg + '</li>'; if (data.message_msg != '') errors += '<li>' + data.message_msg + '</li>'; if (data.subject_msg != '') errors += '<li>' + data.subject_msg + '</li>'; $("div#output").removeClass('alert-success').addClass('alert-error').show().html('<button type="button" class="close" data-dismiss="alert">x</button><p> Could not complete your request. See the errors below!</p>' + errors); } else if (data.success == 1) { $("div#output").removeClass('alert-error').addClass('alert-success').show().html('<button type="button" class="close" data-dismiss="alert">x</button><p>You message has been sent successfully!</p>'); } }, error: function (error) { $("div#output").removeClass('alert-success').addClass('alert-error').show().html('<button type="button" class="close" data-dismiss="alert">x</button><p> Could not complete your request. See the error below!</p>' + error.statusText); } }); return false; } ----------------------------------------------------------------------------------- Script .PHP <?php $send_email_to = "[email protected]"; function send_email($name,$email,$phone,$subject,$message) { global $send_email_to; if($message=='message')$message=''; $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; $headers .= "From: ".$email. "\r\n"; $message = "<strong>Email = </strong>".$email."<br>"; $message .= "<strong>Nome = </strong>".$name."<br>"; $message .= "<strong>Telefone/celular = </strong>".$phone."<br>"; $message .= "<strong>Mensagem = </strong>".$message."<br>"; mail($send_email_to, $subject, $message,$headers); return true; } function validate($name,$email,$phone,$message,$subject) { $return_array = array(); $return_array['success'] = '1'; $return_array['name_msg'] = ''; $return_array['email_msg'] = ''; $return_array['phone_msg'] = ''; $return_array['message_msg'] = ''; $return_array['subject_msg'] = ''; if($email == '') { $return_array['success'] = '0'; $return_array['email_msg'] = 'E-Mail é obrigatório'; } else { $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email)) { $return_array['success'] = '0'; $return_array['email_msg'] = 'Coloque um e-mail válido'; } } if($name == '') { $return_array['success'] = '0'; $return_array['name_msg'] = 'Nome é obrigatório'; } else { $string_exp = "/^[A-Za-z .'-]+$/"; if (!preg_match($string_exp, $name)) { $return_array['success'] = '0'; $return_array['name_msg'] = 'Coloque um nome válido'; } } if($phone == '') { $return_array['success'] = '0'; $return_array['phone_msg'] = 'Telefone/Celular é obrigatório'; } else { $string_exp = "/^[A-Za-z .'-]+$/"; if (!preg_match($string_exp, $phone)) { $return_array['success'] = '0'; $return_array['phone_msg'] = 'Coloque um número de telefone/celular válido'; } } if($subject == '') { $return_array['success'] = '0'; $return_array['subject_msg'] = 'Assunto da mensagem é obrigatório'; } if($message == '') { $return_array['success'] = '0'; $return_array['message_msg'] = 'Mensagem é obrigatório'; } else { if (strlen($message) < 2) { $return_array['success'] = '0'; $return_array['message_msg'] = 'Coloque uma mensagem válida'; } } return $return_array; } $name = $_POST['name']; $phone = $_POST['phone']; $email = $_POST['email']; $message = $_POST['message']; $subject = $_POST['subject']; $return_array = validate($name,$email,$phone,$message,$subject); if($return_array['success'] == '1') { send_email($fname,$email,$phone,$subject,$message); } header('Content-type: text/json'); echo json_encode($return_array); die(); ?> Obrigado e um forte abraço! Link para o comentário Compartilhar em outros sites More sharing options...
Pedro Lazari Postado Fevereiro 16, 2014 Compartilhar Postado Fevereiro 16, 2014 não tem a página de onde está o formulário? O problema pode estar lá! Link para o comentário Compartilhar em outros sites More sharing options...
Giuseppe Postado Fevereiro 16, 2014 Autor Compartilhar Postado Fevereiro 16, 2014 Acredito que não, porque ele executa primeiro o .JS e depois puxa as informações do PHP. Conhece alguém que possa me ajudar? Eu preciso disso URGENTE, obrigado. Link para o comentário Compartilhar em outros sites More sharing options...
tppa Postado Fevereiro 16, 2014 Compartilhar Postado Fevereiro 16, 2014 vc ja testou so o codigo em php? Link para o comentário Compartilhar em outros sites More sharing options...
Giuseppe Postado Fevereiro 16, 2014 Autor Compartilhar Postado Fevereiro 16, 2014 Sim, me aparente isso; <br /> <b>Notice</b>: Undefined variable: fname in <b>C:\xampp\htdocs\SH2\contact.php</b> on line <b>102</b><br /> {"success":"1","name_msg":"","email_msg":"","phone_msg":"","message_msg":"","subject_msg":""} Mais também, se eu tirar meu .JS, não vai ter mais aquele negócio de aparecer : Preencha o nome sem re-carregar a página entende? Link para o comentário Compartilhar em outros sites More sharing options...
tppa Postado Fevereiro 16, 2014 Compartilhar Postado Fevereiro 16, 2014 o codigo php q vc postou é igualzinho ao q vc tem ai? Link para o comentário Compartilhar em outros sites More sharing options...
Giuseppe Postado Fevereiro 16, 2014 Autor Compartilhar Postado Fevereiro 16, 2014 Peço perdão, aqui está o código acima testado. <br /> <b>Notice</b>: Undefined variable: fname in <b>C:\xampp\htdocs\SH2\contact.php</b> on line <b>202</b><br /> {"success":"1","name_msg":"","email_msg":"","phone_msg":"","message_msg":"","subject_msg":""} Link para o comentário Compartilhar em outros sites More sharing options...
Giuseppe Postado Fevereiro 17, 2014 Autor Compartilhar Postado Fevereiro 17, 2014 alguém? ;( Link para o comentário Compartilhar em outros sites More sharing options...
flavio Postado Fevereiro 17, 2014 Compartilhar Postado Fevereiro 17, 2014 Campos no input do seu form estão com os mesmos nome do arquivo .js? Há um erro em seu código, veja a imagem: https://monosnap.com/image/iQfujVBiXjd0B4iEB3DQTmyjWdfRtE Está com a variável incorreta. :) O correto seria: if($return_array['success'] == '1'){ send_email($name,$email,$phone,$subject,$message);} Link para o comentário Compartilhar em outros sites More sharing options...
Giuseppe Postado Fevereiro 17, 2014 Autor Compartilhar Postado Fevereiro 17, 2014 Agora apareceu isso, mas não chegou nada aqui... {"success":"1","name_msg":"","email_msg":"","phone_msg":"","message_msg":"","subject_msg":""} http://prntscr.com/2thh48, ---------------------- Aqui está uma parte do código HTML <form action="#" method="post" id="cform" name="cform"> <ul id="homehireus" class="hireform contactform"> <li> <label>Nome:<span class="required">*</span></label> <input name="name" id="name" type="text" value="" tabindex="1"> </li> <li> <label>Telefone:</label> <input name="phone" id="phone" type="text" value="" tabindex="3"> </li> <li> <label>Email:<span class="required">*</span></label> <input name="email" id="email" type="text" value="" tabindex="2"> </li> <li> <label>Assunto:<span class="required"></span></label> <input name="subject" id="subject" type="text" value="" tabindex="4"> </li> <li> <input name="Button" type="button" id="send-message" tabindex="6" value="Enviar"> <div id="output" class="contactpage-msg"></div> </li> <li> <label>Dúvida:<span class="required"></span></label> <textarea name="message" id="message" tabindex="5"></textarea> </li> </ul> </form> Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados