2017-01-25 5 views
1

Ich versuche zu verstehen, wie Sie ein Formular senden Button zum Arbeiten ... Ich nahm Vorlage aus Bootstrap und gehostet es auf Github. Ich weiß, dass Github nichts mehr erlaubt als eine statische Website, also habe ich den PHP-Code auf einem anderen Server gehostet.Senden Sie eine Nachricht (Vorlage von Bootstrap)

Bei diesem Projekt https://github.com/samu101108/02PortfolioPage_FCC02 gibt es einen Ordner 'mail', der 'contact_me.php' hat, der jetzt in anderen Server platziert ist. Ich habe die Änderungen vorgenommen, die die Vorlage sagt, aber es funktioniert nicht.

Ich habe gesehen, dass auf der Datei index.html, hat das Tag-Formular nicht "Methode" und "Aktion" Attribute (seltsam ... Ich habe noch nie gesehen), so sah ich dort ist ein 'js 'Ordner mit' contact_me.js '... drüben auf der Linie 24 gab es //url: "././mail/contact_me.php", und ich ersetzte url: "http://samuel.net46.net/toExternal/contact_me.php", denken, dass das Problem lösen könnte, aber nicht.

Ich würde gerne wissen, was zu tun ist und warum es keine 'Aktion' und 'Methode' Attribute auf dem Formular gibt. Danke im Voraus!

index.html 

<!-- Contact Section --> 
 
    <section id="contact"> 
 
     <div class="container"> 
 
      <div class="row"> 
 
       <div class="col-lg-12 text-center"> 
 
        <h2>Contact Me</h2> 
 
        <hr class="star-primary"> 
 
       </div> 
 
      </div> 
 
      <div class="row"> 
 
       <div class="col-lg-8 col-lg-offset-2"> 
 
        <!-- To configure the contact form email address, go to mail/contact_me.php and update the email address in the PHP file on line 19. --> 
 
        <!-- The form should work on most web servers, but if the form is not working you may need to configure your web server differently. --> 
 
        <form name="sentMessage" id="contactForm" novalidate> 
 
        <!-- Line test<form name="sentMessage" id="contactForm" method="post" action="http://samuel.net46.net/toExternal/contact_me.php"> --> 
 
         <div class="row control-group"> 
 
          <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
           <label>Name</label> 
 
           <input type="text" class="form-control" placeholder="Name" id="name" required data-validation-required-message="Please enter your name."> 
 
           <p class="help-block text-danger"></p> 
 
          </div> 
 
         </div> 
 
         <div class="row control-group"> 
 
          <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
           <label>Email Address</label> 
 
           <input type="email" class="form-control" placeholder="Email Address" id="email" required data-validation-required-message="Please enter your email address."> 
 
           <p class="help-block text-danger"></p> 
 
          </div> 
 
         </div> 
 
         <div class="row control-group"> 
 
          <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
           <label>Phone Number</label> 
 
           <input type="tel" class="form-control" placeholder="Phone Number" id="phone" required data-validation-required-message="Please enter your phone number."> 
 
           <p class="help-block text-danger"></p> 
 
          </div> 
 
         </div> 
 
         <div class="row control-group"> 
 
          <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
           <label>Message</label> 
 
           <textarea rows="5" class="form-control" placeholder="Message" id="message" required data-validation-required-message="Please enter a message."></textarea> 
 
           <p class="help-block text-danger"></p> 
 
          </div> 
 
         </div> 
 
         <br> 
 
         <div id="success"></div> 
 
         <div class="row"> 
 
          <div class="form-group col-xs-12"> 
 
           <button type="submit" class="btn btn-success btn-lg">Send</button> 
 
          </div> 
 
         </div> 
 
        </form> 
 
       </div> 
 
      </div> 
 
     </div> 
 
    </section>

contact_me.js 

$(function() { 
 

 
    $("#contactForm input,#contactForm textarea").jqBootstrapValidation({ 
 
     preventSubmit: true, 
 
     submitError: function($form, event, errors) { 
 
      // additional error messages or events 
 
     }, 
 
     submitSuccess: function($form, event) { 
 
      // Prevent spam click and default submit behaviour 
 
      $("#btnSubmit").attr("disabled", true); 
 
      event.preventDefault(); 
 

 
      // get values from FORM 
 
      var name = $("input#name").val(); 
 
      var email = $("input#email").val(); 
 
      var phone = $("input#phone").val(); 
 
      var message = $("textarea#message").val(); 
 
      var firstName = name; // For Success/Failure Message 
 
      // Check for white space in name for Success/Fail message 
 
      if (firstName.indexOf(' ') >= 0) { 
 
       firstName = name.split(' ').slice(0, -1).join(' '); 
 
      } 
 
      $.ajax({ 
 
       url: "http://samuel.net46.net/toExternal/contact_me.php", 
 
       //url: "././mail/contact_me.php", 
 
       // samuel.net46.net/toExternal/contact_me.php 
 
       type: "POST", 
 
       data: { 
 
        name: name, 
 
        phone: phone, 
 
        email: email, 
 
        message: message 
 
       }, 
 
       cache: false, 
 
       success: function() { 
 
        // Enable button & show success message 
 
        $("#btnSubmit").attr("disabled", false); 
 
        $('#success').html("<div class='alert alert-success'>"); 
 
        $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;") 
 
         .append("</button>"); 
 
        $('#success > .alert-success') 
 
         .append("<strong>Your message has been sent. </strong>"); 
 
        $('#success > .alert-success') 
 
         .append('</div>'); 
 

 
        //clear all fields 
 
        $('#contactForm').trigger("reset"); 
 
       }, 
 
       error: function() { 
 
        // Fail message 
 
        $('#success').html("<div class='alert alert-danger'>"); 
 
        $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;") 
 
         .append("</button>"); 
 
        $('#success > .alert-danger').append("<strong>Sorry " + firstName + ", it seems that my mail server is not responding. Please send your message right to my email [email protected]"); 
 
        $('#success > .alert-danger').append('</div>'); 
 
        //clear all fields 
 
        $('#contactForm').trigger("reset"); 
 
       }, 
 
      }); 
 
     }, 
 
     filter: function() { 
 
      return $(this).is(":visible"); 
 
     }, 
 
    }); 
 

 
    $("a[data-toggle=\"tab\"]").click(function(e) { 
 
     e.preventDefault(); 
 
     $(this).tab("show"); 
 
    }); 
 
}); 
 

 
// When clicking on Full hide fail/success boxes 
 
$('#name').focus(function() { 
 
    $('#success').html(''); 
 
});

concact_me.php 

<?php 
 
// Check for empty fields 
 
if(empty($_POST['name']) \t \t || 
 
    empty($_POST['email']) \t \t || 
 
    empty($_POST['phone']) \t \t || 
 
    empty($_POST['message']) \t || 
 
    !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) 
 
    { 
 
\t echo "No arguments Provided!"; 
 
\t return false; 
 
    } 
 

 
$name = strip_tags(htmlspecialchars($_POST['name'])); 
 
$email_address = strip_tags(htmlspecialchars($_POST['email'])); 
 
$phone = strip_tags(htmlspecialchars($_POST['phone'])); 
 
$message = strip_tags(htmlspecialchars($_POST['message'])); 
 

 
// Create the email and send the message 
 
$to = '[email protected]'; // Add your email address inbetween the '' replacing 
 
//[email protected] - This is where the form will send a message to. 
 
$email_subject = "Website Contact Form: $name"; 
 
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nMessage:\n$message"; 
 
$headers = "From: [email protected]\n";//This is the email address the generated 
 
//message will be from. We recommend using something like [email protected] 
 
$headers .= "Reply-To: $email_address"; 
 
mail($to,$email_subject,$email_body,$headers); 
 
return true; 
 
?>

+1

Anstatt Links anzuhängen fügen Sie bitte die Codeblöcke hinzu – neophyte

+0

Ich akzeptiere Pull-Anfragen! ;) – samu101108

+0

Ich meinte, wenn du mindestens einen Teil deines Codes postest, wird es uns helfen, das Problem zu verstehen. es ist schwierig, Links zu folgen und zu verstehen, was falsch ist. – neophyte

Antwort

0

fand ich eine Abhilfe, das Problem zu lösen ... Nun ... Ich verstand die Frage ssl Zertifizierung war. Github benutzt es und wenn ich den PHP-Teil auf einen unsicheren Server setze, wird die Verbindung abgelehnt. Ich konnte es auf cosole sehen: enter image description here

Also habe ich das ganze Projekt auf einen Server ohne https verschoben und als Ergebnis funktioniert es und ich erhielt die Nachricht! enter image description here

Verwandte Themen