Php - Verification inscription

Fermé
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 - 29 déc. 2011 à 13:23
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 - 2 janv. 2012 à 17:41
Bonjour,

J'ai crée sur mon site un formulaire d'inscription mais comment vérifier si le pseudo n'est pas déjà utilisé et aussi comment vérifier que les deux mots de passes correspondent ?

et ensuite pour le formulaire de connexion comment afficher une erreur si l'utilisateur a mal écrit son MDP ou son pseudo ?

voici mes codes :

traitement.php pour l'inscription :
<?php
	 



if(!isset($_POST['pseudo'])) { echo ' erreur : pseudo'; }	
if(!isset($_POST['pass'])) { echo ' erreur : pass'; }	
if(!isset($_POST['email'])) { echo ' erreur : email'; }	
 

else{ 


$pseudo=$_POST["pseudo"]; 
$pass=$_POST["pass"]; 
$email=$_POST["email"]; 

	
			
			// Connexion au serveur MySQL 
			$db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur");
			
			// Connexion à la base devillersbdd
			mysql_select_db("footclic",$db)or die ("Erreur de connexion à la base footclic");
			
			// Requête Ajout de l'utilisateur créé dans le formulaire 
			$MonSql="INSERT INTO membres(pseudo, pass, email) VALUES('$pseudo','$pass','$email')";	
			
			// Envoie de la requête 
			mysql_query($MonSql);
			
			// Fermeture de la connexion
			mysql_close($db);
			
			//	Message de confirmation
			echo("Votre inscription est bien enregistrée. <br />");
			header('Location: footclic.php'); 
			}
			
		
	?>


traitementconnexion.php
	          <?php session_start();
			  
			  if(isset($_POST['connexion']) && !empty($_POST['pseudo']) && !empty($_POST['pass']))
                 {
                 // Vérification
                 }
                else
                 {
                 include("../connexionfootclic.php");
                  }
				 
				 // Connexion à la BDD 
				 
				 $bdd=mysql_connect("localhost","root","");
                 mysql_select_db("footclic", $bdd);
              
                  $query = "SELECT * FROM membres WHERE pseudo='".$_POST['pseudo']."' AND pass='".$_POST['pass']."' ";
 
                  $result = mysql_query($query);
                    if(mysql_num_rows($result))
                       {
                       $donnees = mysql_fetch_array($result);
           
                     $_SESSION['pseudo'] = $donnees['pseudo'];  
                     $_SESSION['pass'] = $donnees['pass'];
					 header('location:footclic.php');
                     }
					 
					 ?>
				   
				   
				  


A voir également:

23 réponses

JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
29 déc. 2011 à 19:13
Personne peut m'aider ?
0
Ohmypix Messages postés 45 Date d'inscription jeudi 29 décembre 2011 Statut Membre Dernière intervention 3 mars 2012 2
29 déc. 2011 à 20:56
Bonjour,

Pour vérifier si un utilisateur ne possède pas déja le pseudonyme entré dans le formulaire, il faut demander à la base de donnée si le pseudo existe.
Pour tester le mot de passe, il suffit de comparer les deux variables !

Pour la page de connexion, on verra ça ensuite.

PS: aucune donnée n'est sécurisée, ne surtout pas rendre ce code actif sur internet.

<?php

if(!isset($_POST['pseudo']) && !isset($_POST['pass']) && !isset($_POST['email'])) {
echo "Un des champs n'est pas renseigné ! (Pseudo, mot de passe ou email)";
}else{


$pseudo=$_POST["pseudo"];
$pass=$_POST["pass"];
$email=$_POST["email"];



// Connexion au serveur MySQL
$db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur");

// Connexion à la base devillersbdd
mysql_select_db("footclic",$db)or die ("Erreur de connexion à la base footclic");

// REQUETE PSEUDO DEJA PRIS ?
$test = mysql_query("SELECT id FROM membres WHERE pseudo = '"'.$pseudo.'"');
if(mysql_num_rows($test) > 0) { echo "Un utilisateur porte déja ce nom, veuillez en choisir un autre.";
exit;
}


// Requête Ajout de l'utilisateur créé dans le formulaire
$MonSql="INSERT INTO membres(pseudo, pass, email) VALUES('$pseudo','$pass','$email')";

// Envoie de la requête
mysql_query($MonSql);

// Fermeture de la connexion
mysql_close($db);

// Message de confirmation
echo("Votre inscription est bien enregistrée. <br />");
header('Location: footclic.php');
}


?>
0
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
29 déc. 2011 à 23:13
ah non désolé erreur de guillemets ^^ par contre quand l'utilisateur oublie de remplir un champ, rien ne se passe :s

<?php 

if(!isset($_POST['pseudo']) && !isset($_POST['pass']) && !isset($_POST['email'])) { 
echo "Un des champs n'est pas renseigné ! (Pseudo, mot de passe ou email)"; 
}else{ 


$pseudo=$_POST["pseudo"]; 
$pass=$_POST["pass"]; 
$email=$_POST["email"]; 



// Connexion au serveur MySQL 
$db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur"); 

// Connexion à la base devillersbdd 
mysql_select_db("footclic",$db)or die ("Erreur de connexion à la base footclic"); 

// REQUETE PSEUDO DEJA PRIS ? 
$test = mysql_query("SELECT id FROM membres WHERE pseudo = '".$pseudo."'"); 

if(mysql_num_rows($test) > 0) { 

echo "Un utilisateur porte déja ce nom, veuillez en choisir un autre."; 
exit; 
} 


// Requête Ajout de l'utilisateur créé dans le formulaire 
$MonSql="INSERT INTO membres(pseudo, pass, email) VALUES('$pseudo','$pass','$email')";	

// Envoie de la requête 
mysql_query($MonSql); 

// Fermeture de la connexion 
mysql_close($db); 

//	Message de confirmation 
echo("Votre inscription est bien enregistrée. <br />"); 
header('Location: footclic.php'); 
} 


?>
0
Ohmypix Messages postés 45 Date d'inscription jeudi 29 décembre 2011 Statut Membre Dernière intervention 3 mars 2012 2
29 déc. 2011 à 23:26
Il faut tester avec !empty($champs) qui va tester le contenu du champ en question.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
29 déc. 2011 à 23:38
J'ai fait sa :

<?php 
if($_POST['pseudo'] != "" && $_POST['pass'] != "" && $_POST['email']) {




$pseudo=$_POST["pseudo"]; 
$pass=$_POST["pass"]; 
$email=$_POST["email"]; 


// Connexion au serveur MySQL 
$db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur"); 

// Connexion à la base devillersbdd 
mysql_select_db("footclic",$db)or die ("Erreur de connexion à la base footclic"); 

// REQUETE PSEUDO DEJA PRIS ? 
$test = mysql_query("SELECT id FROM membres WHERE pseudo = '".$pseudo."'"); 

if(mysql_num_rows($test) > 0) { 

echo "Un utilisateur porte déja ce nom, veuillez en choisir un autre."; 
exit; 
} 


// Requête Ajout de l'utilisateur créé dans le formulaire 
$MonSql="INSERT INTO membres(pseudo, pass, email) VALUES('$pseudo','$pass','$email')";	

// Envoie de la requête 
mysql_query($MonSql); 

// Fermeture de la connexion 
mysql_close($db); 

//	Message de confirmation 
echo("Votre inscription est bien enregistrée. <br />"); 
header('Location: footclic.php'); 
}
else{
    echo "Attention, au moins un des champs n'a pas été remplit !";
} 


?>


et cela fonctionne correctement =)

Est-ce que tu sais comment faire pour vérifier le mot de passe avec le champ "retapez le mot de passe" ?
0
Ohmypix Messages postés 45 Date d'inscription jeudi 29 décembre 2011 Statut Membre Dernière intervention 3 mars 2012 2
29 déc. 2011 à 23:47
Il suffit de comparer la valeur de ces deux champs :

if($_POST['pass'] == $_POST['pass_verif']) {
// OK
} else {
echo "Les mots de passe ne sont pas identiques, veuillez corriger l'erreur.";
}
0
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
29 déc. 2011 à 23:53
Merci !!!

et est-ce que tu sais ensuite pour le formulaire de connexion comment afficher une erreur si l'utilisateur a mal écrit son MDP ou son pseudo ? stp
0
Ohmypix Messages postés 45 Date d'inscription jeudi 29 décembre 2011 Statut Membre Dernière intervention 3 mars 2012 2
30 déc. 2011 à 13:16
Bonjour,

En règle général si l'utilisateur à mal écrit son pseudo ou mot de passe, c'est son problème !

Je tiens à préciser que le code n'est absolument pas sécurisé, on verra cette étape une fois les problèmes résolus ;)

En reprenant votre code :
<?php session_start();

if(isset($_POST['connexion']) && !empty($_POST['pseudo']) && !empty($_POST['pass']))
{
// Vérification
}
else
{
include("../connexionfootclic.php");
}

// Connexion à la BDD

$bdd=mysql_connect("localhost","root","");
mysql_select_db("footclic", $bdd);

$query = mysql_query("SELECT * FROM membres WHERE pseudo='".$_POST['pseudo']."' AND pass='".$_POST['pass']."'");

if(mysql_num_rows($query) > 0) {
$donnees = mysql_fetch_array($query);

$_SESSION['pseudo'] = $donnees['pseudo'];
$_SESSION['pass'] = $donnees['pass'];
header('location:footclic.php');
} else {
echo "Votre pseudo ou mot de passe ne correspond pas";
}

?>



0
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
30 déc. 2011 à 14:08
Merci ça fonctionne très bien :)

Mais sais-tu comment par exemple placer l'echo "votre pseudo ou mdp ne corresponds pas" en rouge et en dessous du formulaire ? stp

Pour sécuriser il ne faut pas rajouter sa mysql_real_escape_string ?
0
Ohmypix Messages postés 45 Date d'inscription jeudi 29 décembre 2011 Statut Membre Dernière intervention 3 mars 2012 2
30 déc. 2011 à 16:36
Ceci devrait faire l'affaire ;)

<?php session_start();

include("../connexionfootclic.php");

if(isset($_POST['connexion']) && !empty($_POST['pseudo']) && !empty($_POST['pass']))
{

// Connexion à la BDD

$bdd=mysql_connect("localhost","root","");
mysql_select_db("footclic", $bdd);

$query = mysql_query("SELECT * FROM membres WHERE pseudo='".$_POST['pseudo']."' AND pass='".$_POST['pass']."'");

if(mysql_num_rows($query) > 0) {
$donnees = mysql_fetch_array($query);

$_SESSION['pseudo'] = $donnees['pseudo'];
$_SESSION['pass'] = $donnees['pass'];
header('location:footclic.php');
} else {
echo "Votre pseudo ou mot de passe ne correspond pas";
}
}
else
{
echo "Veuillez remplir tous les champs du formulaire de connexion";
}

?>

mysql_real_escape_string fait parti de la sécurité à appliquer, mais on verra ça ensuite.
0
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
30 déc. 2011 à 18:20
J'ai ces 2 erreurs :

Warning: include(../connexionfootclic.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\traitementconnexion.php on line 3

Warning: include() [function.include]: Failed opening '../connexionfootclic.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\traitementconnexion.php on line 3
0
Ohmypix Messages postés 45 Date d'inscription jeudi 29 décembre 2011 Statut Membre Dernière intervention 3 mars 2012 2
30 déc. 2011 à 19:57
L'erreur indique que le fichier connexionfootclic.php n'existe pas, le script ne trouve pas le fichier ;)
0
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
30 déc. 2011 à 20:34
Je ne comprends pas :s j'ai vérifié et le fichier se trouve avec tous les autres normalement :s
0
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
30 déc. 2011 à 20:36
ah j'ai réussi c'est bon :)
0
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
30 déc. 2011 à 20:38
La phrase s'affiche en dessous de la page. sais-tu comment faire pour l'afficher en dessous du formulaire ?
0
Ohmypix Messages postés 45 Date d'inscription jeudi 29 décembre 2011 Statut Membre Dernière intervention 3 mars 2012 2
30 déc. 2011 à 22:11
Envoi le code complet de la page (formulaire + code php) pour que je puisse t'aider efficacement ;)
0
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
30 déc. 2011 à 23:10
dac merci :)

connexionfootclic.php:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="style.css" />
        <title>FootClic</title>
    </head>
	<body>
       <header>
	   <div id="titre">
	   <img src="images/Ballon.gif" alt="" id="logo"/>
	   <h1> FootClic </h1></br>
	   <h3> Actus et Sondages sur le Football </h3>
	   </div>
		<nav>
		     <ul>
			 <li><a href="footclic.php">ACCUEIL</a></li>
			 <li><a href="Pronos.php">PRONOS</a></li>
			 <li><a href="debatsfootclic.php">ACTUS</a></li>
			 <li><a href="#">SONDAGES</a></li>
			 <li><a href="inscriptionfootclic.php">INSCRIPTION</a></li>
			 <li><a href="connexionfootclic.php">CONNEXION</a></li>
			 </ul>
		</nav>
	    </header>
		<div id="banniere_image">
                
            </div>
		
		<section>
		<article>
<form action="traitementconnexion.php" method="POST" id="formconnexion">
              <ul>
              
                   <label>Pseudo</label></br>
                   <input name="pseudo" type="text"></br>
              
              
                   <label>Mot de passe</label></br>
                   <input name="pass" type="password"><br/>
              
                  
                   <input class="boutonConnexion" name="connexion" type="submit" value="Se connecter">
             </ul>				   
            </form>
	</article>
		</section>
		<footer>
		
		<div id="contact">
		
		<p>
		<a href="devillersbenjamin60@gmail.com">Contactez moi</a><p>
		</div>
		<div id="imagefooter">
		<img src="images/Ballon.gif"/>
		</div>
		</footer>
		</html>
	


et traitementconnexion.php :
	<?php session_start(); 

include "connexionfootclic.php"; 

if(isset($_POST['connexion']) && !empty($_POST['pseudo']) && !empty($_POST['pass'])) 
{ 

// Connexion à la BDD 

$bdd=mysql_connect("localhost","root",""); 
mysql_select_db("footclic", $bdd); 

$query = mysql_query("SELECT * FROM membres WHERE pseudo='".$_POST['pseudo']."' AND pass='".$_POST['pass']."'"); 

if(mysql_num_rows($query) > 0) { 
$donnees = mysql_fetch_array($query); 

$_SESSION['pseudo'] = $donnees['pseudo']; 
$_SESSION['pass'] = $donnees['pass']; 
header('location:footclic.php'); 
} else { 
echo "Votre pseudo ou mot de passe ne correspond pas"; 
} 
} 
else 
{ 
echo "Veuillez remplir tous les champs du formulaire de connexion"; 
} 

?> 
0
Ohmypix Messages postés 45 Date d'inscription jeudi 29 décembre 2011 Statut Membre Dernière intervention 3 mars 2012 2
31 déc. 2011 à 12:09
Dans ton cas, l'idéal serait d'ajouter dans le formulaire une variable PHP erreur qui par défaut (vide) ne serait pas affiché, mais si une valeur lui est affectée, elle s'affiche.

PS: tout ceci est du bidouillage, on peut faire ça plus proprement (par la suite).

CONNEXIONFOOTCLIC.PHP (remplace juste le formulaire par celui-ci):

<form action="traitementconnexion.php" method="POST" id="formconnexion">
<ul>

<label>Pseudo</label></br>
<input name="pseudo" type="text"></br>


<label>Mot de passe</label></br>
<input name="pass" type="password"><br/>


<input class="boutonConnexion" name="connexion" type="submit" value="Se connecter">
</ul>
<?php if(isset($error) && $error==1) { echo "<p style='color: red'>Veuillez remplir correctement les champs</p>"; } ?>
</form>

---------------------------------------

TRAITEMENTCONNEXION.PHP

<?php session_start();
$erreur = 0;
if(isset($_POST['connexion']) && !empty($_POST['pseudo']) && !empty($_POST['pass']))
{

// Connexion à la BDD

$bdd=mysql_connect("localhost","root","");
mysql_select_db("footclic", $bdd);

$query = mysql_query("SELECT * FROM membres WHERE pseudo='".$_POST['pseudo']."' AND pass='".$_POST['pass']."'");

if(mysql_num_rows($query) > 0) {
$donnees = mysql_fetch_array($query);

$_SESSION['pseudo'] = $donnees['pseudo'];
$_SESSION['pass'] = $donnees['pass'];
header('location:footclic.php');
} else {
$erreur = 1;
}
}
else
{
$erreur = 1;
}

include "connexionfootclic.php";
?>
0
JBennn Messages postés 92 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 13 juin 2013 1
31 déc. 2011 à 12:58
Bizarre, je ne peux pas me connecter quand je fais une erreur de mdp (normal) mais il n'y pas de messages qui s'affiche :s
0
Ohmypix Messages postés 45 Date d'inscription jeudi 29 décembre 2011 Statut Membre Dernière intervention 3 mars 2012 2
31 déc. 2011 à 13:23
On va simplifier le système:

<?php session_start();
$erreur = 0;
if(isset($_POST['connexion']) && !empty($_POST['pseudo']) && !empty($_POST['pass']))
{
// Connexion à la BDD

$bdd=mysql_connect("localhost","root","");
mysql_select_db("footclic", $bdd);

$query = mysql_query("SELECT * FROM membres WHERE pseudo='".$_POST['pseudo']."' AND pass='".$_POST['pass']."'");

if(mysql_num_rows($query) > 0) {
$donnees = mysql_fetch_array($query);

$_SESSION['pseudo'] = $donnees['pseudo'];
$_SESSION['pass'] = $donnees['pass'];

header('location:footclic.php');
} else {
$erreur = 2;
}
}
else
{
$erreur = 1;
}

?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<title>FootClic</title>
</head>
<body>
<header>
<div id="titre">
<img src="images/Ballon.gif" alt="" id="logo"/>
<h1> FootClic </h1></br>
<h3> Actus et Sondages sur le Football </h3>
</div>
<nav>
<ul>
<li><a href="footclic.php">ACCUEIL</a></li>
<li><a href="Pronos.php">PRONOS</a></li>
<li><a href="debatsfootclic.php">ACTUS</a></li>
<li><a href="#">SONDAGES</a></li>
<li><a href="inscriptionfootclic.php">INSCRIPTION</a></li>
<li><a href="connexionfootclic.php">CONNEXION</a></li>
</ul>
</nav>
</header>
<div id="banniere_image">

</div>

<section>
<article>
<form action="connexionfootclic.php" method="POST" id="formconnexion">
<ul>

<label>Pseudo</label></br>
<input name="pseudo" type="text"></br>


<label>Mot de passe</label></br>
<input name="pass" type="password"><br/>


<input class="boutonConnexion" name="connexion" type="submit" value="Se connecter">
</ul>
<?php
if($error==1) { echo "<p style='color: red'>Veuillez remplir correctement les champs</p>"; }
if($error==2) { echo "<p style='color: red'>".$_POST['pseudo']." n'existe pas !</p>"; }
?>
</form>
</article>
</section>
<footer>

<div id="contact">

<p>
<a href="devillersbenjamin60@gmail.com">Contactez moi</a><p>
</div>
<div id="imagefooter">
<img src="images/Ballon.gif"/>
</div>
</footer>
</html>
0