IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

controle formulaire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Par défaut controle formulaire
    pourriez vous me donner un coup de main, j'ai un formulaire, j'aimerais controler que le champ mail ne soit pas vide, puis que le mail est valide, que le mail existe dans la base... si tous cela fonctionne il envoi un mail et remplace le formulaire par un message...

    voici ma page, merci de votre aide....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
    <head>
    <? require("commun/head.php") ?>
    </head>
     
    <body id="toto">
     
    <? require("commun/cache.php"); ?>
    <? require("commun/header.php"); ?>
    <? require("commun/menu.php"); ?>
    <? require("commun/sousmenu.php"); ?>
     
    <div id=global>
    	<div id="services"><? require("commun/pubclicfr600x120.php"); ?></div>
    	<div id="contenu">
    		<p class="fil"><a href="cc_identifiant.php?nat=<? echo $nat; ?>&lang=<? echo $lang; ?>&r=20&t=<? echo $t; ?>">Mon compte</a> > Rappel des identifiants</p>	
    	<!--BLOC-->
    	<h1>MON COMPTE</h1>
    	<h2>rappel des identifiants</h2>
     
    	<p>Veuillez entrer dans le formulaire ci-dessous l'adresse électronique de votre compte client (il s'agit de l'adresse avec laquelle vous vous êtes inscrit(e)).</p>
     
    	<div class="typeB">
    	<? if (empty($_POST["mail"])) { 
                     echo $erreurmail="Saisissez votre mail..."; 
            }
            elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$",$_POST["mail"])){ 
                     echo $erreurmail2="Votre adresse e-mail n'est pas valide..."; 
            }
    		$sql="SELECT * FROM membres WHERE mailsociete='$checkmail'";
    $result=mysql_query($sql);
    	if($enreg=@mysql_fetch_array($result))
    	{
    	$enregnom=$enreg["nom"];
    	$enregprenom=$enreg["prénom"];
    	$enregprenom=$enreg["login"];
    	$enregprenom=$enreg["pass"];
     
    	$msg = "Bonjour $enregnom $enregprénom,\n";
    	$msg .= "Vos codes d’accès à votre compte personnel sur www.toto.com sont les suivants :\n";
    	$msg .= "Voici votre pseudo : :\t$login\n";
    	$msg .= "Voici votre mot de passe : :\t$pass\n";
    	$msg .= "Si ces informations ne vous permettent toujours pas de vous connecter sur www.toto.com, vous pouvez consulter notre support :\t$adresse\n";
    	$msg .= "Question :\t$question\n\n";
     
    	$recipient = "$checkmail\n";
    	$subject = "Vos informations personnelles sur toto.com";
     
    	$entete="Reply-to: webmaster@toto.com\n";   
    	$entete.="From: webmaster@toto.com\n";   
    	$entete.="Date: ".date("l j F Y, G:i")."\n";
     
    	mail($recipient, $subject, $msg, $entete);
     
    	echo $erreurmail3="message envoyé...";
    	}
    	else
    	{
    	echo $erreurmail4="votre email n'existe pas...";
    	}
    		?>
    	<form method="post" action="<? echo $_SERVER["PHP_SELF"]; ?>?nat=<? echo $nat; ?>&lang=<? echo $lang; ?>&r=20&t=<? echo $t; ?>">
    	<label>Votre adresse e-mail</label><input type="text" name="mail" class="form3" size="60" value="<? if (!empty($_POST["mail"])) {echo htmlspecialchars($_POST["mail"],ENT_QUOTES); } ?>" /></p>
    	<input type="image" name="envoyer" src="images/valider.gif" alt="valider" />
    	<input type="hidden" name="r" value="<? echo $r; ?>">
    	<input type="hidden" name="lang" value="<? echo $lang; ?>">
    	<input type="hidden" name="nat" value="<? echo $nat; ?>">
    	<input type="hidden" name="t" value="<? echo $t; ?>">
    	</form>
    	</div>
    	<div class="publigne"><? require("commun/pubclicfr468x60.php"); ?></div>
    	<!--/BLOC-->
    	</div>
    </div>
     
    <? require("commun/drapeau.php"); ?>
    <? require("commun/copyright.php"); ?>
    <? require("commun/conformite.php"); ?>
    <? require("commun/realisation.php"); ?>
     
    </body>
    </html>

  2. #2
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    il existe plusieurs manières de faire, mais au plus simple, il faut que tu fasse un block de test avec 1 passe pour le champs vide, 1 passe pour l'existence, en principe la validité devrait déjà avoir été vérifiée lors de l'enregistrement initial...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    // initialisations
    $email=(!isset($_POST['email']))?(''):($_POST['email']);
    $msg='merci !';
     
    // test si email vide
    if( empty($email) ) $msg='le champs email est vide";
    else {
     
       // test si email existe
       $sql="SELECT `email` FROM `matable` WHERE `email` LIKE '$email'";
       $res=mysql_query($sql);
     
       // si erreur requete
       if(!$res) $msg="erreur dans la requête";
       else {
     
          // si email n'existe pas
          if( mysql_num_rows($res) == 0 ) echo "l'email n'existe pas";
     
       }
     
    }
     
    echo $msg;

  3. #3
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    stp, donne nous les morceaux de codes qui nous interessent ...
    pas toutes ta pages on s'y perd a fond.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Par défaut
    dans mon cas je fais tout sur la meme page.

    mais si tous va bien dans le controle (vide/email valide/mail existant), le formulaire disparait, je traite en envoyant un mail et je remplace le formulaire par "merci votre email a été envoyer....."

  5. #5
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    moi je ferais des fonctions pour plus de clarté et de compréhension, mais tu n'es pas obligé...
    je n'ai pas testé ce code, il se peut qu'il traine une coquille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <?php
     
    // fonction de test email vide
    function isMailVide($mail) {
       return empty($mail);
    }
     
    // fonction de validité d'email
    function isValidEmail($mail) {
       return preg_match('`^\w([-_.]?\w)*@\w([-_.]?\w)*\.([a-z]{2,4})$`',$mail);
    }
     
    // fonction d'existence email
    function ExistMail($mail) {
       // connexion base puis
       $sql="SELECT `email` FROM `matable` WHERE `email` LIKE '$mail'";
       $res=@mysql_query($sql);
       return mysql_num_rows($res);
    }
     
    // initialisation
    $form=1;
     
    // si le formulaire a ete envoye
    if (isset($_POST['sub'])) {
     
       // initialisations
       $email=(!isset($_POST['email']))?(''):($_POST['email']);
       $msg='';
     
       // test si email non vide
       if( !isMailVide($email) ) $msg.='<li>le mail est vide !</li>';
     
       // test si email existe
       if( !ExistMail($email) ) $msg.='<li>cet email est inexistant dans la base</li>';
     
       // test si email valide
       if( !isMailValid($email) ) $msg.='<li>le mail est invalide !</li>';
     
       echo "<div style="border: 2px solid #FF0000;color: #FF0000;font-weight: bold;">"
     
       // envoie email sinon affiche message erreur
       if( empty($msg) ) {
          if(!mail($email,'xxxx','xxxxxxxx')) $msg.='<li>erreur envoi courrier email !</li>';
         else {
            $form=0;
            $msg.='le message a bien été envoyé.';
         }
     
         $msg.='</div>'; 
         echo $msg;
    }
     
    // affichage formulaire
    if($form) {
     
       echo <<<EOF
    <h2>ici mon formulaire</h2>
    EOF;
     
    }
    ?>

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 107
    Par défaut
    un grand merci à ska_root pour son aide !!! ça fonctionne....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/04/2006, 17h03
  2. PB controle formulaire avec tableau à double entrées
    Par Poutchou dans le forum Général JavaScript
    Réponses: 36
    Dernier message: 23/03/2006, 15h37
  3. [VBA-E] collection des controles formulaire
    Par borisa dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/03/2006, 19h22
  4. controle formulaire + JS
    Par cyrill.gremaud dans le forum Langage
    Réponses: 13
    Dernier message: 16/02/2006, 15h24
  5. Controle formulaire
    Par cvmz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/01/2006, 13h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo