Problème de vérification de champ de formulaire

[Résolu]
Signaler
Messages postés
59
Date d'inscription
samedi 14 avril 2007
Statut
Membre
Dernière intervention
2 avril 2010
-
Messages postés
59
Date d'inscription
samedi 14 avril 2007
Statut
Membre
Dernière intervention
2 avril 2010
-
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

Messages postés
49
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
3 février 2008

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
Messages postés
49
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
3 février 2008

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().
Messages postés
59
Date d'inscription
samedi 14 avril 2007
Statut
Membre
Dernière intervention
2 avril 2010

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 !
Messages postés
59
Date d'inscription
samedi 14 avril 2007
Statut
Membre
Dernière intervention
2 avril 2010

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 !!!!
Messages postés
49
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
3 février 2008

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;
Messages postés
59
Date d'inscription
samedi 14 avril 2007
Statut
Membre
Dernière intervention
2 avril 2010

Ok ! Je pense avoir pigé !!!

Merci beaucoup !!!