Ir para conteúdo
  • Cadastre-se

[Php] - Ajuda


Posts Recomendados

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

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

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

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

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?