Problème de formulaire d'insertion (vérification)

Résolu/Fermé
polarbird Messages postés 105 Date d'inscription vendredi 24 juin 2011 Statut Membre Dernière intervention 16 décembre 2023 - 9 mai 2014 à 09:30
Kaldoran Messages postés 137 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 21 juin 2015 - 11 mai 2014 à 18:23
Bonjour à tous,
Je viens vers vous car j'ai un problème avec les vérifications de mon formulaire d'insertion php (vérifier si un membre a un pseudo unique,si les 2 mdp sont identiques,etc...)
Je planche dessus depuis plusieurs jours.
Voici mon code :
<?php
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('test', $base);
$sql = 'SELECT count(*) FROM membres WHERE pseudo="'.mysql_escape_string($_POST['pseudo']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
	if(isset($_POST['pseudo']) && (isset($_POST['email']) && (isset($_POST['mdp']) && (isset($_POST['mdp2']) && (isset($_POST['avatar']) && (isset($_POST['pays'])))))))
	{
	$base = mysql_connect ('localhost', 'root', '');
	mysql_select_db ('test', $base);
	$sql = 'SELECT count(*) FROM membres WHERE pseudo="'.mysql_escape_string($_POST['pseudo']).'"';
	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
	$data = mysql_fetch_array($req);
		if ($data[0] == 0)
		{
			if ($_POST['mdp'] == $_POST['mdp'])
			{
				$base = mysql_connect ('localhost', 'root', '');
				mysql_select_db ('test', $base);
				$sql = 'INSERT INTO membres VALUES("","'.$_POST['pseudo'].'","'.$_POST['email'].'","'.mysql_escape_string(md5($_POST['mdp'])).'","'.$_POST['avatar'].'","'.$_POST['auth'].'","'.$_POST['pays'].'","'.time().'","","","")'; 
				mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
				session_start();
				$_SESSION['pseudo'] = $_POST['pseudo'];
				header('Location: index.php');
				exit();
			}
			else
			{
			$erreur = '<p>Vos mots de passe doivent être identiques</p>';
			}
		}
		else
		{
		$erreur = '<p>Votre pseudo est déjà pris</p>';
		}
	}
	else
	{
	$erreur = '<p>Il faut remplir tous les champs</p>';
	}
?>

Je vous remercie d'avance de votre aide.
polarbird
A voir également:

1 réponse

Kaldoran Messages postés 137 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 21 juin 2015 29
Modifié par Kaldoran le 11/05/2014 à 18:26
<?php

 if(isset($_POST['pseudo']) && (isset($_POST['email']) && (isset($_POST['mdp']) && (isset($_POST['mdp2']) && (isset($_POST['avatar']) && (isset($_POST['pays'])))))))
 {
 $base = mysql_connect ('localhost', 'root', '');
 mysql_select_db ('test', $base);
 /* un ajout ci dessous */
 $sql = 'SELECT count(*) /* ajout : As Total */ FROM membres WHERE pseudo="'.mysql_escape_string($_POST['pseudo']).'"';
 $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
 $data = mysql_fetch_array($req);
/* Partie fausse 
  if ($data[0] == 0) // ICI IL Y A UNE ERREUR, tu fais un $data[0] alors que tu as fais un mysql_fetch_array 
  {
*/
  if ($data['Total'] == 0) // Correction
  {
   if ($_POST['mdp'] == $_POST['mdp2']) // comparer 2 fois le meme mdp ne sert a rien :p ; tu avais oublier le 2
   {
    /* $base = mysql_connect ('localhost', 'root', '');
    mysql_select_db ('test', $base); // Tu as deja une connexion a la Bdd :D</bold>
    */
    $sql = 'INSERT INTO membres VALUES("","'.$_POST['pseudo'].'","'.$_POST['email'].'","'.mysql_escape_string(md5($_POST['mdp'])).'","'.$_POST['avatar'].'","'.$_POST['auth'].'","'.$_POST['pays'].'","'.time().'","","","")'; 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
    session_start();
    $_SESSION['pseudo'] = $_POST['pseudo'];
    header('Location: index.php');
    exit();
   }
   else
   {
   $erreur = '<p>Vos mots de passe doivent être identiques</p>';
   }
  }
  else
  {
  $erreur = '<p>Votre pseudo est déjà pris</p>';
  }
 }
 else
 {
 $erreur = '<p>Il faut remplir tous les champs</p>';
 }
?>



Ps : désolé pour l'indentation :/
0