在此服务器上找不到请求的-表单验证(位于localhost端口80的Apache/2.4.9(Win32)PHP/5.5

The requested was not found on this server - Form validation (Apache/2.4.9 (Win32) PHP/5.5.12 Server at localhost Port 80)

本文关键字:PHP Apache Win32 端口 位于 找不到 服务器 请求 验证 表单 localhost      更新时间:2023-09-26

我正在尝试使用PHP、JQuery、HTML5和Bootstrap-css创建一个联系人表单页面。PHP发送邮件,JQuery验证用户输入,Bootstrap-css突出显示输入字段。在我的代码中,我可以验证用户输入,但当我点击提交按钮时,什么都不会发生。在我的HTML代码中,当我将表单id从"id=contact form"替换为表单时,我可以发送邮件,但无法进行验证。请告诉我我做错了什么。

PHP Code-
 <?php
$name= $_POST['name'];
 $email= $_POST['email'];
  $Message= $_POST['Message'];
 $to=" s.nandan@niraame.com , shantanunandan8@gmail.com ";
  $from="";
   $subject="New query from customer ";
    $body = "Customer name : $name'n'n";
       $body .= "Customer Message : $Message'n'n";
        $body .= "Customer email id : $email'n'n";
 ini_set("SMTP","mail.niraame.com");
 mail($to,$subject,$from,$body);
?>
HTML Code- 
 <form method="post" action="contact-form-submission.php" class="form-horizontal" id="contact-form">
    <div class="control-group">
        <label class="control-label" for="name">Name</label>
        <div class="controls">
            <input type="text" name="name" id="name" placeholder="Your name">
        </div>
    </div>
    <div class="control-group">
        <label class="control-label" for="email">Email Address</label>
        <div class="controls">
            <input type="text" name="email" id="email" placeholder="Your email address">
        </div>
    </div>
    <div class="control-group">
        <label class="control-label" for="subject">Subject</label>
        <div class="controls">
            <select id="subject" name="subject">
                <option value="na" selected="">Choose One:</option>
                <option value="service">Feedback</option>
                <option value="suggestions">Suggestion</option>
                <option value="support">Question</option>
                <option value="other">Other</option>
            </select>
        </div>
    </div>
    <div class="control-group">
        <label class="control-label" for="message">Message</label>
        <div class="controls">
            <textarea name="message" id="message" rows="8" class="span5" placeholder="The message you want to send to us."></textarea>
        </div>
    </div>
    <div class="form-actions">
        <input type="hidden" name="save" value="contact">
        <button type="submit" id="submit" class="btn btn-success">Submit Message</button>
        <button type="reset" class="btn">Cancel</button>
    </div>
</form>
JQuery Code- 
$(window).load(function(){
var name = $("#name").val();
var email = $("#email").val();
var message = $("#message").val();
var contact = $("#contact").val();
$.post("contact-form-submission.php", {
name1: name,
email1: email,
mess age1: message,
contact1: contact
}, function(data) {
$("#returnmessage").append(data); // Append returned message to message paragraph.
if (data == "Your Query has been received, We will contact you soon.") {
$("#contact-form")[0].reset(); // To reset form fields on success.
}
});
$(document).ready(function () {
$('#contact-form').validate({
rules: {
name: {
minlength: 2,
required: true
},
email: {
required: true,
email: true
},
message: {
minlength: 2,
required: true
}
},
highlight: function (element) {
$(element).closest('.control-group').removeClass('success').addClass('error');
},
success: function (element) {
element.text('OK!').addClass('valid')
.closest('.control-group').removeClass('error').addClass('success');
}
});
});
});

正如@jeroen所提到的,目前您正试图在页面加载时发布表单。让我们尝试一种方法,当用户单击提交按钮时提交表单。

$(document).ready(function () {
  // let's attach an event handler to the form's submission
  $('#contact-form').submit(function(e) {
    e.preventDefault(); // prevent the form from submitting normally, this allows us to interject your client side validation
    // perform your validation
    // if valid, post
    // else show errors, etc
  }
});

此外,请记住,最好在服务器和客户端上执行验证。至少,始终在服务器上。