我正在尝试设置一个表单来通过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;
}
}
?>
答案 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中进行符号链接。
注意:文件位置可能因分发而异。您可以使用a2endmod
和a2dismod
来正确管理符号链接。