PHP MYSQL pb de session authentification utilisateurs

Résolu/Fermé
aliaka Messages postés 11 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 31 août 2015 - Modifié par NHenry le 26/08/2015 à 20:54
 aliaka - 1 sept. 2015 à 11:51
Salut à tous, j'ai besoin de votre aide helpppppp ! mon pb est que je souhaiterai donner accès uniquement aux utilisateurs que j'ai créé sur mysql : mail de l'utilisateur + mot de passe, par exemple quand je test email + mot de passe d'un utilisateur inscrit sur mysql ils accèdent dans mon site même en tapent un faux mdp +et quand je tape n'importe quel mail + mdp des utilisateur non enregistrés sur ma base de données mysql peuvent accédés aussi dans mon site je ne comprend pas. Pouvez vous corriger le code svp je vous remercie par avance. Voici le code :

mon fichier login.php:
<?php
$base = mysql_connect ('localhost', 'root', 'mot mot de passe ');
mysql_select_db ('demo');

if(isset($_POST['login'])){

$email = $_POST['email'];
$password = $_POST['password'];

$check_user = "select * from account where email=$email' and password=$password'";


$result=mysql_query($query);
$ligne = mysql_fetch_array($result, MYSQL_ASSOC)
echo
"<script>window.open('membre.php','_self)</script>";
}
else{
echo"<script>alert('email or password is incorrect')</script>";

}
?>

<html>
<title>ma page</title>

<form action="membre.php" method ="post">
<body>
<strong> Mail </strong>
<input type="email" name="email" required="required" placeholder="E-mail"/>
<strong> Mot de passe <strong>
<input type="password" name="password" required="required" placeholder="Password"/>
<button name="login">Connexion/Login</button>

</form>

</body>
</html>



mon fichier logout.php :
<?php
header ("location: login.php");
?>

mon fichier membre.php:

<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: membre.php');
exit();
}
?>

<title>espace membre</title>

<link rel="stylesheet" href="styles\style.css" media="all" />
</head>
<body>
<head>
<a href='https://www.google.fr'><img src='images/accueil.png' /></a>
<a href='https://www.youtube.com/?gws_rd=ssl'><img src='images/youtube.png' /></a>

</div>
</head>
</body>
</html>


Sur mysql nom de ma base de donnée : demo table : account. colonne ; id int primary key / name varchar 100/ email varchar 100 et password varchar 100

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

7 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
26 août 2015 à 20:55
Essayes d'afficher le contenu de $check_user et de voir en quoi ta requête ne va pas.

Petit rappel, l'extension mysql est obsolète

Et, je dirais "au bûcher !!", stocker les mots de passe en clair ...

Attention aussi aux injections SQL.
1
Bonsoir,

ligne 10 tu pourrais nous faire un petit

echo $check_user = "select * from account where email=$email' and password=$password'";
die();

histoire de vérifier ta requête SQL

Cdt
0
lefilsdelaterre Messages postés 11 Date d'inscription vendredi 21 août 2015 Statut Membre Dernière intervention 27 août 2015 1
26 août 2015 à 21:38
Bonsoir,
Il y a déjà quelques soucis.

La variable $check_user n'est pas réutilisée. Elle devrait remplacer $query dans $result=mysql_query($query); ... du moins c'est ce que je comprends.

Il n'y a aucune condition sur l'existence ou non d'un compte correspondant au mail et mot de passe. Il faudrait tester si $ligne est vide ou non.

Les bases de données ne sont pas sécurisée. Si on tape 'OR 1= '1 (apostrophes compris) comme mot de passe, ça marchera toujours.

Ça ne résoudra pas tout, mais ça devrait permettre de redémarrer.
0
aliaka Messages postés 11 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 31 août 2015
26 août 2015 à 22:39
pour NHenry

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI => erreur 404

Merci d'y penser dans tes prochains messages.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
26 août 2015 à 23:01
Merci, je vais corriger.
0
aliaka Messages postés 11 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 31 août 2015
26 août 2015 à 23:39
Merci à NHenry, lefilsdelaterre et ludobabs d'avoir répondu pour me proposer votre aide j'ai modifié les codes rien ne change je tape n'importe quelle adresse mail ex; ffgfgf@yahoo.fr mdp 1234
il entre comme une inscription je me demande si le pb ne vient pas de :<html>
<title>ma page</title>
<form action="membre.php" method ="post">
<body>
quand je mets login.php à la place de membre.php aucun mail + mdp ne peut accéder à mon site même ceux inscrit sur mysl et quand je mets membre.php n'importe quel mail + mdp entre dans le site. <form action="membre.php" method ="post"> => accès au site <form action="membre.php" method ="post"> => non accès au site. Je confirme qu'il y a aucun message d' erreur qui s'affiche genre error sql ligne 16..Je vous remercie par avance.
0

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

Posez votre question
lefilsdelaterre Messages postés 11 Date d'inscription vendredi 21 août 2015 Statut Membre Dernière intervention 27 août 2015 1
27 août 2015 à 00:54
Je pense que ceci devrait marcher :

login.php :
<?php 



$base = mysql_connect ('localhost', 'root', 'mot mot de passe '); 
mysql_select_db ('demo'); 

if(isset($_POST['login'])){ 

$email = $_POST['email']; 
$password = $_POST['password']; 

$check_user = "select * from account where email=$email' and password=$password'";


$result=mysql_query($check_user); 
$ligne = mysql_fetch_array($result, MYSQL_ASSOC) ;

if (!empty($ligne)) {
	$go = true ;
}
else{ 
	$go = false ;
	echo "<script>alert('email or password is incorrect')</script>"; 
} 

} // fin de la condition isset 

	include('membre.php');


if (!$go) {

?> 



<html> 
<title>ma page</title> 

<form method ="post"> 
<body> 
<strong> Mail </strong> 
<input type="email" name="email" required="required" placeholder="E-mail"/> 
<strong> Mot de passe <strong> 
<input type="password" name="password" required="required" placeholder="Password"/> 
<input type="submit" name="login">Connexion/Login</button> 

</form> 

</body> 
</html> 

<?php
}
?>


Il n'y a plus de action="membre.php", ce n'est pas la peune de faire intervenir ce fichier ici. Une autre partie est modifiée :

if (!empty($ligne)) {
$go = true ;
}
else{
$go = false ;
echo "<script>alert('email or password is incorrect')</script>";
}

si la vérification est bonne, on passe une variables $go à true.

Enfin, include('membre.php'); n'est pas soumis à condition, mais son contenu l'est :


<?php
if ($go) {
?>

<html>
<head>

<title>espace membre</title> 

<link rel="stylesheet" href="styles\style.css" media="all" /> 
</head> 
<body> 
<head> 
<a href='https://www.google.fr'><img src='images/accueil.png' /></a> 
<a href='https://www.youtube.com/?gws_rd=ssl'><img src='images/youtube.png' /></a> 

</div> 
</head> 
</body> 
</html> 

<?php
}
?>


REM : si un utilisateur met directement l'adresse de membre.php dans le navigateur, $go est par défaut à false et rien ne s'affichera.

Toutefois, comme le disais NHenry, mysql est obsolète et devrait être remplacé par mysqli. Et il y a toujours ce problème de sécurisation des chaînes de caractères utilisées pour les requêtes.
0
aliaka Messages postés 11 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 31 août 2015
27 août 2015 à 12:40
Merci lefilsdelaterre


j'ai fais copier coller de ton code proposé :
j'ai ce message d'erreur qui s'affiche au dessus de la saisi email et password :

Notice: Undefined variable: go in C:\xampp\htdocs\site\register\membre.php on line 3 => <?php if ($go) { ?>

Notice: Undefined variable: go in C:\xampp\htdocs\site\register\login.php on line 31 => if (!$go) {?>

je tape comme même une adresse mail + mdp et ensuite je tombe sur ce message : Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\site\register\login.php on line 20 =>
=> $ligne = mysql_fetch_array($result, MYSQL_ASSOC) ;

php inscription pas de souci mais php de session connexion je me tire les cheveux c'est un truc de ouf je confirme que je suis une débutante merci encore de votre d'aide
c'est vraiment sympa même si le pb n'est pas réglé mais ce qui compte c'est le geste.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié par jordane45 le 27/08/2015 à 01:41
Bonjour,

Il y a un certain nombre de problèmes dans les codes proposés....
En gros ...
- Il manquait les quotes autour de tes variables dans ta requête
- Il est préférable de récupérer proprement les variables avant de les utiliser
- Tu n'initialisait pas ta variable de session (celle que tu utilises ensuite dans tes autres pages... )
- Oublie le code proposé par lefilsdelaterre avec sa variable $go... (ce n'est qu'une "bidouille" ... et ce n'est clairement pas optimum...
- Des balises Head Body .. mises n'importe où...
- Etc...


Bref... essayes ça :

<?php 
//*******************
// LOGIN.PHP
//*******************
//-----------------------------------------------------------------------//
//démarrage des Sessions
//-----------------------------------------------------------------------//
session_start();


//-----------------------------------------------------------------------//
//connexion à la BDD
//-----------------------------------------------------------------------//
$base = mysql_connect('localhost', 'root', 'mot mot de passe ') or die('Erreur de connexion à la BDD <br>'.mysql_error());; 
mysql_select_db('demo') or die('Erreur ! <br>'.mysql_error());; 

//-----------------------------------------------------------------------//
//Recupération "propre" des variables AVANT de les utiliser
//-----------------------------------------------------------------------//

$login = isset($_POST['login']) ? $_POST['login'] : NULL;
$password = isset($_POST['password']) ? $_POST['password'] : NULL;
$email = isset($_POST['email']) ? $_POST['email'] : NULL;

if($email && $password){
 
    $sql = "SELECT *
               FROM account 
               WHERE email='$email' 
               AND password='$password' ";
  
    $result=mysql_query($sql) or die('Erreur dans la requête  <br>'.$sql.' <br>'mysql_error());; 
    $num_rows = mysql_num_rows($result); // nombre de lignes retournées par la requete

    if($num_rows>0){
     //Si la requête retourne un résultat : 
        $_SESSION['login'] = $login; // initialisation d'une variable de Session
        header("location:membre.php"); //redirection vers la page : membre.php
        exit();
    }else{
       $message = "Erreur ! Utilisateur ou mot de pass incorrect";
    }
} 
?>
<html> 
<title>ma page</title> 

<form method ="post" action=""> 
<body> 
 <strong> Mail </strong> 
  <input type="email" name="email" required="required" placeholder="E-mail"/> 
  <strong> Mot de passe <strong> 
  <input type="password" name="password" required="required" placeholder="Password"/> 
  <input type="submit" name="login">Connexion/Login</button> 
 </form> 
<div>
  <span><?php $message; ?></span>
</div>
</body> 
</html> 


Et la page Membre :
<?php
//********************
//  membre.php
//*******************
//-----------------------------------------------------------------------//
//démarrage des Sessions
//-----------------------------------------------------------------------//
session_start();

$login = isset($_SESSION['login']) ? $_SESSION['login'] : NULL;
if (!$login) {
  header ('Location: login.php');
  exit();
}
?>
<html> 
 <head>
  <title>espace membre</title>
  <link rel="stylesheet" href="styles\style.css" media="all" />
 </head>
 <body>
  <div>
    Bienvenue <?php echo $login; ?>
  </div>
  <div>
   <a href='https://www.google.fr'><img src='images/accueil.png' /></a>
   <a href='https://www.youtube.com/?gws_rd=ssl'><img src='images/youtube.png' /></a>
  </div>
 </body>
</html>




NB : Comme mes collègues te l'ont déjà indiqué ... l'extension mysql est obsolète.
merci de lire ceci : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

NB2 : Tu devrais placer le code de connexion à la BDD dans un fichier à part que tu n'auras, par la suite, qu'à inclure dans les pages où tu en auras besoin...



EDIT : Correction d'une erreur sur la ligne mysql_query


Cordialement,
Jordane
0
aliaka Messages postés 11 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 31 août 2015
27 août 2015 à 12:40
Merci jordane45 tout dabord j'ai fais comme tu m'a dit au sujet du code de connexion à la BDD dans un fichier à part : connexion.php

<?php
$base = mysql_connect('localhost', 'root', 'mdp ') or die('Erreur de connexion à la BDD <br>'.mysql_error());;
mysql_select_db('demo') or die('Erreur ! <br>'.mysql_error());;
?>


----------------------------------------------
login.php
$login = isset($_POST['login']) ? $_POST['login'] : NULL;
$password = isset($_POST['password']) ? $_POST['password'] : NULL;
$email = isset($_POST['email']) ? $_POST['email'] : NULL;
=> require 'connexion.php';


ça ne change rien. j'ai fais copier coller de ton code proposé :
pas de saisie mail et password il m'affiche directement ce message : Parse error: syntax error, unexpected 'mysql_error' (T_STRING) in C:\xampp\htdocs\site\register\login.php on line 29

=> $result=mysql_query($sql) or die('Erreur dans la requête <br>'.$sql.' <br>'mysql_error());;
$num_rows = mysql_num_rows($result);



php inscription pas de souci mais php de session connexion je me tire les cheveux c'est un truc de ouf je confirme que je suis une débutante merci encore de votre d'aide
c'est vraiment sympa même si le pb n'est pas réglé mais ce qui compte c'est le geste.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > aliaka Messages postés 11 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 31 août 2015
27 août 2015 à 12:44
Maintenant que tu as fais tes modifs dans ton code ...

l'erreur se trouvant à la ligne 29 ... de ton fichier login.php ...

peux tu nous coller le code complet de ta page login.php ?

**** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.
0
aliaka Messages postés 11 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 31 août 2015
Modifié par jordane45 le 27/08/2015 à 14:11
oui au sujet de la coloration syntaxique quand je cliqué sur le lien => page erreur 404
aujourd'hui le pb est résolu grâce à toi merci.


excuse moi j'ai fais une erreur au sujet du message c'est ça le message d'erreur :
Parse error: syntax error, unexpected 'echo' (T_ECHO) in C:\xampp\htdocs\site\register\login.php on line 15

=>
 $password = isset($_POST['password']) ? $_POST['password'] : NULL; 



je t'envoie le code du fichier login.php =>

<?php 

 LOGIN.PHP

session_start();
require 'connexion.php';


$login = isset($_POST['login']) ? $_POST['login'] : NULL;
$password = isset($_POST['password']) ? $_POST['password'] : NULL;
$email = isset($_POST['email']) ? $_POST['email'] : NULL;


if($email && $password){
 
    $sql = "SELECT *
               FROM account 
               WHERE email='$email' 
               AND password='$password' ";
  
    $result=mysql_query($sql) or die('Erreur dans la requête  <br>'.$sql.' <br>'mysql_error());; 
    $num_rows = mysql_num_rows($result); // nombre de lignes retournées par la requete

    if($num_rows>0){
     //Si la requête retourne un résultat : 
        $_SESSION['login'] = $login; // initialisation d'une variable de Session
        header("location:membre.php"); //redirection vers la page : membre.php
        exit();
    }else{
       $message = "Erreur ! Utilisateur ou mot de pass incorrect";
    }
} 
?>
<html> 
<title>ma page</title> 

<form method ="post" action=""> 
<body> 
 <strong> Mail </strong> 
  <input type="email" name="email" required="required" placeholder="E-mail"/> 
  <strong> Mot de passe <strong> 
  <input type="password" name="password" required="required" placeholder="Password"/> 
  <input type="submit" name="login">Connexion/Login</button> 
 </form> 
<div>
  <span><?php $message; ?></span>
</div>
</body> 
</html> 
0
aliaka Messages postés 11 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 31 août 2015
Modifié par aliaka le 27/08/2015 à 13:53
jordane45 pk c'est grisé pourtant j'ai bien sélectionné mon code php puis j'ai cliqué sur l'icone en haut à droite
=> <> j'ai bien vue code code j'ai mis mon php au milieu puis valider tu peux supprimer mon code je vais recommencer mais avant je vais attendre ta réponse au sujet de la coloration syntaxique pk c'est grisé parce que si je recommence tu vas m' engueulé lol
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié par jordane45 le 27/08/2015 à 14:16
Pour ce qui est de l'erreur,
le souci vient de la ligne
 $result=mysql_query($sql) or die('Erreur dans la requête  <br>'.$sql.' <br>'mysql_error());;

A remplacer par :
 $result=mysql_query($sql) or die('Erreur dans la requête  <br>'.$sql.' <br>' . mysql_error());


Pour ce qui est de la couleur ... il faut, dans la balise de code , préciser le langage:
<code php>
// ici le code ...
</code>
ce qui donne:
//ici le code...
0
aliaka Messages postés 11 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 31 août 2015
28 août 2015 à 15:35
md5 dans login.php fait merci jordane45.

Je tape cette adresse aaa@yahoo.fr + mdp cet utilisateur est bien dans ma base
mysql j'ai ce message d'erreur =>

=> Erreur SQL !INSERT INTO account VALUES("", "dfgfg@yahoo.fr", "202cb962ac59075b964b07152d234b70")
Column count doesn't match value count at row 1

j'ai créer qu'une seule base de donnée pour inscription.php et login.php
nom de base de donnée demo
table account


colonne id int primary key

login => varchar 100
email => varchar 100
password => varchar 100
pass_confirm => varchar 100
situation => varchar 100
gender => varchar 100
anniversaire => date

pourtant j'ai bien ajouté les champs d'inscription (situation, gender et anniversaire)

------------------------------------------------------------------------------------------------------------------------------
inscription.php


<?php

    if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
    
    Message d'erreur: Parse error: syntax error, unexpected '('in C:\xampp\htdocs\site\register\inscription.php on line 5 =>

=>  if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['email']) && !empty($_POST['email'])) && (isset($_POST['password']) && !empty($_POST['password'])) &&(isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])) && (isset($_POST['situation']) &&(isset($_POST['situation']) && !empty($_POST['gender'])) (isset($_POST['gender']) && !empty($_POST['anniversaire'])) &&&& !empty($_POST['anniversaire']))) {
    	
    	if ($_POST['pass_confirm'] != $_POST['pass_confirm']) {
    		$erreur = 'Les 2 mots de passe sont différents.';
    	}
    	else {
    		$base = mysql_connect ('localhost', 'root', 'mdp'); => dans fichier à part 
    		mysql_select_db ('demo');

    		$sql = 'SELECT count(*) FROM account WHERE login="'.mysql_escape_string($_POST['login']).'"';
    		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    		$data = mysql_fetch_array($req);

    		if ($data[0] == 0) {
    		$sql = 'INSERT INTO account VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string($_POST['email']).'", "'.mysql_escape_string($_POST['password']).'", "'.mysql_escape_string($_POST['situation']).'", "'.mysql_escape_string($_POST['gender']).'", "'.mysql_escape_string(md5($_POST['anniversaire'])).'")';
    		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

    		session_start();
    		$_SESSION['login'] = $_POST['login'];
    		header('Location: membre.php');
    		exit();
    		}
    		else {
    		$erreur = 'Un membre possède déjà ce login.';
    		}
    	}
    	}
    	else {
    	$erreur = 'Au moins un des champs est vide.';
    	}
    }
    ?>
<html>

<head>

<title>social_network</title>
<meta charset="utf_8"/>

<link rel="stylesheet" href="css\style.css" media="all" /> 

 <form action="inscription.php" method="post">

 <h3 class="titre" align="left"> <font color="#333333">INSCRIPTION </h3> 
  </br>
 
 <form action="home.php" method="post">

  <table  border="1"  align="center">
	
      </tr>
      <tr>
        <td class="compte">Login:</td><tr>
        <td><input type="text" name="login" required="required" size="25" maxlength="30"  onClick="effacer()<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?> </td>
      </tr>
  
        </tr>
      <tr>
        <td class="compte">Mail:</td><tr>
        <td><input type="email" name="email" required="required" size="25" maxlength="30"  onClick="effacer()<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?> </td>
      </tr>
	  
  </tr>
      <tr>
        <td class="compte">Mot de passe :</td><tr>

        <td><input type="password" name="password" required="required" size="25"
                                 -----------------            -----------
 maxlength="30"  onClick="effacer()<?php if (isset($_POST['password'])) echo 
                                                                                    ------------------
htmlentities(trim($_POST['password'])); ?> </td>
      </tr>		              --------------
	  
	    </tr>
      <tr>
        <td class="compte">Re mot de passe :</td><tr>
        <td><input type="password" name="pass_confirm" required="required" size="25"
                                  ---------------             -------------------
 maxlength="30"  onClick="effacer()<?php if (isset($_POST['pass_confirm'])) echo 
                                                                                       ---------------------
htmlentities(trim($_POST['pass_confirm'])); ?> </td>
      </tr>		             -------------------
	  
<td class="compte">Situation:<tr></td>
        <td><select name="situation" required="required">
		 <option value="celibataire"></option>
		 <option value="en couple">en couple</option>
		 <tr>
		<br>
			
	
        <td class="compte"> Gender:<tr></td>
        <td><select name="gender" required="required">
		 <option value=""></option>
		 <option value="femme">Femme</option>
		 <option value="homme">Homme</option>
		 <tr>
		<br>
		
		 <td class="compte">Anniversaire/:<tr></td><?php if (isset($_POST['date'])) echo htmlentities(trim($_POST['date'])); ?> </td>
		 <td><select name="anniversaire" required="required">
        <option value="01">1</option>
        <option value="02">2</option>
        <option value="03">3</option>
        <option value="04">4</option>
        <option value="05">5</option>
        <option value="06">6</option>
   	 <option value="07">7</option>
        <option value="08">8</option>
        <option value="09">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
    </select>
	
	 <select name="anniversaire" required="required">
	  <option value=""></option>
        <option value="01">1</option>
        <option value="02">2</option>
        <option value="03">3</option>
        <option value="04">4</option>
        <option value="05">5</option>
        <option value="06">6</option>
        <option value="07">7</option>
        <option value="08">8</option>
        <option value="09">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        <option value="14">14</option>
        <option value="15">15</option>
        <option value="16">16</option>
        <option value="17">17</option>
        <option value="18">18</option>
        <option value="19">19</option>
        <option value="20">20</option>
        <option value="21">21</option>
        <option value="22">22</option>
        <option value="23">23</option>
        <option value="24">24</option>
        <option value="25">25</option>
        <option value="26">26</option>
        <option value="27">27</option>
        <option value="28">28</option>
        <option value="29">29</option>
        <option value="30">30</option>
        <option value="31">31</option>
    </select>
		  <select name="anniversaire" required="required">
		   <option value=""></option>
        <option value="2013">2013</option>
        <option value="2014">2014</option>
        <option value="2015">2015</option>
       
   
    </select>
			<br> 
			<br> 
			 
  <input type="submit" name="inscription" value="Inscription">
    </form>


----------------------------------------------------------------------------------------------------
login.php



$login = isset($_POST['login']) ? $_POST['login'] : NULL;
$password = isset($_POST['password']) ? $_POST['password'] : NULL;
$email = isset($_POST['email']) ? $_POST['email'] : NULL;

if($email && $password){
 
    $sql = "SELECT *
               FROM account 
               WHERE email='$email' 
               AND password='$password' ";
  $result=mysql_query($sql) or die('Erreur dans la requête  <br>'.$sql.' <br>' . mysql_error());
   
 Modification pour md5 password =>  $sql = 'INSERT INTO account VALUES("", "'.mysql_escape_string($_POST['email']).'", "'.mysql_escape_string(md5($_POST['password'])).'")';
    		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
   
    $num_rows = mysql_num_rows($result); 
    if($num_rows>0){
   
        $_SESSION['login'] = $login; // initialisation d'une variable de Session
        header("location:membre.php"); //redirection vers la page : membre.php
        exit();
    }else{
       $message = "Erreur ! Utilisateur ou mot de pass incorrect";
    }
} 

?>
<html> 
<title>ma page</title> 

<form method ="post" action=""> 
<body> 
 <strong> Mail </strong> 
  <input type="email" name="email" required="required" placeholder="E-mail"/> 
  
<strong> Mot de passe <strong> 
  
<input type="password" name="password" required="required" 
                    ------------              ---------------
placeholder="Password"/> 
  		   ----------------
<input type="submit" name="login">Connexion/Login</button> 
 </form> 
<div>
  <span><?php $message; ?></span>
</div>
</body> 
</html> 

0
aliaka Messages postés 11 Date d'inscription mercredi 26 août 2015 Statut Membre Dernière intervention 31 août 2015
31 août 2015 à 16:35
Quelqu'un peut m'aider svp

j'ai un souci de connexion utilisateurs qui sont inscrits dans ma base de donné mysql j'ai ce message d'erreur qui s'affiche quand je rentre l'utilisateur inscrit sur mysql :

=>Erreur dans la requête INSERT INTO account ( email,password) VALUES( $email,$password) Unknown column '$email' in 'field list'

dans ma page inscription.php j'ai le formulaire inscription + connexion sur la même page.

j'ai créer une base de donnée pour inscription.php
nom de base de donnée demo
table account

colonne id int primary key

id int => primary key
login => varchar 100
email => varchar 100
password => varchar 100
pass => varchar 100

fichier : inscription.php

<?php

if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {

if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {

if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = 'Les 2 mots de passe sont différents.';
}
else {
$base = mysql_connect ('localhost', 'root', 'mdp');
mysql_select_db ('demo');

$sql = 'SELECT count(*) FROM account WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

if ($data[0] == 0) {
$sql = 'INSERT INTO account VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string($_POST['email']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
else {
$erreur = 'Un membre possède déjà ce login.';
}
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>

<?php

session_start();

$base = mysql_connect ('localhost', 'root', 'mdp');
mysql_select_db ('demo');

$login = isset($_POST['login']) ? $_POST['login'] : NULL;
$password = isset($_POST['password']) ? $_POST['password'] : NULL;
$email = isset($_POST['email']) ? $_POST['email'] : NULL;

if($email && $password){

$sql = 'INSERT INTO account (
email,password)
VALUES(
$email,$password)';
$result=mysql_query($sql) or die('Erreur dans la requête <br>'.$sql.' <br>' . mysql_error());

$sql = 'INSERT INTO account VALUES("", "'.mysql_escape_string($_POST['email']).'", "'.mysql_escape_string(md5($_POST['password'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

$num_rows = mysql_num_rows($result);
if($num_rows>0){

$_SESSION['login'] = $login;
header("location:membre.php");
exit();
}else{
$message = "Erreur ! Utilisateur ou mot de pass incorrect";
}
}
?>
<html>
<title>ma page</title>

<form method ="post" action="">
<body>
<strong> Mail </strong>
<input type="email" name="email" required="required" placeholder="E-mail"/>
<strong> Mot de passe <strong>
<input type="password" name="password" required="required" placeholder="Password"/>
<input type="submit" name="login">Connexion</button>
</form>
<div>
<span><?php $message; ?></span>
</div>
</body>
</html>

</div>

</div>

<div id="content">
<div>

</div>

<div id="form2">

<form action="inscription.php" method="post">

<h3 class="titre" align="left"> <font color="#333333">INSCRIPTION</h3>
</br>

<form action="home.php" method="post">

<table border="1" align="center">

</tr>
<tr>
<td class="compte">nom prenom :</td><tr>
<td><input type="text" name="login" required="required" size="25" maxlength="30" onClick="effacer()"<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?></td>
</tr>

</tr>
<tr>
<td class="compte">Mail:</td><tr>
<td><input type="email" name="email" required="required" size="25" maxlength="30" onClick="effacer()"<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?> </td>
</tr>

</tr>
<tr>
<td class="compte">Mot de passe :</td><tr>
<td><input type="password" name="pass" required="required" size="25" maxlength="30" onClick="effacer()"<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?> </td>
</tr>

</tr>
<tr>
<td class="compte">Re mot de passe :</td><tr>
<td><input type="password" name="pass_confirm" required="required" size="25" maxlength="30" onClick="effacer()"<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?> </td>
</tr>

</body>
</html>
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
31 août 2015 à 22:21
Le message d'erreur t'indique sue tu n'as pas rempli toutes les colonnes, ce qui est vrai.
Utilises plutôt : INSERT INTO Table (Champ1,Champ2) SET (Value1, Value2)

Concernant ta deuxième erreur, il te dit qu'une variable n'est pas définie avant d'être utilisée, peut être une faute de frappe ou une erreur d'initialisation.
0
merci NHenry merci merci merci beaucoup NHenry résolu grâce à toi tes trop fort
merci encore
0