aide pour login en php

aide pour login en php - PHP - Programmation

Marsh Posté le 03-11-2005 à 09:42:20    

bonjour a tous, je voudrais faire une page de login sur un site, attention pas des session juste un verif de login c tout.
 
voila ma syntaxe pour linstant pour la page de verif.php
 
<?php
$login = $_POST['login'];
$pwd = $_POST['password'];  
 
$db = mysql_connect('sql.free.fr', 'azerty', 'azerty');  
mysql_select_db('azerty',$db);  
 
Que mettre comme condition????
 
?>
 
 
il faut qu'il verifie que le nom d'utilisateur corespond bien avec le mot de passe
 
si oui alors redirection ver acueil.html
 
si non alors index.html
 
 
 
Merci desoler je suis nul

Reply

Marsh Posté le 03-11-2005 à 09:42:20   

Reply

Marsh Posté le 03-11-2005 à 09:45:19    

T'as même pas une petite idée ? [:figti]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 03-11-2005 à 09:48:18    

ca doit etre du genre :
 
if  
$login = login dans ma table utilisateur dans sql
et
$password = pwd dans ma table utlisateur sql
 
alors direction aceuil
 
 
sinon fuck
 
 
sans la syntaxe c'est ca?

Reply

Marsh Posté le 03-11-2005 à 09:51:19    

RTFM > C'est pas pour rien.

Reply

Marsh Posté le 03-11-2005 à 10:04:51    

Pardon?

Reply

Marsh Posté le 03-11-2005 à 10:07:58    

Ce que je voulais dire c'est qu'il y a pas mal de documentation sur internet qui te permerttrait de trouver ca... Mais bon faut quand même que tu vienne sur le forum pour demander? C'est dingue...
 
Juste comme ca :
...WHERE `champ1` = "'.mysql_real_escape_string($var).'" AND `champ2`...
Et regarde coté mysql_num_rows() pour la condition en php.

Reply

Marsh Posté le 03-11-2005 à 10:10:49    

un forum sert aussi pour aider, si tout se trouve ailleur qu'ici, pourquoi tu es la??  
 
si je demande ici, c'est pour trouver des reponse plus claire que celle que je trouve ailleurs,  mais aparement on doit poser que des question ou la reponse ne se trouve nul part ailleur...

Reply

Marsh Posté le 03-11-2005 à 10:21:49    

lancevo7 a écrit :

mais aparement on doit poser que des question ou la reponse ne se trouve nul part ailleur...


Bah logiquement c'est plus ou moins le concepte...
 
Mais bon voilà une réponse :
 

Code :
  1. $query = mysql_query('SELECT `champ` FROM `membre` WHERE `pseudo` = "'.mysql_real_escape_string($_POST["pseudo]).'" AND `pass` = "'.md5($_POST["pass"]).'" );
  2. if ( mysql_num_rows($query) > 0 ) {
  3.   // Login ok
  4. }else{
  5.   // "Sinon fuck" comme tu l'as dit
  6. }

Reply

Marsh Posté le 03-11-2005 à 10:26:49    

ben moi je fais juste une recherche sur le login dans la BDD, et après je compare dans PHP pour le password, ce qui me permet de différencier 2 "fuck" ;)
- celui du login qui n'existe pas
- celui du login qui existe mais dont le password n'est pas le bon


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 03-11-2005 à 10:30:19    

dwogsi a écrit :

Bah logiquement c'est plus ou moins le concepte...
 
Mais bon voilà une réponse :
 

Code :
  1. $query = mysql_query('SELECT `champ` FROM `membre` WHERE `pseudo` = "'.mysql_real_escape_string($_POST["pseudo]).'" AND `pass` = "'.md5($_POST["pass"]).'" );
  2. if ( mysql_num_rows($query) > 0 ) {
  3.   // Login ok
  4. }else{
  5.   // "Sinon fuck" comme tu l'as dit
  6. }



 
Merci bcp ;)

Reply

Marsh Posté le 03-11-2005 à 10:30:19   

Reply

Marsh Posté le 03-11-2005 à 10:38:47    

Parse error: parse error, unexpected '=', expecting ']'  on line 17
 
ligne 17 :
$query = mysql_query('SELECT `champ` FROM `utilisateurs` WHERE `user` = "'.mysql_real_escape_string(
 
 
utilisateurs = ma table
user = champ
 
c bien ca?

Reply

Marsh Posté le 03-11-2005 à 11:21:59    

Xav_ a écrit :

ben moi je fais juste une recherche sur le login dans la BDD, et après je compare dans PHP pour le password, ce qui me permet de différencier 2 "fuck" ;)
- celui du login qui n'existe pas
- celui du login qui existe mais dont le password n'est pas le bon


C'est effectivement une autre solution, mais je ne l'aime pas tellement....
Le message que je met moi en général c'est "Mot de passe ou identifiant incorrecte".

lancevo7 a écrit :

Parse error: parse error, unexpected '=', expecting ']'  on line 17
 
ligne 17 :
$query = mysql_query('SELECT `champ` FROM `utilisateurs` WHERE `user` = "'.mysql_real_escape_string(
 
 
utilisateurs = ma table
user = champ
 
c bien ca?


Fait voir ton code exactement (si c'est pas trop long) parce que l'erreur que tu as ne vient pas des noms de champs que tu a pu mettre dans la requête.

Reply

Marsh Posté le 03-11-2005 à 11:23:32    

il est comme ca :
 

Code :
  1. $query = mysql_query "SELECT 'user' FROM 'utilisateurs' WHERE 'user' = '".mysql_real_escape_string($login)."' AND 'pwd' = '".md5($pwd)."'" );
  2. if ( mysql_num_rows($query) > 0 ) {
  3. echo 'bravo';
  4. }
  5. else{
  6. echo 'Une erreur est survenue, veuillez réessayer !';
  7. }
  8. ?>


 

Reply

Marsh Posté le 03-11-2005 à 11:28:05    

Elle est passé où la "(" derriére mysql_query?

Reply

Marsh Posté le 03-11-2005 à 11:31:29    

Code :
  1. $query = mysql_query ("SELECT 'user' FROM 'utilisateurs' WHERE 'login' = '".mysql_real_escape_string($login)."'" AND 'pwd' = '".md5($pwd)."');


 
ca fait ca mais toujours pas bon
 
 
user = champ ds ma base
utilisateurs = base
login = ???
 
pwd=pwd ds ma base

Reply

Marsh Posté le 03-11-2005 à 11:38:58    

ben $login et $pwd tu les renseigne avec ce que tu as récupérer du formulaire avant de lancer la requete ?


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 03-11-2005 à 11:40:45    

Code :
  1. <?php
  2. $login = $_POST['login'];
  3. $pwd = $_POST['password'];
  4. //connection a Mysql
  5. $db = mysql_connect('sql.free.fr', '****', '*****');
  6. //sélection de la base
  7. mysql_select_db('****',$db);
  8. $query = mysql_query ("SELECT 'user' FROM 'utilisateurs' WHERE 'user' = '".mysql_real_escape_string($login)."' AND 'pwd' = '".md5($pwd)."'" );
  9. if ( mysql_num_rows($query) > 0 ) {
  10. echo 'bravo';
  11. }
  12. else{
  13. echo 'Une erreur est survenue, veuillez réessayer !';
  14. }
  15. ?>


 
 
ca donne ca en ce moment

Reply

Marsh Posté le 03-11-2005 à 11:42:23    

lancevo7 a écrit :

Code :
  1. <?php
  2. $login = $_POST['login'];
  3. $pwd = $_POST['password'];
  4. //connection a Mysql
  5. $db = mysql_connect('sql.free.fr', '****', '*****');
  6. //sélection de la base
  7. mysql_select_db('****',$db);
  8. $query = mysql_query ("SELECT 'user' FROM 'utilisateurs' WHERE 'user' = '".mysql_real_escape_string($login)."' AND 'pwd' = '".md5($pwd)."'" );
  9. if ( mysql_num_rows($query) > 0 ) {
  10. echo 'bravo';
  11. }
  12. else{
  13. echo 'Une erreur est survenue, veuillez réessayer !';
  14. }
  15. ?>


 
 
ca donne ca en ce moment


et l'erreur associée ??? (vu que tu dis que ça marche pas)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 03-11-2005 à 11:44:42    

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/3/f/doudoudivx/verif.php on line 20
Une erreur est survenue, veuillez réessayer !
 
 
ligne 20 corespond a  echo 'bravo'
(pourtant pk il va chercher cette ligne vu que j'ai mit un mauvais mot de passe)

Reply

Marsh Posté le 03-11-2005 à 11:45:06    

lancevo7 a écrit :

user = champ ds ma base
utilisateurs = base
login = ???
 
pwd=pwd ds ma base


Je dirais plustôt :
user = champ dans ta table
utilisateurs = ta table
login = ???
 
pwd=pwd dans ta table
 
Une base contiennent une ou plusieurs tables (et parfois d'autres éléments) et c'est les tables qui sont constitué (entre autres) des colones contenant tes données.

Reply

Marsh Posté le 03-11-2005 à 11:47:38    

De toute facon le code que j'ai donné ne va certainement pas fonctionner chez lui, il a certainement stcoké les mot de passe en clair.

Reply

Marsh Posté le 03-11-2005 à 11:48:18    

lancevo7 a écrit :

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/3/f/doudoudivx/verif.php on line 20
Une erreur est survenue, veuillez réessayer !
 
 
ligne 20 corespond a  echo 'bravo'
(pourtant pk il va chercher cette ligne vu que j'ai mit un mauvais mot de passe)


Vu le message d'erreur, ligne 20 correspond à "if ( mysql_num_rows($query) > 0 ) { ". Ca veut donc dire qu'il y a une erreur dans ta requette.
Rajoute un

Code :
  1. or echo mysql_error()

juste avant le ";" terminant la ligne de ta requette.

Reply

Marsh Posté le 03-11-2005 à 12:02:51    

oui les mot de passe sont en clair dans ma base
 
omega2 comme ca?
if ( mysql_num_rows($query) > 0 ) {
echo 'bravo' or echo mysql_error();  
}
else{
echo 'Une erreur est survenue, veuillez réessayer !' or echo mysql_error();  
}
 
??
 

Reply

Marsh Posté le 03-11-2005 à 12:03:48    

non, la ligne de ta requette, celle qui commence par "$query = mysql_query".

Reply

Marsh Posté le 03-11-2005 à 12:06:34    

$query = mysql_query ("SELECT 'user' FROM 'utilisateurs' WHERE 'user' = '".mysql_real_escape_string($login)."' AND 'pwd' = '".md5($pwd)."'" )or echo mysql_error();
 
celle la?
 
 
EDIT : error sur cette ligne


Message édité par lancevo7 le 03-11-2005 à 12:07:41
Reply

Marsh Posté le 03-11-2005 à 12:09:26    

peut être un espace avant le or (me demande si ca joue) mais oui, c'est bien cette ligne là.
 
PS : C'est quoi exxactement l'error qu'il t'a affiché?

Reply

Marsh Posté le 03-11-2005 à 12:13:12    

Parse error: parse error, unexpected T_ECHO in /var/www/free.fr/3/f/doudoudivx/verif.php on line 19
 
c'est ca

Reply

Marsh Posté le 03-11-2005 à 12:31:19    

Bon, je veux :
- Le nom de ta table
- Le nom du champ correspondant a l'identifiant
- Le nom du champ correspondant au pass
 
Parce que sinon on va jamais s'en sortir.

Reply

Marsh Posté le 03-11-2005 à 12:34:16    

table = utilisateurs
identifiant = user
pass = pwd
 
dans ma base les mot de passe sont en clair

Reply

Marsh Posté le 03-11-2005 à 12:36:52    

Code :
  1. <?php
  2. $login = $_POST['login'];
  3. $pwd = $_POST['password'];
  4. //connection a Mysql
  5. $db = mysql_connect('sql.free.fr', '****', '*****');
  6. //sélection de la base
  7. mysql_select_db('****',$db);
  8. $query = mysql_query ("SELECT `user` FROM 'utilisateurs' WHERE `user` = '".mysql_real_escape_string($login)."' AND `pwd` = '".mysql_real_escape_string($pwd)."'" ) OR echo mysql_error();
  9. if ( mysql_num_rows($query) > 0 ) {
  10.    echo 'bravo';
  11. }
  12. else{
  13.    echo 'Une erreur est survenue, veuillez réessayer !';
  14. }
  15. ?>


 
Ce code là DOIT marcher!

Reply

Marsh Posté le 03-11-2005 à 12:43:05    

$query = mysql_query ("SELECT `user` FROM 'utilisateurs' WHERE `user` = '".mysql_real_escape_string($login)."' AND `pwd` = '".mysql_real_escape_string($pwd)."'" ) OR echo mysql_error();
 
 
error T_ECHO la dedans

Reply

Marsh Posté le 03-11-2005 à 14:07:30    

Bah je sais pas essais d'enle ver :
 OR echo mysql_error()

Reply

Marsh Posté le 03-11-2005 à 14:17:39    

echo renvoie rien, faut mettre un print ou un die là.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 03-11-2005 à 14:21:34    

C'est peut être pour ca alors, j'ais jmais testé avec un echo mais comme c'est ce que proposait omega2 j'ai eu confiance...

Reply

Marsh Posté le 03-11-2005 à 14:21:48    

Code :
  1. <?php
  2. $login = $_POST['login'];
  3. $pwd = $_POST['password'];
  4. //connection a Mysql
  5. $db = mysql_connect('sql.free.fr', '***', '**', '***');
  6. //sélection de la base
  7. mysql_select_db('****');
  8. $sql = "SELECT * FROM utilisateurs WHERE user = '".$login."' AND `pwd` = '".$pwd."'";
  9. $requete = mysql_query($sql, $db);
  10. $result = mysql_fetch_object($requete);
  11. if ($result) {
  12.    echo 'bravo';
  13. }
  14. else{
  15.    echo 'Une erreur est survenue, veuillez réessayer !';
  16. }
  17. ?>


 
 
 
CA MARCHE !

Reply

Marsh Posté le 03-11-2005 à 14:23:56    

Ok, mais faille de sécurité. Utilise mysql_real_escape_string comme dit plus haut.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 03-11-2005 à 14:26:12    

Accessoirement, SELECT COUNT(*) voire SELECT [un champ] serait plus optimal.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 03-11-2005 à 14:27:14    

Non mais c'est pas vrai il le fais expré....
 
Ca lui viendrait pas à l'idée de chercher pouquoi j'avais mis mysql_real_escape_string()?!
 
Bah non il l'enléve. Franchement j'me serait pas fais chier à écrire tout le nom de cette fonction qui est vachement long si ca serveit à rien.
 
[edit]Et il a mis une étoile (j'avais pas vu).... Oulalala....


Message édité par dwogsi le 03-11-2005 à 14:28:08
Reply

Marsh Posté le 03-11-2005 à 14:28:44    

Merci impecable ca marche!
 
merci beaucoup

Reply

Marsh Posté le 03-11-2005 à 14:31:39    

j'ai remodifier comme vous avez dit, c'est bon
 
par contre, une fois que je conait une page du site si je vais dessus en rentrant l'adresse ca marche, on peut pas faire qu'il faut absolument le user et pass?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed