为什么联系表单在我的网站中不起作用?

时间:2012-03-15 12:29:32

标签: php forms html5 contact

联系表格不起作用

以下是我在页面中使用的代码。

Index.html中的Jquery

<!--contact form -->

<script type="text/javascript">
$(document).ready(function(){
    $('#send_message').click(function(e){

        //stop the form from being submitted
        e.preventDefault();

        /* declare the variables, var error is the variable that we use on the end
        to determine if there was an error or not */
        var error = false;
        var name = $('#name').val();
        var email = $('#email').val();
        var message = $('#message').val();

        /* in the next section we do the checking by using VARIABLE.length
        where VARIABLE is the variable we are checking (like name, email),
        length is a javascript function to get the number of characters.
        And as you can see if the num of characters is 0 we set the error
        variable to true and show the name_error div with the fadeIn effect. 
        if it's not 0 then we fadeOut the div( that's if the div is shown and
        the error is fixed it fadesOut. 

        The only difference from these checks is the email checking, we have
        email.indexOf('@') which checks if there is @ in the email input field.
        This javascript function will return -1 if no occurence have been found.*/
        if(name.length == 0){
            var error = true;
            $('#name_error').fadeIn(500);
        }else{
            $('#name_error').fadeOut(500);
        }
        if(email.length == 0 || email.indexOf('@') == '-1'){
            var error = true;
            $('#email_error').fadeIn(500);
        }else{
            $('#email_error').fadeOut(500);
        }

        if(message.length == 0){
            var error = true;
            $('#message_error').fadeIn(500);
        }else{
            $('#message_error').fadeOut(500);
        }

        //now when the validation is done we check if the error variable is false (no errors)
        if(error == false){
            //disable the submit button to avoid spamming
            //and change the button text to Sending...
            $('#send_message').attr({'disabled' : 'true', 'value' : 'Sending...' });

            /* using the jquery's post(ajax) function and a lifesaver
            function serialize() which gets all the data from the form
            we submit it to send_email.php */
            $.post("send_email.php", $("#contact_form").serialize(),function(result){
                //and after the ajax request ends we check the text returned
                if(result == 'sent'){
                    //if the mail is sent remove the submit paragraph
                     $('#cf_submit_p').remove();
                    //and show the mail success div with fadeIn
                    $('#mail_success').fadeIn(500);
                }else{
                    //show the mail failed div
                    $('#mail_fail').fadeIn(500);
                    //reenable the submit button by removing attribute disabled and change the text back to Send The Message
                    $('#send_message').removeAttr('disabled').attr('value', 'Send The Message');
                }
            });
        }
    });    
});
</script>

以下是容器的HTML代码

HTML @ index.html

中的Contact-Form
<!--contact form -->
<div id="contact-form">
<div id="contact_form_holder">
<form action="index.php" method="post" id="contact_form">

<p>
Your Name:
  <input name="name" class="field" id="name" type="text">
</p><div id="name_error" class="error"><img src="web_files/error.png">&nbsp;Please enter your name</div>
<p></p>

<p>
Your Email:
</p><div><input name="email" class="field" id="email" type="text">
<div id="email_error" class="error"><img src="web_files/error.png">&nbsp;OOps!! i can't get back to you in this mail id</div>
</div>
<p></p>

<p>
The Message:
</p><div>
<textarea name="message" class="field" id="message"></textarea>
<div id="message_error" class="error"><img src="web_files/error.png"> Forgot why you came here?</div></div>

<p></p>

<div id="mail_success" class="success"><img src="web_files/success.png"> Thank you. The mailman is on his way.</div>
<div id="mail_fail" class="error"><img src="web_files/error.png"> Sorry, don't know what happened. Try later.</div>
<p id="cf_submit_p">
<!--<input type='submit' id='send_message' value='Send it to me' class="submit"> -->
<input id="send_message" value="Send The Message" class="submit" type="submit">
</p>


</form>  
</div>
</div> 

<!--contact form -->

最后这里是PHP代码

send_email.php

 //we need to get our variables first  

$email_to =   'mail@mail.com'<script type="text/javascript"> 
/* <![CDATA[ */ 
(function(){try{var s,a,i,j,r,c,l=document.getElementById("__cf_email__");        a=l.className;if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2)    {c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);    l.parentNode.replaceChild(s,l);}}catch(e){}})(); 
/* ]]> */ 
</script>';     
//the address to which the email will be sent  
    $name     =   $_POST['name'];  
    $email    =   $_POST['email'];  
    $message  =   $_POST['message'];  

    /*the $header variable is for the additional headers in the mail function, 
 we are asigning 2 values, first one is FROM and the second one is REPLY-TO. 
 That way when we want to reply the email gmail(or yahoo or hotmail...) will know 
 who are we replying to. */  
$headers  = "From: $email\r\n";  
$headers .= "Reply-To: $email\r\n";  

if(mail($email_to, $subject, $message, $headers)){  
    echo 'sent'; // we are sending this text to the ajax request telling it that the mail is sent..  
}else{  
    echo 'failed';// ... or this one to tell it that it wasn't sent  
    }  

2 个答案:

答案 0 :(得分:1)

您的错误位于PHP代码的第一行:

$email_to = 'yeshu.aryan@gmail.com'<script type="text/javascript"> 

您的字符串在电子邮件地址后结束。纠正它

$email_to = 'yeshu.aryan@gmail.com';

你应该没事。

此外,PHP内部的JavaScript是做什么的?删除它或确保将其回显,或将其放在PHP标记之外。

答案 1 :(得分:0)

1)将php代码的第一行更改为

$email_to = 'some.person@example.com';

2)从PHP文件中删除JavaScript。

如果仍然无效,请将所有$_POST更改为$_GET并自行输入变量值。然后运行代码并告诉我输出。

编辑

我发现了你的错误。您还没有正确打开您的php文件。 http://www.justyesh.in/send_email.php

您使用<?php开始PHP并使用?>

关闭它