2016-06-06 4 views
0

source Site Web: http://www.salefee.com/Envoi email à l'administrateur lorsque le formulaire est rempli

J'ai fait un formulaire sur le site Web pour envoyer un message à l'administrateur après avoir rempli le formulaire (en utilisant php). Mon formulaire HTML est donné ci-dessous:

<html> 
<body> 
<!-- Contact form --> 
       <form autocomplete="on" action='./contact.php' method='post'> 
       <div class="form-horizontal contact-form" role="form"> 
       <fieldset> 
        <legend>Contact</legend> 
        <div class="r1 row form-group"> 
        <div class="c1 col-sm-6 col-md-6" style="float:left;"> 
         <input class="form-control1" id="fname" name="fname" type="text" placeholder="First Name *" required autocomplete="on"> 
        </div> 
        <div class="c2 col-sm-6 col-md-6" > 
         <input class="form-control1" id="lname" name="lname" type="text" placeholder="Last Name *" required autocomplete="on"> 
        </div> 
        </div> 
        <div class="r2 row form-group"> 
        <div class="c1 col-sm-6 col-md-6"> 
         <input class="form-control2" id="email" name="email" type="email" placeholder="Email *" required autocomplete="on"> 
        </div> 
        <div class="c2 col-sm-6 col-md-6"> 
         <input class="form-control3" id="phone" name="phone" type="tel" placeholder="Phone" autocomplete="on"> 
        </div> 
        </div> 

        <div class="r4 row form-group"> 
        <div class="c1 col-md-12"> 
         <input class="form-control4" id="subject" name="subject" type="text" placeholder="Subject *" required> 
        </div> 
        </div> 
        <div class="r5 row form-group"> 
        <div class="c1 col-md-12"> 
         <textarea class="form-control5" id="message" name="message" rows="10" placeholder="Message *" required></textarea> 
        </div> 
        </div> 
        <div class="r6 row form-group" style="text-align:center; margin-right:16%"> 
        <div class="c1 col-md-12" > 
         <button class="btn btn-lg btn-danger submit-form-contact" type="submit">Send Message</button> 
        </div> 
        </div> 
       </fieldset> 
       </div> 
       </form> 
       <!-- End Contact form --> 
</body> 
</html> 

Mon fichier est contact.php comme donné ci-dessous:

<?php 
if ($_POST) { 
    $to_email = "[email protected]"; //Recipient email, Replace with own email here 

    //check if its an ajax request, exit if not 
    if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { 
    $output = json_encode(array(//create JSON data 
     'type'=>'error', 
     'text' => 'Sorry Request must be Ajax POST.' 
    )); 
    die($output); //exit script outputting json data 
    } 

    //Sanitize input data using PHP filter_var(). 
    $user_fname = filter_var($_POST["fname"], FILTER_SANITIZE_STRING); 
    $user_lname = filter_var($_POST["lname"], FILTER_SANITIZE_STRING); 
    $user_email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL); 
    $user_phone = filter_var($_POST["phone"], FILTER_SANITIZE_NUMBER_INT); 
    //$user_company = filter_var($_POST["user_company"], FILTER_SANITIZE_STRING); 
    //$user_website = filter_var($_POST["user_website"], FILTER_SANITIZE_STRING); 
    $subject  = filter_var($_POST["subject"], FILTER_SANITIZE_STRING); 
    $message  = filter_var($_POST["message"], FILTER_SANITIZE_STRING); 

    //additional php validation 
    if (strlen($user_fname) < 3) { // If length is less than 3 it will output JSON error. 
    $output = json_encode(array('type'=>'error', 'text' => 'First Name is too short or empty.')); 
    die($output); 
    } 
    if (strlen($user_lname) < 3) { // If length is less than 3 it will output JSON error. 
    $output = json_encode(array('type'=>'error', 'text' => 'Last Name is too short or empty.')); 
    die($output); 
    } 
    if (!filter_var($user_email, FILTER_VALIDATE_EMAIL)) { //email validation 
    $output = json_encode(array('type'=>'error', 'text' => 'Please enter a valid email.')); 
    die($output); 
    } 
    if (!filter_var($user_phone, FILTER_SANITIZE_NUMBER_FLOAT)) { //check for valid numbers in phone number field 
    $output = json_encode(array('type'=>'error', 'text' => 'Enter only digits in phone number.')); 
    die($output); 
    } 
    if (strlen($subject) < 1) { //check emtpy subject 
    $output = json_encode(array('type'=>'error', 'text' => 'Subject is required.')); 
    die($output); 
    } 
    if (strlen($message) < 3) { //check emtpy message 
    $output = json_encode(array('type'=>'error', 'text' => 'Too short message! Please enter something.')); 
    die($output); 
    } 

    //email body 
    $message_body = "Name : ".$user_fname." ".$user_lname."\r\nEmail : ".$user_email."\r\nPhone : ".$user_phone."\r\nCompany: ".$user_company."\r\nWebsite: ".$user_website."\r\n\r\n".$message; 

    //proceed with PHP email. 
    $headers = 'From: '.$user_fname.''."\r\n". 
    'Reply-To: '.$user_email.''."\r\n". 
    'X-Mailer: PHP/'.phpversion(); 

    $send_mail = mail($to_email, $subject, $message_body, $headers); 

    if (!$send_mail) 
    { 
    //If mail couldn't be sent output error. Check your PHP email configuration (if it ever happens) 
    $output = json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration.')); 
    die($output); 
    } else { 
    $output = json_encode(array('type'=>'message', 'text' => 'Hi '.$user_fname.', thank you for your email.')); 
    die($output); 
    } 
} 
?> 

Le problème est que après avoir cliqué sur soumettre, je ne reçois pas URL email.The après soumettre devient comme http://www.salefee.com/?fname=Test&lname=name&email=test%40email.com&phone=1234567890&subject=testsubject&message=testmessage Je veux recevoir un email quand l'utilisateur clique soumet le bouton à l'identification d'email mentionnée. S'il vous plaît aidez-moi avec ce code.

Merci d'avance !!

+0

Quel est le contenu du fichier auquel il demande de sauver? – weigreen

Répondre

0

Si le serveur veut enregistrer votre fichier, il y a un problème avec votre serveur PHP, probablement vous n'avez aucun serveur PHP installé ou ne peux pas lire les fichiers .php ou a la configuration de bade.

REMARQUE: D'abord, votre balise de formulaire doit notamment lien d'action où redirect après soumission et méthode, sumethimg comme ceci: <form action='./contact.php' method='post'></form>, si ce n'est pas rempli, votre soumettre le formulaire sera soumis au même fichier.

Deuxièmement, si vous ne présentez pas avec AJAX, vous devez supprimer cette partie du code dans contact.php

//check if its an ajax request, exit if not 
if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { 
    $output = json_encode(array(//create JSON data 
     'type'=>'error', 
     'text' => 'Sorry Request must be Ajax POST.' 
    )); 
    die($output); //exit script outputting json data 
}