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
aliaka - 1 sept. 2015 à 11:51
A voir également:
- PHP MYSQL pb de session authentification utilisateurs
- Double authentification google - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Associez chaque situation à l’action la plus appropriée en matière de sécurité informatique : verrouiller la session, quitter la session, ne rien faire ou éteindre l'ordinateur. - Forum MacOS
- Authentification coco par sms - Forum Mail
7 réponses
NHenry
Messages postés
15176
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
350
26 août 2015 à 20:55
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.
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.
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
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.
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.
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
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.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI => erreur 404
Merci d'y penser dans tes prochains messages.
NHenry
Messages postés
15176
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
350
26 août 2015 à 23:01
26 août 2015 à 23:01
Merci, je vais corriger.
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
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.
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.
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
27 août 2015 à 00:54
Je pense que ceci devrait marcher :
login.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 :
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.
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.
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
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.
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.
jordane45
Messages postés
38358
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
Modifié par jordane45 le 27/08/2015 à 01:41
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 :
Et la page Membre :
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
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
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
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.
<?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.
jordane45
Messages postés
38358
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
>
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
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
.
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
.
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
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
=>
je t'envoie le code du fichier login.php =>
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>
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
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
=> <> 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
jordane45
Messages postés
38358
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
Modifié par jordane45 le 27/08/2015 à 14:16
Modifié par jordane45 le 27/08/2015 à 14:16
Pour ce qui est de l'erreur,
le souci vient de la ligne
A remplacer par :
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:
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...
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
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
----------------------------------------------------------------------------------------------------
login.php
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>
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
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
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>
NHenry
Messages postés
15176
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
350
31 août 2015 à 22:21
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.
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.
Modifié par ludobabs le 26/08/2015 à 21:01
ligne 10 tu pourrais nous faire un petit
histoire de vérifier ta requête SQL
Cdt