JS/HTML/PHP表单电子邮件提交错误


NEW - JS/HTML/PHP form email submission errors

NEW -发现我在我的网站上有一个javascript验证和提交表单-添加了相关的js

希望有人能帮忙!我不是一个编码,但拼接元素,以实现我的目的。有一个web表单和我使用PHP提交到我的电子邮件,但它没有发生。电子邮件未发送,成功或失败文本未出现-请提供解决方案。

网址为www.ogracing.eu

<!-- CONTACT FORM -->
<div class="col-sm-7 col-md-9">
    <!-- IMPORTANT: change the email address at the top of the php/mail.php file to the email address that you want this form to send to -->
    <form class="form-style validate-form clearfix" action="php/mail.php" method="POST" role="form">
        <!-- form left col -->
        <div class="col-md-6">
            <div class="form-group">
                <input class="text-field form-control validate-field required" data-validation-type="string" id="name" placeholder="Name" name="name" type="text">
            </div>  
            <div class="form-group">
                <input class="text-field form-control validate-field required" data-validation-type="email" id="email" placeholder="Email" name="email" type="email">
            </div>
            <div class="form-group">
                <input class="text-field form-control validate-field required" data-validation-type="phone" id="phone" placeholder="Telephone" name="phone" type="tel">
            </div>
        </div><!-- end: form left col -->
        <!-- form right col -->
        <div class="col-md-6">
            <div class="form-group">
                <textarea placeholder="Message..." class="form-control validate-field required" name="message"></textarea>
            </div> 
            <div class="form-group">
                <img src="images/loader-form.GIF" class="form-loader">
                <button type="submit" name="submit" class="btn btn-sm btn-outline-inverse">Submit</button>
            </div> 
            <div class="form-group form-general-error-container">
                <?php echo $result; ?>
            </div>           
        </div><!-- end: form right col -->
    </form>
</div><!-- end: CONTACT FORM -->  

JS这只是脚本的验证和提交部分- functions.js。我已经从HTML中删除了captcha元素,因为我不想留下它-这可能会也可能不会导致验证问题。

function validate_and_submit_forms(b){var a=(b!==undefined&&b.length>0)?b:$("form.validate-form");a.each(function(){var 
c=$(this);c.find(".validate-field").each(function(){$(this).change(function(){$(this).siblings(".alert").fadeOut("fast",function()
{$(this).remove()});if($(this).val().trim()!=""){var e=validate_fields(c,$(this));if(e.length>0){if(e[0]["message"]!==undefined&&e[0]
["message"]!=""&&e[0]["message"]!="success"){var d='<div class="alert">'+e[0]["message"]+"</div>";$(this).after(d);$(this).siblings
(".alert").fadeIn("fast")}}}})});c.find("#form-captcha-refresh").click(function(){reset_captcha(c)});c.submit(function(e)
{e.preventDefault?e.preventDefault():e.returnValue=false;$(this).find(".form-loader").fadeIn("fast");var d=$(this).attr("action");if
(d===undefined&&d==""){return false}$(this).find(".alert").fadeOut("fast",function(){$(this).remove()});$(this).find(".form-general-
error-container").fadeOut("fast",function(){$(this).empty()});var f=false;$(this).find(".validate-field").each(function(){var 
h=validate_fields(c,$(this));if(h.length>0){if(h[0]["message"]!==undefined&&h[0]["message"]!=""&&h[0]["message"]!="success"){var 
g='<div class="alert">'+h[0]["message"]+"</div>";$(this).after(g);$(this).siblings(".alert").fadeIn("fast");f=true}}});if(f==true)
{$(this).find(".form-loader").fadeOut("fast");return false}$.ajax({type:"POST",url:d,data:$(this).serialize
(),dataType:"html",success:function(k){c.find(".form-loader").fadeOut("fast");var l=(k=="success")?true:false;var h=(k=="captcha")?
false:true;var g="";switch(k){case"success":g="Form submitted successfully.";break;case"captcha":g="Incorrect text entered. (Case-
sensitive)";break;case"incomplete":g="Please fill in all required fields.";break;case"error":g="An error occured. Please try again 
later.";break}var j='<div class="alert ';j+=(l==true)?"success":"error";j+='">'+g+"</div>";if(!h){c.find("#form-captcha").parent
(".form-group").append(j);c.find("#form-captcha").siblings(".alert").fadeIn("fast")}else{c.find(".form-general-error-container").html
(j).fadeIn("fast",function(){$(this).delay(10000).fadeOut("fast",function(){$(this).html("")})})}reset_captcha(c);if(l==true){c.find
(".form-control").val("")}},error:function(h){c.find(".form-loader").fadeOut("fast");var g='<div class="alert">An error occured. Please 
try again later.</div>';c.find(".form-general-error-container").html(g).fadeIn("fast")}})})})}function reset_forms(b){if(b!
==undefined&&b.length>0){var a=b;a.find("input").val("");a.find(".alert").remove();a.find(".form-general-error-container").empty
().hide();reset_captcha(b)}}function reset_captcha(b){var a=(b!==undefined&&b.length>0)?b:$("form.validate-form");a.each(function(){var 
e=$(this);var c=e.find("#form-captcha-img");if(c.length>0&&e.is(":visible")){var f=new Date().getTime();c.replaceWith('<img id="form-
captcha-img" src="assets/php/form_captcha/captcha_img.php?t='+f+'" style="display:none">');e.find("#form-captcha").val("");setTimeout
(function(){e.find("#form-captcha-img").show()},500)}})}function validate_fields(d,a){if(d!==undefined&&d.length>0){var b=(a!
==undefined&&a.length>0)?a:d.find(".validate");var c=new Array();b.each(function(){var e=$(this).attr("data-validation-type");var 
h=$(this).hasClass("required");var g=$(this).val().trim();var f=new Array();f.field_object=$(this);f.message="success";if(h==true&&
(g==""||g===null||g===undefined)){f.message="This field is required"}if(e=="string"&&(g!=""&&g!==null&&g!==undefined)){if(g.match(/^[a
-z0-9 .'-]+$/i)==null){f.message="Invalid characters found."}}else{if(e=="email"&&(g!=""&&g!==null&&g!==undefined)){if(g.match(/^
(([^<>()[']''.,;:'s@'"]+('.[^<>()[']''.,;:'s@'"]+)*)|('".+'"))@(('[[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}'])|(([a-zA-Z'-0-9]
 +'.)+[a-zA-Z]{2,}))$/)==null){f.message="Please enter a valid email address."}}else{if(e=="phone"&&(g!=""&&g!==null&&g!==undefined))
{if(g.match(/^'(?'+?['d'('-'s')]+$/)==null){f.message="Invalid characters found."}}}}c.push(f)});return c}}function 
contact_form_IE9_placeholder_fix(){var a=$("form");a.each(function(){var b=$(this);$(this).find(".form-control").each(function(){var 
c=$(this).attr("placeholder");if(c!==undefined&&c!=""){$(this).val(c);$(this).focus(function(){if($(this).val()==c){$(this).val
("")}});$(this).blur(function(){if($(this).val()==""){$(this).val(c)}})}})})}function change_bg_check(){return
((jQuery.browser.mobile&&background_settings.change_on_mobile)||(!jQuery.browser.mobile&&background_settings.change_on_nonmobile))?
true:false}function tabs_uniform_height(){var g=$(".tabpanel.uniform-height");for(var f=0,a=g.length;f<a;f++){var e=0;var h=$(g
[f]).find(".tab-pane");for(var d=0,b=h.length;d<b;d++){var c=$(h[d]).attr("style");$(h[d]).css
({position:"absolute",visibility:"hidden",display:"block"});e=($(h[d]).outerHeight(true)>e)?$(h[d]).outerHeight(true):e;$(h[d]).attr
("style",c?c:"")
}h.css({"min-height":e+"px"})}};
PHP

<?php
if (isset($_POST["submit"])) {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $message = $_POST['message'];
    $from = 'Contact Form'; 
    $to = 'race@ogracing.eu'; 
    $subject = 'Message from website ';
    $body = "From: $name'n E-Mail: $email'n Telephone: $phone'n message:'n $message";
    // Check if name has been entered
    if (!$_POST['name']) {
        $errName = 'Please enter your name';
    }
    // Check if email has been entered and is valid
    if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        $errEmail = 'Please enter a valid email address';
    }
     //Check if telephone number has been entered
    if (!$_POST['phone']) {
        $errMessage = 'Please enter a telephone number';
    }
    //Check if message has been entered
    if (!$_POST['message']) {
        $errMessage = 'Please enter your message';
    }
    // If there are no errors, send the email
    if (!$errName && !$errEmail  && !$errPhone && !$errMessage) {
        if (mail($to, $subject, $body, $from)) {
            $result='<div class="alert alert-success">Thank You! I will be in touch</div>';
        }
        else {
            $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>';
        }
    }
}
?>

我从我的mail.php中找到了一些回复-如下所示。这些都出现在一个窗口内firebug!!

响应头

    内容长度
  • 0
  • 内容类型text/html
  • 日期2015年8月21日星期五11:14:10 GMT
  • 服务器 microsoft iis/8.5
  • X-Powered-By-Plesk PleskWin
  • x-powered-by ASP。净

请求头

  • 接受text/html, /;q = 0.01
  • Accept-Language en,en- us;q=0.5 Content-Length 69
  • 内容类型应用程序/x-www-form-urlencoded;utf - 8字符集=
  • Cookie _ga=GA1.2.1848665366.1439996290
  • DNT 1主机www.ogracing.eu
  • 推荐人http://www.ogracing.eu/
  • User-Agent Mozilla/5.0 (Windows NT 6.0;rv:40.0)壁虎/20100101 Firefox/40.0 X-
  • 请求与XMLHttpRequest

文章

  • 电子邮件aidan@pulce.co.uk
  • 消息更多
  • 名称Aidans analytics
  • 电话56
  • 源名称=艾丹+ analytics&电子邮件=艾丹% 40 pulce.co.uk&电话= 56,消息=更多的

没什么Nada和Nix -我猜这是问题的一部分

<

饼干/strong>正在发送

所以看起来我们没有为电子邮件生成任何HTML,因此它没有被发送。欢迎更多的帮助和建议。谢谢。

在你发布的PHP代码中,你有这个:

if (!$errName && !$errEmail  && !$errPhone && !$errMessage)

但是$errPhone变量没有在任何地方声明。在日志文件中,您可能会发现一个通知:

Notice: Undefined variable: $errPhone in file_path/file_name.php on line...

并且考虑到您说"成功或失败文本未出现"我可以说错误就在那里,因为由于Notice,您的嵌套if从未执行过。

如果你没有日志文件,尝试在脚本的顶部设置error_reporting(E_ALL),你会直接在你的页面上看到错误。

为了给你一个解决方案,你还必须检查$_POST["phone"]是否存在,并声明一个变量$errPhone(就像你对其他字段name, emailmessage所做的那样),以允许if语句返回true并继续执行。

此外,正如@CBroe在评论中所说,你必须给你的提交按钮起一个名字:

<button type="submit" name="submit" class="btn btn-sm btn-outline-inverse">Submit</button>

这样你就可以在PHP脚本中使用$_POST['submit']了。

相关文章: