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

PHP & Base de données Discussion :

Valider ou refuser une inscription d'un formulaire


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2013
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Valider ou refuser une inscription d'un formulaire
    Bonjour,

    Après création d'un formulaire , chaque donnée d'une inscription d'un client est transmit dans la base de donnée mais alors voila comment puis-je faire pour valider ou refuser certaine inscription ???

    Formulaire :
    Code html : 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
    <html>
     
        <head>
     
            <title>Création d'un formulaire </title>
     
        </head>
    	  <body>
    		<P>
    		Voici le formulaire d'inscription pour pouvoir commander vos rouleaux, veuillez saisir tout les champs d'information suivant :
    		<BR>
    		<BR>
    		</P>
            <form action="index2.php" method="post">
     
                <table>
     
                <tr>
     
                <td><label for="login"><strong>Votre Identifiant :</strong></label></td>
                <td><input type="text" name="login" id="login"/></td>
     
                </tr>
     
                <tr>
     
                <td><label for="pass"><strong>Mot de passe :</strong></label></td>
                <td><input type="password" name="pass" id="pass"/></td>
     
                </tr>
     
                <tr>
     
                <td><label for="pass2"><strong>Confirmez le mot de passe :</strong></label></td>
                <td><input type="password" name="pass2" id="pass2"/></td>
    			</tr>
    			<tr>
    			<td><label for="Nom"><strong>Votre Nom :</strong></label></td>
                <td><input type="text" name="Nom" id="Nom"/></td>
    			</tr>
    			<tr>
    			<td><label for="Prenom"><strong>Votre Prenom :</strong></label></td>
                <td><input type="text" name="Prenom" id="Prenom"/></td>
    			</tr>
    			<tr>
    			<td><label for="adresse"><strong>adresse du magasin:</strong></label></td>
                <td><input type="text" name="adresse" id="adresse"/></td>
    			</tr>
    			<tr>
    			<td><label for="CP"><strong>code postal :</strong></label></td>
                <td><input type="text" name="CP" id="CP"/></td>
    			<tr>
    			<td><label for="CP"><strong> ville :</strong></label></td>
                <td><input type="text" name="ville" id="ville"/></td>
    			</tr>
     
                </table>
     
            <input type="submit" name="register" value="S'inscrire"/>
     
            </form>
     
        </body>
     
    </html>

    et l'index :
    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    <?php
     
    // Connexion à la base de données 
        try
        {
            // On se connecte à MySQL 
            $bdd = new PDO('mysql:host=localhost;dbname=sfere_essaie', 'root', ''); 
        } 
        catch(Exception $e) 
        { 
            // En cas d'erreur, on affiche un message système et on arrête tout 
                 die('Erreur : '.$e->getMessage());
    	}
     
    $error = FALSE;
    $registerOK = FALSE;
     
     
    	 if(isset ($_POST["register"]))
    	{
     
     
            // On regarde si tout les champs sont remplis, sinon, on affiche un message à l'utilisateur.
            if($_POST["login"] == NULL OR $_POST["pass"] == NULL OR $_POST["pass2"] == NULL OR $_POST["nom"] == NULL OR $_POST["prenom"] == NULL OR $_POST["adresse"] == NULL OR $_POST["CP"] == NULL OR $_POST["ville"] == NULL )  
    		{
     
                // On met la variable $error à TRUE pour que par la suite le navigateur sache qu'il y'a une erreur à afficher.
                $error = TRUE;
     
                // On écrit le message à afficher :
                echo $errorMSG = "Tout les champs doivent &ecirctre remplis !";
     
            }
    		// Sinon, si les deux mots de passes correspondent :
            elseif($_POST["pass"] == $_POST["pass2"])
    		{
     
                // On regarde si le mot de passe et l'identifiant n'est pas le même
                if($_POST["login"] != $_POST["pass"])
    			{
     
                    // Si c'est bon on regarde dans la base de donnée si l'identifiant est déjà utilisé :
                   $sql = 'SELECT COUNT(*) AS nb_rec FROM gerant WHERE login = ?';
    			   $stmt = $bdd->prepare($sql);
    			   $exec = $stmt->execute(array($_POST['login']));
    				// Si $sql est égal à 0 (c'est-à-dire qu'il n'y a pas d'dentifiant avec la valeur tapé par l'utilisateur
                   if($exec)
    			   {
    					$data = $stmt->fetch();
    					if ($data['nb_rec'] == 0)
    					{
     
     
     
    						if($_POST["login"] != $_POST["pass"])
    						{
     
                               // Si tout ce passe correctement, on peut maintenant l'inscrire dans la base de données :
                            $req = $bdd->prepare('INSERT INTO gerant (login, pass, nom, prenom, adresse, CP, ville) VALUES (?, ?, ?, ?, ?, ?, ?)'); 
     
     
    						$req->execute(array($_POST['login'], $_POST['pass'], $_POST['nom'], $_POST['prenom'], $_POST['adresse'], $_POST['CP'], $_POST['ville']));
     
    						echo ' Vous &ecirctes maintenant inscrit et membre du site';
    						}
     
    						else
    						{
    						$error = TRUE;
                            echo $errorMSG = "Erreur dans la requ&ecircte SQL<br/>".$req."<br/>";
    						}
    					}
    					else
    					{
    						echo "l\identifiant est déja utilisé";
    					}
    				}
    				else
    				{
    					$error = TRUE;
    					echo $errorMSG = "L'identifiant <strong>".$_POST["login"]."</strong> est d&eacutejà utilis&eacute !";
    					$login = NULL;
    					$pass = $_POST["pass"];
    				}
    			}
    			else
    			{ 
     
                    $error = TRUE;
    				echo $errorMSG = "L'identifiant et le mot de passe doivent êtres différents !";
     
                }
    		}		// Sinon si les deux mots de passes sont différents :      
    		elseif($_POST["pass"] != $_POST["pass2"])
    		{
    				 $error = TRUE;
    			echo $errorMSG = "Les deux mots de passes sont différents !";
    				 $login = $_POST["login"];
    				 $pass = NULL;
     
    		}
     
    			// Sinon si l'identifiant et le mot de passe ont la même valeur :
    		elseif($_POST["login"] == $_POST["pass"])
    		{
     
    				 $error = TRUE;
    			echo $errorMSG = "L'identifiant et le mot de passe doivent être différents !";
     
    		}
    	}
     
    ?>
    Merci d'avance pour votre aide

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour, tu pourrais ajouter un champ
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    `valide` enum('0','1') NOT NULL default '0'

    Puis tu valides les inscriptions à la main.
    Et tu n'autorises les connexions que si valide = '1'

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2013
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Mais les inscriptions vont quand même s'ajouter dans la base ??

  4. #4
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Que dis-tu de ce genre d'algo, tu ne trouves pas ça plus lisible ?
    C'est axé sur ce qui marche, on se contente de signaler sur form.php via l'url ce qui ne marche pas.
    Si cela t'inspire, tu devras finir avec ta propre problématique bien sûr.
    Je n'ai pas tout fait.
    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
    	 if(isset ($_POST["register"])){
    		//que faut-il pour que ça passe le stade 1 ?
    		//pense au petit malin qui a rempli un truc puis effacé (pas nul mais vide dans ce cas)
    		$ok1=$_POST["login"] != NULL &&  $_POST["login"] != ''
    		&& $_POST["pass"] != NULL && $_POST["pass"] != ''
    		&& $_POST["pass2"] != NULL && $_POST["pass2"] != '';
    		//bon tu termines je n'ai pas mis toutes tes variables
     
    		if(! $ok1){
    			header('location:form.php?error=ok1');
    			//c'est la barre d'adresse ici qui te dira quoi afficher sur form.php
    		}
    		else{
    			$ok2=$_POST["pass"] == $_POST["pass2"];
    			if(! $ok2){
    			header('location:form.php?error=ok2');
    			//c'est la barre d'adresse ici qui te dira quoi afficher sur form.php
     
    			}
    			else{
    				$ok3=$_POST["login"] != $_POST["pass"];
    				if(! $ok3){
    					header('location:form.php?error=ok3');
    					//c'est la barre d'adresse ici qui te dira quoi afficher sur form.php
    				}
    				else{
    				   //tu continues ici tes traitements en db
                                       //seuls ceux qui ont tout bon sont intégrés dans la base
    				}
    			}
    		}
    	}
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/06/2010, 06h23
  2. Envoi d'un e-mail validant une inscription
    Par midnnight dans le forum Langage
    Réponses: 3
    Dernier message: 18/12/2008, 18h30
  3. Réponses: 2
    Dernier message: 04/07/2007, 17h10
  4. [Formulaire]Refusé une donnée dans un formulaire
    Par oops1980 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/03/2007, 13h40
  5. Réponses: 17
    Dernier message: 31/08/2006, 14h50

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