forumeur
-
17 oct. 2012 à 08:38
Yelowwclo
Messages postés6Date d'inscriptionmercredi 3 août 2016StatutMembreDernière intervention 6 août 2016
-
3 août 2016 à 23:57
Bonjour,
Je n'arrive pas à mettre en place la validation d'email avec la fonction preg_match, ça fonctionne, mais ça me met "Email incorrect" dès l'ouverture de la page. Voici le code concernée :
IF($action == "commentaires") {
mysql_connect($host, $login_host, $pass_host) or die('Erreur de connexion');
mysql_select_db($hostname) or die('Base inexistante');
# was there a reCAPTCHA response?
if ($_POST["recaptcha_response_field"]) {
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if ($resp->is_valid) {
echo' <script type="text/javascript">
alert("Votre commentaire a été envoyé.");
</script>';
// Insertion dans la bdd
echo'<table width="80%" cellpadding="0" border="0" cellspacing="0" align="center" class="categories'.$prefixe.'">';
$email = strip_tags(secure($_POST['email_expediteur']));
$pseudo = strip_tags(secure($_POST['pseudo']));
$titre = strip_tags(secure($_POST['titre']));
$texte = strip_tags($_POST['texte']);
$note = strip_tags($_POST['note']);
$id = intval($_POST['id']);
$date = date("y-m-d");
$sql = "INSERT INTO ".$prefixe."_comments(id, pseudo,titre, texte, note, date, news) VALUES('','$pseudo','$titre','$texte','$note','$date','$id')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
echo'<tr>
<td align="center" valign="center" class="admin'.$prefixe.'"><h2>Your comment has been sent !<br/>'; var_dump ($resp); echo'<br/></h2></td>
<script type="text/javascript">
setTimeout("window.location=\'\'",5000);
</script>';
echo'</table>';
} else {
# set the error code so that we can display it
echo' <script type="text/javascript">
alert("Code invalide !");
setTimeout("window.location=\'\'",5000);
</script>';
}
}
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#",$_POST["email_expediteur"]) )// On filtre les serveurs qui présentent des bogues.
{
echo' <script type="text/javascript">
alert("Email incorrect");
setTimeout("window.location=\'\'",5000);
</script>';
}
else
{
//Envoi de l'email au webmaster
// on génère une frontière
$boundary = '-----=' . md5( uniqid ( rand() ) );
// on génère un identifiant aléatoire pour le fichier
$file_id = md5( uniqid ( rand() ) ) . $_SERVER['SERVER_NAME'];
$headers = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
$headers .= "Reply-to: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">".$passage_ligne;
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
//=====Définition du sujet.
$sujet = "Nouveau commentaire sur $titresite !";
$message = "Nouveau commentaire sur le site $titresite.\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= "<html><body>Pseudo : $pseudo<br><br>";
$message .= "Titre : $titre<br><br>";
$message .= "Note : $note<br><br>";
$message .= "Message : $message<br><br>";
$message .= "\n\n";
$message .= "--" . $boundary . "\n";
$message .= "Content-Type: image/jpg; name=\"avatars/$nomImage\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "Content-ID: <$file_id>\n\n";
$message .= $content_encode . "\n";
$message .= "\n\n";
$message .= "--" . $boundary . "--\n";
mail($email_webmaster, $sujet, $message, $headers);
//Email envoyé
if(!$_POST['submit']){
Impossible de mettre ma variable dans l'alert. Je pense que ce n'est pas la variable qui pose problème, mais la fonction preg_match qui est mal placée.