Problème de vérification de champ de formulaire

Résolu
nanti Messages postés 59 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 2 avril 2010 - 30 janv. 2008 à 14:14
nanti Messages postés 59 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 2 avril 2010 - 30 janv. 2008 à 17:22
Bonjour,

Je rencontre un problème de vérification de mes champs de formulaire :

Lorsque les champs obligatoires sont remplis ou vides, mon code PHP fonctionne !

Mais lorsque je le mail est faux... il me l'indique et pourtant il envoie quand même le mail !!! je souhaiterai savoir ce qu'il se passe et où est mon erreur car j'ai épuisé toutes mes ressources.

Voici le code en question :

<?php

if (isset($_POST['nom'])) {

    if (($_POST['nom']=='') && ($_POST['prenom']=='') && ($_POST['societe']=='') && ($_POST['phone']=="") && ($_POST['email']=='') && ($_POST['adresse']=='') && ($_POST['description']=='')) {

    echo 'Remplissez le formulaire !

';
   
    }

    elseif (($_POST['nom']=='') || ($_POST['prenom']=='') || ($_POST['societe']=='') || ($_POST['phone']=="") || ($_POST['email']=='') || ($_POST['adresse']=='')  || ($_POST['description']=='')) {

    echo 'Vous avez mal remplis le formulaire !';

    echo '
Veuillez recommencer.

';

    }

    elseif (($_POST['nom']!='') && ($_POST['prenom']!='') && ($_POST['societe']!='') && ($_POST['phone']!="") && ($_POST['email']!='') && ($_POST['adresse']!='') && ($_POST['description']!='')) {

            echo verif_mail();

    }

}

if (isset($_POST['envoi_form'])) {

    if (($_POST['nom']!='') && ($_POST['prenom']!='') && ($_POST['societe']!='') && ($_POST['phone']!="") && ($_POST['email']!='echo verif_mail();') && ($_POST['adresse']!='') && ($_POST['description']!='')) {

            echo mail_form();

    }

}

?>

Pour info :

-> verif_mail() est une fonction que j'ai trouvé sur ce site pour la validité de l'adresse.

-> mail_form() est la fonction qui envoie le mail et donne le message de bon envoi du formulaire.

D'avance merci à ceux qui pourront me renseigner en espérant que j'ai été assez clair !

6 réponses

helorem Messages postés 49 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 3 février 2008
30 janv. 2008 à 16:07
oki voila le truc :

function verif_mail() {

$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#'; // pour la vérification de l'email

if (!preg_match($Syntaxe,$_POST['email'])) {

    return 'Adresse email incorrecte !!!

';

}
    else return "";
}

et dans ton derneir if, tu rajoute
&& verif_mail() == ""

et ca va marcher
3
helorem Messages postés 49 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 3 février 2008
30 janv. 2008 à 15:32
Zalut nanti,

C'est normal que ca continu, dans ton if avant echo mail_form(), tu fais pas la verification de l'email.

Je peux pas t'aider plus, il faudrait que je sache ce que renvoi verif_mail().
0
nanti Messages postés 59 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 2 avril 2010
30 janv. 2008 à 16:01
Salut helorem !

La fonction verif_mail analyse la validité de l'adresse mail et la voici :

function verif_mail() {

$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#'; // pour la vérification de l'email

if (!preg_match($Syntaxe,$_POST['email'])) {

    echo 'Adresse email incorrecte !!!

';

}

}

Comme je l'ai dit, lorsque l'adresse mail n'est pas valide, le message est bien affiché, mais par la même occasion le formulaire est quand même envoyé et le message de mail_form() (qui délivre un message de confirmation de l'envoi de du formulaire par mail) s'affiche également. C'est là le bug que je voudrais enlever !!!!

Je souhaiterai que le message de verif_mail() s'affiche en haut de mon formulaire comme c'est le cas pour les autres messages des vérifications de champs qui le constitue.

Voili-voilà... et merci d'avance pour la petite soluce qui me sauvera !
0
nanti Messages postés 59 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 2 avril 2010
30 janv. 2008 à 16:54
Un grand MERCI, helorem !!!!

Mais peut-tu m'enseigner ce que génère le return par rapport à l'echo ????

Je vois bien la différence à l'affichage mais pas dans l'interprétation.

Encore merci !!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
helorem Messages postés 49 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 3 février 2008
30 janv. 2008 à 17:03
echo = afficher a l'ecran
return = retour d'un fonction

par exemple
verif_mail_avec _echo();
equivaut à :
$var = verif_mail_avec return();
echo $var;

Toi tu faisais ca :
echo verif_mail_avec_echo();
autrement dit :
echo "message erreur";
echo ""; //car la fonction renvoyait rien;
0
nanti Messages postés 59 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 2 avril 2010
30 janv. 2008 à 17:22
Ok ! Je pense avoir pigé !!!

Merci beaucoup !!!
0
Rejoignez-nous