7763 sujets

Développement web côté serveur, CMS

Salut, je cherche à limiter le nombre d'inscrit de ma page admin vue que l'enregistrement dans ma base de données se fait à chaque fois que je fais une inscription. J'ai une page inscription que voici le contenu:

     <!DOCTYPE html>
    <html class="bg">
        <head>
            <meta charset="utf-8" />
                <link rel="stylesheet" href="style_connexion.css"/> 
                    <title>Formulaire d'inscription</title>
        </head>
            <body>
                <div id="form">
                    <div id="titre">Formulaire d'inscription</div>

                        <form method="post" action="accept_inscription.php" style="padding:5%">

                            <label class="label" for="pseudo" required>Pseudo</label></br>
                            <input class="champ" id="pseudo" type="text" name="pseudo" required></br>
							<label class="label" for="email" required>Email</label></br>
                            <input class="champ" id="email" type="email" name="email" required></br>
                            <label class="label" for="password" required>Mot de passe</label></br>
                            <input class="champ" id="password" type="password" name="password" required></br>
							<label class="label" for="passwordverif" required>Retapez le mot de passe</label></br>
                            <input class="champ" id="passwordverif" type="password" name="passwordverif" required></br>
                            <input id="submit" type="submit" value="Valider" name="valider"/>
                        </form>
                </div>	
            </body>
    </html>


Ensuite une page de traitement dont voici le code:

     <!DOCTYPE html>
<html>
    <head>
	    <meta charset="utf-8" />
	    <title>Validation des inscriptions des administrateurs</title>
		<link rel="stylesheet" href="sogim.css" />
		<link rel="stylesheet" href="css/bootstrap.min.css" />
		<link rel="stylesheet" href="css/bootstrap-theme.min.css"/>
	</head> 
	               
	    <body>    
			    <div id="bloc_page">
				    <?php
					    //include("entete.php");
					    /* include("fonctions.php"); */
                    ?>
			        <section class="row">
		                <div  align="center" class="col-md-12 col-sm-12 col-xm-12">       

							<?php
								if(isset($_POST['valider']))
								{
									$pseudo=$_POST['pseudo'];
									$email=$_POST['email'];
									$password=$_POST['password'];
									$passwordverif=$_POST['passwordverif'];	
								
									if($password!=$passwordverif)
										{
											echo 'Les 2 mots de passe doivent être identiques!</br> <a href="inscription.php">Réessayez</a>';
										}
										else
										{
											//echo 'Vos données saisies sont: </br></br>'."Pseudo: ".$pseudo."</br></br>Email: ".$email."</br></br>Mot de passe: ".$password;
											echo '<h2>Vos données saisies sont les suivantes<br></h2>';
											echo 'Pseudo: '.htmlspecialchars($_POST['pseudo']).'</br> Email: '.htmlspecialchars($_POST['email']).'<br><u>Mot de passe:</u>'.htmlspecialchars($_POST['password']).'<br> 
											<form method="POST" action="accept_inscription.php" >
												<input type="hidden" name="pseudo" value="'.$pseudo.'">
												<input type="hidden" name="email" value="'.$email.'">
												<input type="hidden" name="password" value="'.$password.'">
												date_inscription : '. date("y-m-d").'<br>
											   <input type="submit" name="annuler" value="Annuler"> &nbsp; &nbsp
											   <input type="submit" name="confirmer" value="Confirmer">
										   </form>';
										}
                                }									
						?>
						
						<?php
						//$i=1;
						//while($i<=3)
						   // {
								    $i=1;
						            while(($i<=3) and (isset($_POST['confirmer'])))
							        {
										try
											{
												//On se connecte à mysql
												$bdd = new PDO('mysql:host=localhost;dbname=bd_membres', 'root', '');
												$bdd->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
											}
											catch(Exception $e)
												{
													//En cas d'erreur, on affiche un message et on arrète tout
													$bdd->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
													die('Erreur:'.$e->get_Message());
												}
								
											$req = $bdd->prepare('INSERT INTO user(pseudo, email, password, date_inscription) 
											VALUES(:pseudo, :email, [langue]assword, :date_inscription)');
											$req->execute(array(
											':pseudo'=>$_POST['pseudo'], 
											':email'=>$_POST['email'], 
											':password'=>$_POST['password'], 
											':date_inscription' =>  date('y-m-d' ))) or die (print_r($req->errorInfo()));
											
											$req->closeCursor();
											$i=$i+1;
											echo '<h4>Votre demande d"\"inscription a bien été prise en compte!</h4>';
                                            if($i==3)
											{
												echo"Nombre inscrit atteint!";
											}								
                                            header('Location: inscription.php');
                                            exit;											
								    }
							//}          															
                      ?>
		        </div>
					<?php
                        //include('new_footer.php');
                    ?>					  	
		    </section> 
        </div>  	    
	    </body>
		    <script src="js/jquery.js">	</script>
			<script src="js/bootstrap.min.js"></script>
	</html>


Finalement voici la base de données:
bd_membres(id, pseudo, psw, email, date_inscription);

Je veux qu'après 3 enregistrements, le compteur se bloque, donc plus d'enregistrement.
Merci!
Vous avez juste à récupérer le nombre des admins, vous le stockez dans votre base de données puis vous faites une condition sur s'il y'a 3 admins de connectés, alors, vous bloquez l'accès.