PHP文件不像PHP那样,但像页面一样

时间:2015-03-26 22:09:42

标签: php

我正在尝试设置一个表单来通过PHP发送电子邮件。我以前已经完成了所有这些,所以我使用了相同的代码,但这一次,当我提交表单时,它只是将.php文件作为普通页面运行。它不会在其中运行代码。有任何想法吗?

这是我的代码:

<form method="post" action="inc/form-to-email.php" name="myemailform">
        <fieldset>
            <legend>Nouveau Client</legend>
            <p style="color: red;" /> * Champ obligatoires</p>
            <label for="nom">Nom<span style="color: red; " >*</span> :</label><br />
            <input type="text" name="nom" id="nom" size="50" />
            <br />
            <br />
            <label for="role">Rôle ( Mère, Père, Tuteur légal, etc.)<span style="color: red; " >*</span> :</label><br />
            <input type="text" name="role" id="role" size="50" />
            <br />
            <br />
            <label for="telephone">Téléphone<span style="color: red; " >*</span> :</label><br />
            <input type="text" name="telephone" id="telephone" size="50" />
            <br />
            <br />
            <label for="autretelephone">Autre Téléphone:<br />
            <input type="text" name="autretelephone" id="autretelephone" size="50"/>
            <br />
            <br />
            <label for="courriel">Courriel<span style="color: red; " >*</span> :</label><br />
            <input type="email" name="courriel" id="courriel" size="50" />
            <br />
            <br />
            <label for="mcmasterville">McMasterville</label>
            <input type="radio" name="clinique" value="McMasterville" id="mcmasterville" checked />
            <br />
            <br />
            <h6>Renseignement sur l'enfant</h6><br />
            <label for="nomEnfant">Prénom<span style="color: red; " >*</span> :</label><br /> 
            <input type="text" name="nomEnfant" id="nomEnfant" size="50" />
            <br />
            <br />
            <label for="age">Âge <span style="color: red; " >*</span> : </label><br />
            <input type="text" name="age" id="age" size="50" />
            <br />
            <br />
            Sexe<span style="color: red; " >*</span> :<br />
            <label for="masculin">Masculin</label>
            <input type="radio" name="sexe" value="masculin" id="masculin" checked /><br />
            <label for="feminin">Feminin</label>
            <input type="radio" name="sexe" value="feminin" id="feminin" /><br />
            <h6>Raison de la demande</h6>
            <label for="raison">Raison qui me pousse à consulter en Ergothérapie <span style="color: red; " >*</span> :</label><br /> 
            <textarea name="raison" id="raison" rows="10" cols="45"></textarea>
            <br />
            <br />
            <h6>Exemple de motifs de consultation</h6><br />
            <div id="motifs">
            <?php while ( have_posts() ) : the_post(); ?>

                <?php get_template_part( 'content', 'page' ); ?>

            <?php endwhile; ?>
            </div>
            <label for="reference">Qui vous a référé à MarcherParlerPenser?</label><br />
            <input type="text" name="reference" id="reference" size="50" /><br />
            <label for="fonction">Fonction de cette personne</label><br />
            <input type="text" name="fonction" id="fonction" size="50" /><br />
            <br />
            <input type="submit" name="submit" value="Envoyer" /><br />
        </fieldset>
        </form>

`

和PHP文件:

<?php
if(!isset($_POST['submit']))
{
    //This page should not be accessed directly. Need to submit the form.
    echo "<script type='text/javascript'>alert('Erreur vous ne devrierz pas etre ici ! ');</script>";
}
    $name = $_POST['nom'];
    $role = $_POST['role'];
    $telephone = $_POST['telephone'];
    $autretelephone = $_POST['autretelephone'];
    $visitor_email = $_POST['courriel'];
    //Rechercher la clinique
    $prenom_enfant = $_POST['nomEnfant'];
    $age_enfant = $_POST['age'];
    $sexe = $_POST['sexe'];
    $raison = $_POST['raison'];
    $reference = $_POST['reference'];
    $fonction = $_POST['fonction'];

    //Validate first
    $isValide = true;
    $confirmation = "Le formulaire comporte des erreurs: \n";
    if(empty($name)) 
    {
        $confirmation .= "Le nom ne peut être vide \n";
        $isValide = false;
    }
    if(empty($role))
    {
        $confirmation .= "Le role ne peut être vide \n";
        $isValide = false;
    }

    if(empty($telephone))
    {
        $confirmation .= "Le numéro de téléphone ne peut être vide \n";
        $isValide = false;
    }

    if(empty($visitor_email))
    {
        $confirmation .= "Le courriel ne peut etre vide \n";
        $isValide = false;
    }

    if(empty($prenom_enfant))
    {
        $confirmation .="le prénom de l'enfant ne peut être vide \n";
        $isValide = false;
    }

    if(empty($age_enfant))
    {
        $confirmation .="l'âge de l'enfant ne peut être vide \n";
        $isValide = false;
    }

    if(empty($raison))
    {
        $confirmation .="les raison de consultation ne peuvent être vide \n";
        $isValide = false;
    }
    if(!$isValide)
    {
        echo  "<script type='text/javascript'>alert($confirmation);</script>";
        exit;
    }

    if(IsInjected($visitor_email))
    {
        echo  "<script type='text/javascript'>alert('Email invalide!');</script>";
        exit;
    }

    $email_from = "info@marcherparlerpenser.com";//<== update the email address
    $email_subject = $sujet;
    $email_body = "vous avez reçu un E-mail de la pars de $name.\n
                   Information du client:\n
                   nom: $name\n
                   Rôle avec l'enfant: $role\n
                   Numéro de téléphone: $telephone\n
                   Autre numéro de téléphone: $autretelephone\n
                   Addresse Email: $visitor_email\n
                   Information de l'enfant:\n
                   Prénom de l'enfant: $prenom_enfant\n
                   Âge de l'enfant: $age\n
                   Sexe de l'enfant:\n
                   Raison de la consultation:\n  $raison\n 
                   Personne de référence: $reference\n 
                   Fonction de cette personne: $fonction\n";


    $to = "dzzuick@gmail.com";//<== update the email address
    $headers = "From: $email_from \r\n";
    $headers .= "Reply-To: $visitor_email \r\n";
    //Send the email!
    if(mail($to,$email_subject,$email_body,$headers)){
    //done. redirect to thank-you page.
     header("location: /index.php");
    echo "<script type='text/javascript'>alert('Merci, nous vous répondrons sous peu !');</script>";
    }

    // Function to validate against any email injection attempts
    function IsInjected($str)
    {
      $injections = array('(\n+)',
                  '(\r+)',
                  '(\t+)',
                  '(%0A+)',
                  '(%0D+)',
                  '(%08+)',
                  '(%09+)'
                  );
      $inject = join('|', $injections);
      $inject = "/$inject/i";
      if(preg_match($inject,$str))
        {
        return true;
      }
      else
        {
        return false;
      }
    }

   ?>

2 个答案:

答案 0 :(得分:0)

请勿在测试后忘记退出,否则脚本会在之后继续。 所以用这个更新:

echo "<script type='text/javascript'>alert('Erreur vous ne deviez pas etre ici ! ');</script>";
exit;

然后,如果您不回到另一个页面,请使用AJAX。 您在此处有一个示例:http://www.askaboutphp.com/213/php-and-jquery-submit-a-form-without-refreshing-the-page.html

答案 1 :(得分:0)

您需要确保在配置文件中正确定义了处理程序。类似的东西:

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

当然,你还需要一个处理程序......

LoadModule php5_module /usr/lib/apache2/modules/libphp5.so

通常,在大多数linux上,这些都在/ etc / apache2 / mods-available中......它们只需要在/ etc / apache2 / mods-enabled中进行符号链接。

注意:文件位置可能因分发而异。您可以使用a2endmoda2dismod来正确管理符号链接。