BrutAlow | Bonsoir, j'ai un soucis avec ma validation d'inscription coté administrateur.
explication: -des que je reçois des inscriptions sur ma page validation.php je les valides et par la mêmes occasion des inscriptions vierges a chaque rafraichissement de la page, comment évité cela ??
voici ma page inscription.php
Code :
- <?php
- include('config.php');
- ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
- <title>Inscription</title>
- </head>
- <body>
- <div class="header">
- <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
- </div>
- <?php
- //On verifie que le formulaire a ete envoye
- if(isset($_POST['pseudo'], $_POST['motdepasse'], $_POST['passverif'], $_POST['email']) and $_POST['pseudo']!='')
- {
- //On enleve l'echappement si get_magic_quotes_gpc est active
- if(get_magic_quotes_gpc())
- {
- $_POST['pseudo'] = stripslashes($_POST['pseudo']);
- $_POST['motdepasse'] = stripslashes($_POST['motdepasse']);
- $_POST['passverif'] = stripslashes($_POST['passverif']);
- $_POST['email'] = stripslashes($_POST['email']);
- }
- //On verifie si le mot de passe et celui de la verification sont identiques
- if($_POST['motdepasse']==$_POST['passverif'])
- {
- //On verifie si le mot de passe a 6 caracteres ou plus
- if(strlen($_POST['motdepasse'])>=6)
- {
- //On verifie si l'email est valide
- if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
- {
- //On echape les variables pour pouvoir les mettres dans une requette SQL
- $pseudo = mysql_real_escape_string($_POST['pseudo']);
- $motdepasse = mysql_real_escape_string($_POST['motdepasse']);
- $email = mysql_real_escape_string($_POST['email']);
- //On verifie s'il n'y a pas deja un utilisateur inscrit avec le pseudo et le mail choisis
- $dn = mysql_num_rows(mysql_query('select id from connexion where pseudo="'.$pseudo.'"'));
- if($dn==0)
- {
- //On recupere le nombre d'utilisateurs pour donner un identifiant a l'utilisateur actuel
- $dn2 = mysql_num_rows(mysql_query('select id from validation'));
- $id = $dn2+1;
- //On enregistre les informations dans la base de donnee
- if(mysql_query('insert into validation(id, pseudo, motdepasse, email) values ('.$id.', "'.$pseudo.'", "'.$motdepasse.'", "'.$email.'" )'))
- {
- //Si ca a fonctionne, on n'affiche pas le formulaire
- $form = false;
- ?>
- <div class="message">Vous avez bien été inscrit. Vous pouvez dorénavant vous connecter.<br />
- Un mail de confirmation viens de vous etre envoyer avec vos identifiants de connexion.<br /></div>
- <div class="message"><a href="connexion.php">Se connecter</a></div>
- <?php
- }
- else
- {
- //Sinon on dit quil y a eu une erreur
- $form = true;
- $message = 'Une erreur est survenue lors de l\'inscription.';
- }
- }
- else
- {
- //Sinon, on dit que le pseudo voulu est deja pris
- $form = true;
- $message = 'Un autre utilisateur utilise déjà le nom d\'utilisateur que vous désirez utiliser.';
- }
- }
- else
- {
- //Sinon, on dit que l'email n'est pas valide
- $form = true;
- $message = 'L\'email que vous avez entré n\'est pas valide.';
- }
- }
- else
- {
- //Sinon, on dit que le mot de passe n'est pas assez long
- $form = true;
- $message = 'Le mot de passe que vous avez entré contien moins de 6 caractères.';
- }
- }
- else
- {
- //Sinon, on dit que les mots de passes ne sont pas identiques
- $form = true;
- $message = 'Les mots de passes que vous avez entré ne sont pas identiques.';
- }
- }
- else
- {
- $form = true;
- }
- if($form)
- {
- //On affiche un message s'il y a lieu
- if(isset($message))
- {
- echo '<div class="message">'.$message.'</div>';
- }
- //On affiche le formulaire
- ?>
- <div class="content">
- <form action="inscription.php" method="post">
- Veuillez remplir ce formulaire pour vous inscrire:<br />
- <div class="center">
- <label for="pseudo">Nom d'utilisateur</label><input type="text" name="pseudo" value="<?php if(isset($_POST['pseudo'])){echo htmlentities($_POST['pseudo'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
- <label for="motdepasse">Mot de passe<span class="small">(6 caractères min.)</span></label><input type="motdepasse" name="motdepasse" /><br />
- <label for="passverif">Mot de passe<span class="small">(vérification)</span></label><input type="motdepasse" name="passverif" /><br />
- <label for="email">Email</label><input type="text" name="email" value="<?php if(isset($_POST['email'])){echo htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
- <input type="submit" value="Envoyer" />
- </div>
- </form>
- </div>
- <?php
- }
- ?>
- <div class="foot"><a href="<?php echo $url_home; ?>">Retour à l'accueil</a> - <a href="http://www.spacefight.fr">Spacefight</a></div>
- </body>
- </html>
|
et voici ma page validation.php
Code :
- <?php
- mysql_connect("localhost", "root", "" );
- mysql_select_db("basededonnees" );
- $quete = mysql_query("SELECT * FROM validation" );
- while($validation = mysql_fetch_array($quete))
- {
- echo 'Pseudo: ';
- echo $validation['pseudo'];
- echo ' Mot de passe: ';
- echo $validation['motdepasse'];
- echo ' E-mail: ';
- echo $validation['email'];
- echo '<a href="validation.php?action=accepter&id='.$validation['id'].'">Accepter</a>';
- echo '<a href="validation.php?action=refuser&id='.$validation['id'].'">Refuser</a>';
- echo '<br/>';
- }
- if(isset($_GET['action']) AND isset($_GET['id']))
- {
- $action = $_GET['action'];
- if($action == "accepter" )
- {
- $id = $_GET['id'];
- $quete2 = mysql_query("SELECT * FROM validation WHERE id='$id'" );
- $connexion = mysql_fetch_array($quete2);
- $pseudo = $connexion['pseudo'];
- $motdepasse = $connexion['motdepasse'];
- $email = $connexion['email'];
- $dn = mysql_num_rows(mysql_query('select id from connexion'));
- $id = $dn+1;
- mysql_query("INSERT INTO connexion VALUES('$id', '$pseudo', '$motdepasse', '$email')" );
- $id = $_GET['id'];
- mysql_query("DELETE FROM validation WHERE id='$id'" );
- }
- elseif($action == "refuser" )
- {
- $id = $_GET['id'];
- mysql_query("DELETE FROM validation WHERE id='$id'" );
- }
- }
- ?>
|
Message édité par BrutAlow le 23-09-2011 à 18:59:50
|