Bonjour,

Mon formulaire en php lorsqu'on y inscrit une adresse E-mail en majuscule et minuscule mélangées, refuse l'envoi!.
Comme j'ai 2 adresses E-mail, une rien qu'en minuscule et l'autre comporte 1 majuscule et le reste en minuscule.
Pour tester je me suis envoyé le formule à chacun des E-mails. Mais lorsque je rentre dans mon fichier "envoyer.php". (Voir exemple )
$destinataire = "monPrenom@gmx.de";
Ici l'envoi ne se fait pas! Bien qu'aujourd'hui le mélange maj+min n'est pas fréquent le formulaire fonctionne bien!
merci pour votre aide!
Cdt

<?php
session_start();
/******************************************************************************/
//mettre ici adresse du webmaster ou administrateur ou contact commercial ...
$destinataire = "monPrenom@gmx.de";
/******************************************************************************/

function checkMail($mail=null){
if(preg_match("/^[\d\w\/+!=#|$?%{^&}*`'~-][\d\w\/\.+!=#|$?%{^&}*`'~-]*@[A-Z0-9][A-Z0-9.-]{1,61}[A-Z0-9]\.[A-Z]{2,6}$/ix",$mail)){
return true;
}else{
return false;
}
}

// -----------------------------------------
// (il manque $v , $v=htmlentities(trim($v));
// par
// -----------------------------------------

$err = null;
foreach($_POST as $k => $v){
  if(empty($_POST[$k])){
  $err .= $k.' est vide<br />';
  }else{
  $v=htmlentities(trim($v));
  }
} 

if(isset($_POST['code']) && isset($_SESSION['code']) && !empty($_SESSION['code']) && $_POST['code']===$_SESSION['code']){

// Pour chaque variable on verifie l'existance d'une valeur.

   if(empty($err) && checkMail($_POST['email'])===true){
        
        //aucune erreur preparation du mail pour envoi.
        $from = $_POST['email'];
        $message  = "Vous avez reçu un message<br />";
        $message .= "IP : ".$_SERVER["REMOTE_ADDR"]." en date du ".date('d-m-Y à H:i:s')."<br />";
        $message .= "<div style=\"background-color: #fedcba;\">Message : <br />".wordwrap($_POST['message'],100,"<br />",true)."<br /></div>";
        //@ $text = "Un mot très très loooooooooooooooooong.";
        //@ $newtext = wordwrap($text, 8, "\n", true);
        //@ echo "$newtext\n";
                                                                        
        $msg='';
        unset($_POST['envoi']);
        unset($_POST['code']);
        unset($_POST['message']);
        
        foreach($_POST as $k => $v){
        $msg .= '<p>'.$k.' : '.$v.'</p><br />';
        }
        
        $m = $message.$msg;
        
        $headers  = 'From: "Contact_du_site "<monnom@wanadoo.fr>'."\n";
        $headers .= 'Reply-To: '.$_POST['email']."\n";
        $headers .= 'Content-Type: text/html; charset="UFT-8"'."\n";
        $headers .= 'Content-Transfer-Encoding: 8bit';
        
            if(empty($err) && mail($destinataire, "Contact_de_client", $m, $headers)){
            
            unset($_SESSION['code']);
            echo '<hr><h3 align="center"><font color="green">Message envoyé (erfolgreich abgeschickt) !<br />
            Votre IP : '.$_SERVER['REMOTE_ADDR'].' est concervée
            jusqu\'au traitement du mail afin d\'éviter les abus !</font><br /><a href="javascript:history.back();">RETOUR-zurück</a></h3><hr>';
            }else{
            echo '<hr><h3 align="center">Un problème sur le serveur n\'a pas permit l\'envoi de votre message.
            <br />Merci de réessayer ultérieurement-bitte später versuchen<br />
            ou de me joindre directement par mail<br />
            à l\'adresse : '.$destinataire.'<br /><a href="javascript:history.back();">RETOUR</a></h3><hr>';
            }
        
    }else{
        
                if(!checkMail($_POST['email'])){
                $err .= '<hr><font color="red">Vérifier votre e-mail ?</font><hr>';
                $err .= '<a href="javascript:history.back();">RETOUR</a>';
                }else{
                $err .= '<a href="javascript:history.back();">RETOUR</a>';
                }
        
    }


unset($_POST); 

echo $err;

}else{
/*
rien envoyer ou acces direct interdit
on redirige vers le formulaire que l'on vide
et si la page n'existe pas vers google
*/  
  if(file_exists('../formulaire.html')){
  header('Location: ../formulaire.html');exit;
  }else{
  header('Location:  http://www.google.us');exit;
 
  }

}
?>
Mille fois désolé! pardon! Smiley rolleyes
Mais j'ai trouvé le problème (mauvaise écriture) Smiley decu
Les 2 adresses E-mail fonctionnent.
Résolu! Smiley biggrin
Cdt
Bonjour,

pourquoi faire simple lorsque l'on peut faire compliqué.


[A-Z0-9]


à remplacer par


[:alnum:]




en PHP, il existe aussi une fonction native qui vérifie les adresses email, cela évite les approximations en matière d'expression régulière (pas facile....).

un petit filter_var avec un FILTER_VALIDATE_EMAIL, peut-être?

filter_validate_email en php
Bien vu.
en remplaçant [A-Z0-9] par [:alnum:] je reçois le message:
syntaxe du e-mail monPrenom@gmx.de incorrecte ou majuscule.