Je suis débutant en php mais j'ai préféré mettre ce topic dans php avancée car je pense que c'est un peu compliqué mon truc (ou pas ?).
Alors tout d'abord j'ai une page recrutement.php qui contient ce code :
Code : Tout sélectionner
<?php
if(isset($_POST['email']) and isset($_POST['sujet']) and isset($_POST['message']))
{
$destinataire = '[email protected]';
$email = htmlentities($_POST['email']);
if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&','&',$email)))
{
$sujet = 'Contact: '.stripslashes($_POST['sujet']);
$message = stripslashes($_POST['message']);
$headers = "From: <".$email.">\n";
$headers .= "Reply-To: ".$email."\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
if(mail($destinataire,$sujet,$message,$headers))
{
echo "<strong>Votre message a bien été envoyé.</strong>";
}
else
{
echo "<strong style=\"color:#ff0000;\">Une erreur c'est produite lors de l'envois du message.</strong>";
}
}
else
{
echo "<strong style=\"color:#ff0000;\">L'email que vous avez entré est invalide.</strong>";
}
}
else
{
?>
<form action="http://www.tournoiarea.com/app/vues/formmail/formmail.php" method="post">
<p>
<fieldset class="solid">
<legend>Formulaire de recrutement</legend>
<label for="email" style="display:inline-block;width:100px;" class="border"><strong>Votre Email:</strong></label> <input type="text" name="email" id="email" /><br />
<label for="sujet" style="display:inline-block;width:100px;" class="border"><strong>Poset :</strong></label> <select name="sujet" id="sujet">
<optgroup label="Organisateurs">
<option value="Counter-Strike 1.6">Counter-Strike 1.6</option>
<option value="Counter-Strike : Source">Counter-Strike : Source</option>
<option value="Call Of Duty 4">Call Of Duty 4</option>
<option value="Left For Dead">Left For Dead</option>
</optgroup>
<optgroup label="Modérateurs">
<option value="Counter-Strike 1.6">Counter-Strike 1.6</option>
<option value="Counter-Strike : Source">Counter-Strike : Source</option>
<option value="Call Of Duty 4">Call Of Duty 4</option>
<option value="Left For Dead">Left For Dead</option>
</optgroup>
<optgroup label="Autres">
<option value="IRC-MASTER">IRC-MASTER</option>
</optgroup>
</select>
<br />
<label for="message" class="border"><strong>Message:</strong></label><br />
<textarea cols="70" rows="4" name="message" id="message"></textarea><br />
<input type="submit" value="Envoyer" />
</fieldset>
</p>
</form>
<?php
}
?>Code : Tout sélectionner
<?php
$TO = "[email protected]";
$h = "From: " . $email;
$message = "";
while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}
mail($TO, $sujet, $message, $h);
header('location: http://www.tournoiarea.com/merci/merci' );
?>
Le problème est que lorsque je fais appel à cette page "formmail.php" , sa me redirige bien, je reçois le mail mais les caractères spéciaux ne s'affichent pas.
En revanche, quand je laisse la ligne qui appel le fichier "formmail.php" vide, et bien les caractères spéciaux s'affichent bien mais je n'ai pas ma redirection voulu et si on fait "Précédent" le formulaire est renvoyer dans je le reçois en plusieurs fois.
Je ne sais pas trop comment faire.
Merci