2016-06-04 8 views
-1

Ich habe das Gefühl, als ob alles richtig gemacht wurde, aber beim Abschicken des Formulars kommt kein direkter Zugriff zustande. Dieses ist von einer Schablonenweb site, die nicht ein Kontaktformular hatte, also fand ich ein online, aber es scheint nicht damit zu arbeiten.Kontaktformular funktioniert nicht und kommt ohne direkten Zugriff

hier ist die html

<form action="mail.php" method="post" class="wow fadeInUp" data-wow-delay="0.6s"> 
        <div class="col-md-6 col-sm-6"> 
          <input type="text" name="name" class="form-control" placeholder="Your Name..."> 
        </div> 
        <div class="col-md-6 col-sm-6"> 
         <input type="email" name="email" class="form-control" placeholder="Your Email..."> 
        </div> 
        <div class="col-md-12 col-sm-12"> 
         <textarea rows="6" name="message" class="form-control" placeholder="Your Message" required=""> 
</textarea> 
        </div> 
        <div class="col-md-offset-4 col-md-8 col-sm-offset-4 col-sm-8"> 
         <input type="submit" class="form-control" value="SEND"> 
        </div> 
       </form> 

Hier ist die PHP-

<?php 
    /** 
    * sends mail submitted from the contact form 
    */ 

    /* 
     EDIT BELOW 
    */ 
    $to_Email  = "[email protected]"; //Replace with your email address 
    $subject  = 'Appydeveloper Site'; //Subject line for emails 
    /* 
     EDIT ABOVE 
    */ 


    if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') 
     die("No direct access."); 

    if(!isset($_POST["name"]) || !isset($_POST["email"]) || !isset($_POST["message"])) { 
     $output = json_encode(array('type'=>'error', 'text' => 'Input fields are empty!')); 
     die($output); 
    } 

    //additional validation 
    $user_Name  = filter_var($_POST["name"], FILTER_SANITIZE_STRING); 
    $user_Email  = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL); 
    $user_Message  = filter_var($_POST["message"], FILTER_SANITIZE_STRING); 

    if(strlen($user_Name)<4) { 
     $output = json_encode(array('type'=>'error', 'text' => 'Name is too short or empty!')); 
     die($output); 
    } 
    if(!filter_var($user_Email, FILTER_VALIDATE_EMAIL)) { 
     $output = json_encode(array('type'=>'error', 'text' => 'Please enter a valid email!')); 
     die($output); 
    } 
    if(strlen($user_Message)<5) { 
     $output = json_encode(array('type'=>'error', 'text' => 'Too short message! Please enter something.')); 
     die($output); 
    } 

    $sentMail = @mail($to_Email, $subject, $user_Message .' -'.$user_Name, $headers); 

    if(!$sentMail) { 
     $output = json_encode(array('type'=>'error', 'text' => 'Server error, could not send email. Sorry for the inconvenience.')); 
     die($output); 
    } else { 
     $output = json_encode(array('type'=>'success', 'text' => 'Message successfully sent!')); 
     die($output); 
    } 
?> 
+0

was meinst du mit „es keinen direkten Zugang kommt“? Gibt es eine Fehlermeldung? werden Sie auf eine Seite weitergeleitet? geben Sie mehr Details darüber, was passiert – Webeng

+0

Was ist der Name der Seite mit dem Formular, und was ist der Name der Seite mit dem PHP-Code? – Webeng

+0

yeah es ist eine Fehlermeldung, die auf einer anderen Seite erscheint – Smurfy

Antwort

0

Wenn Sie nicht diese PHP-Datei durch Ajax nennen warum Sie es hier isset($_SERVER['HTTP_X_REQUESTED_WITH']) Überprüfung Diese wird verwendet, wenn Sie anrufen durch Ajax. Es ist also überhaupt nicht festgelegt.

Kommentar diese Zeile und überprüfen

//if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest')   //die("No direct access."); 
+0

Brilliant danke, es funktioniert – Smurfy

+0

Gern geschehen. –

Verwandte Themen