Authentification en php
Fermé
biduleeva
Messages postés
9
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
17 juin 2008
-
12 juin 2008 à 15:47
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 21 juin 2008 à 10:36
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 21 juin 2008 à 10:36
A voir également:
- Authentification en php
- Double authentification google - Guide
- Easy php - Télécharger - Divers Web & Internet
- Application d'authentification facebook - Guide
- Authentification transcash - Forum Consommation & Internet
- Code a 6 chiffres application d'authentification instagram - Forum Instagram
6 réponses
biduleeva
Messages postés
9
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
17 juin 2008
12 juin 2008 à 23:42
12 juin 2008 à 23:42
S'il vous plait une reponse y a quelqu'un ooooh
Dr Zoidberg
Messages postés
529
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 juin 2015
100
13 juin 2008 à 08:15
13 juin 2008 à 08:15
Salut,
Qu'est ce qui ne marche pas ? Message d'erreurs ?
Une petite remarque qui ne résoudra pas ton problème: pourquoi utilises-tu des LIKE et pas des = dans ta requête SQL ? Tu t'exposes ainsi à d'avantage de risques d'injection SQL, et de plus c'est moins performant.
Qu'est ce qui ne marche pas ? Message d'erreurs ?
Une petite remarque qui ne résoudra pas ton problème: pourquoi utilises-tu des LIKE et pas des = dans ta requête SQL ? Tu t'exposes ainsi à d'avantage de risques d'injection SQL, et de plus c'est moins performant.
biduleeva
Messages postés
9
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
17 juin 2008
15 juin 2008 à 02:48
15 juin 2008 à 02:48
en faites le probleme c'est que je veux qu'il m'affiche la page d'accueil index.php
si l'authentification n 'a pas marché .
Plus clairement si l authentification marche il m affiche ce que je veux ie l'espace abonné et si ça ne marche pas il m'affiche rien juste une page vide
si l'authentification n 'a pas marché .
Plus clairement si l authentification marche il m affiche ce que je veux ie l'espace abonné et si ça ne marche pas il m'affiche rien juste une page vide
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
15 juin 2008 à 10:16
15 juin 2008 à 10:16
Bonjour,
sépares ton script de verif login du reste
si login / pass OK on va à la page d'acceuil de l'espace protégé, sinon on va à index.php
N'oublies pas le petit bout de code session_strat() et verif du cookie de sesssion au début de toutes les pages de l'espace protégé.
@lain
sépares ton script de verif login du reste
<?php // on se connecte MySQL require_once 'connexion.php'; // on envoie la requete à la base pour verifier qu'il existe un couple email mot de passe dans la table $Resultat=mysql_query("SELECT * FROM table_utilisateur WHERE email = '".$_POST['email'] ."' AND motdepasse = '".$_POST['pwd']."'"); mysql_close(); // on verifie si le couple existe bien dans la base if (mysql_numrows($Resultat) == 1){ //OK donc on demarre la session session_start(); $data = mysql_fetch_assoc($Resultat); $_SESSION['numutilisateur'] = $data['numutilisateur']; $_SESSION['email'] = $data['email']; $_SESSION['titre'] = $data['titre']; $_SESSION['nom'] = $data['nom']; $_SESSION['prenom'] = $data['prenom']; header(("Location:page1_espace_adherent.php"); }else{ //sinon on renvoie à la page index.php header("Location: index.php"); } ?>
si login / pass OK on va à la page d'acceuil de l'espace protégé, sinon on va à index.php
N'oublies pas le petit bout de code session_strat() et verif du cookie de sesssion au début de toutes les pages de l'espace protégé.
@lain
biduleeva
Messages postés
9
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
17 juin 2008
>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
15 juin 2008 à 14:56
15 juin 2008 à 14:56
La j ai modifié comme vous m'avez dit sauf le seul probleme c'est que ça marche si le login et le mot de passe OK on va à la page d'accueil de l'espace protégé
Mais dans le cas contraire ça marche pas.
Je sais pas quoi faire
Mais dans le cas contraire ça marche pas.
Je sais pas quoi faire
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
>
biduleeva
Messages postés
9
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
17 juin 2008
15 juin 2008 à 23:24
15 juin 2008 à 23:24
J'avais pas vu mais tu as une erreur ce n'est pas mysql_numrows()
mais mysql_num_rows()
et ta page ou sont saisis les mot de pass et identifiant se nomme bien index.php ?
mais mysql_num_rows()
// on verifie si le couple existe bien dans la base if (mysql_num_rows($Resultat) == 1){ //OK donc on demarre la session session_start(); $data = mysql_fetch_assoc($Resultat); $_SESSION['numutilisateur'] = $data['numutilisateur']; $_SESSION['email'] = $data['email']; $_SESSION['titre'] = $data['titre']; $_SESSION['nom'] = $data['nom']; $_SESSION['prenom'] = $data['prenom']; header(("Location:page1_espace_adherent.php"); }else{ //sinon on renvoie à la page index.php header("Location:index.php");//ne mets pas d'espace }
et ta page ou sont saisis les mot de pass et identifiant se nomme bien index.php ?
biduleeva
Messages postés
9
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
17 juin 2008
>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
16 juin 2008 à 00:04
16 juin 2008 à 00:04
Je l ai rectifié mais ça ne change rien ça marche tjrs quand le login et le mot de passe est ok et pas dans le cas contraire j ai une page blanche
Sinon la page de saisie c est authentification.html mais je l ai rectifié sur le code
Sinon la page de saisie c est authentification.html mais je l ai rectifié sur le code
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
>
biduleeva
Messages postés
9
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
17 juin 2008
16 juin 2008 à 11:35
16 juin 2008 à 11:35
tu as bien mis:
.... }else{ //sinon on renvoie à la page index.php //et essaye en mettant un echo pour voir si tu passses bien par la: echo "pas de couple login pass trouve"; header("Location:authentification.html"); }
Remarque, du fait que tu fasses un
if (mysql_numrows(...)===1)
{
OK..
}
else
{
PAS OK
}
ca veut dire que si jamais 2 enregistrements identiques sont trouvés dans la table (2 emails proches)
alors tu vas dans PAS OK!!!
1- Tu ne devrais pas faire un "like" dans ta requête SQL
2- Assures-toi aussi au passage que ton champ email est bien une clef primaire dans ta table (gain de temps)
et évite les doublons éventuels.
if (mysql_numrows(...)===1)
{
OK..
}
else
{
PAS OK
}
ca veut dire que si jamais 2 enregistrements identiques sont trouvés dans la table (2 emails proches)
alors tu vas dans PAS OK!!!
1- Tu ne devrais pas faire un "like" dans ta requête SQL
2- Assures-toi aussi au passage que ton champ email est bien une clef primaire dans ta table (gain de temps)
et évite les doublons éventuels.
biduleeva
Messages postés
9
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
17 juin 2008
17 juin 2008 à 22:33
17 juin 2008 à 22:33
je vous remets le code
<?php
// on se connecte MySQL
require_once 'connexion.php';
// on envoie la requete à la base pour verifier qu'il existe un couple email mot de passe dans la table
$Resultat=mysql_query("SELECT * FROM table_utilisateur WHERE email = '".$_POST['email'] ."' AND motdepasse = '".$_POST['pwd']."'");
mysql_close();
// on verifie si le couple existe bien dans la base
if (mysql_num_rows($Resultat) > 1){
// echo 'hie';
//OK donc on demarre la session
session_start();
$data = mysql_fetch_assoc($Resultat);
$_SESSION['numutilisateur'] = $data['numutilisateur'];
$_SESSION['email'] = $data['email'];
$_SESSION['titre'] = $data['titre'];
$_SESSION['nom'] = $data['nom'];
$_SESSION['prenom'] = $data['prenom'];
header(("Location:page1_espace_adherent.php");
}else{
//sinon on renvoie à la page index.php
header("Location:retourauthentification.html");
}
?>
<?php
// on se connecte MySQL
require_once 'connexion.php';
// on envoie la requete à la base pour verifier qu'il existe un couple email mot de passe dans la table
$Resultat=mysql_query("SELECT * FROM table_utilisateur WHERE email = '".$_POST['email'] ."' AND motdepasse = '".$_POST['pwd']."'");
mysql_close();
// on verifie si le couple existe bien dans la base
if (mysql_num_rows($Resultat) > 1){
// echo 'hie';
//OK donc on demarre la session
session_start();
$data = mysql_fetch_assoc($Resultat);
$_SESSION['numutilisateur'] = $data['numutilisateur'];
$_SESSION['email'] = $data['email'];
$_SESSION['titre'] = $data['titre'];
$_SESSION['nom'] = $data['nom'];
$_SESSION['prenom'] = $data['prenom'];
header(("Location:page1_espace_adherent.php");
}else{
//sinon on renvoie à la page index.php
header("Location:retourauthentification.html");
}
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dr Zoidberg
Messages postés
529
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 juin 2015
100
18 juin 2008 à 08:18
18 juin 2008 à 08:18
J'ai peur que ton mysql_close arrive trop tôt et libère les résultats avant que tu ne les traites.
Essai de le mettre en commentaire.
Essai de le mettre en commentaire.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
20 juin 2008 à 18:18
20 juin 2008 à 18:18
Non à partir du moment ou a a fait mysql_query on peut faire mysql_close()
les extractions sont en mémoire
les extractions sont en mémoire
Dr Zoidberg
Messages postés
529
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 juin 2015
100
20 juin 2008 à 21:03
20 juin 2008 à 21:03
Exact ! (1 partout Alain :-) )
Par contre:
- Il y a deux parenthèses ouvrantes sur le 1er header.
- Normalement il y a un espace après les deux points de location ('Location: page.php'). Il me semble que certains navigateurs n'aiment pas trop s'il manque. Pour vérifier tu peux mettre un echo APRES le header.
Par contre:
- Il y a deux parenthèses ouvrantes sur le 1er header.
- Normalement il y a un espace après les deux points de location ('Location: page.php'). Il me semble que certains navigateurs n'aiment pas trop s'il manque. Pour vérifier tu peux mettre un echo APRES le header.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 juin 2008 à 10:36
21 juin 2008 à 10:36
Effectivement les deux parenthèses, si ce n'est pas une erreur de frappe sur le forum, doivent bloquer le script
Quand à l'espace après "Location: j'ai regardé sur mes scripts il existe bien
donc a essayer en modifiant ces deux choses.
Quand à l'espace après "Location: j'ai regardé sur mes scripts il existe bien
donc a essayer en modifiant ces deux choses.