Probleme d'authentification en PHP
Résolu
ZaNy
-
majdoulin Messages postés 106 Date d'inscription Statut Membre Dernière intervention -
majdoulin Messages postés 106 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je vous explique mon problème.
Je possède un formulaire POST qui contient 2 champs (login pour saisir l'identifiant, et password pour saisir le mots de passe.
Lorsque je clique sur le bouton Envoyer, mon formulaire recupère ces données et va sur la page authentification2.php
Voici le code de la page authentification2.php
<?php $login=htmlspecialchars($_POST["login"]);
$password=htmlspecialchars($_POST["password"]);
if (isset($login) && isset ($password) && $login !=NULL && $password !=NULL)
{
$requete="SELECT user,pass FROM membres WHERE user='".$login."' AND pass='".$password."';";
include("connexion.php");
$result=mysql_query($requete);
$ligne=mysql_fetch_array($result);
session_start();
$_SESSION['login']=$login;
header('perso.php');
header('accueil.php');
}
else
{
header('accueil.php');
}
?>
J'aimerai que la page perso.php s'affiche si le login et mots de passe sont bon sinon la page accueil.php.
Le login et mots de passe sont contenu dans une tables membres avec un champ 'user' et un champs 'pass'.
Merc i de votre aide
Cordialement
Je vous explique mon problème.
Je possède un formulaire POST qui contient 2 champs (login pour saisir l'identifiant, et password pour saisir le mots de passe.
Lorsque je clique sur le bouton Envoyer, mon formulaire recupère ces données et va sur la page authentification2.php
Voici le code de la page authentification2.php
<?php $login=htmlspecialchars($_POST["login"]);
$password=htmlspecialchars($_POST["password"]);
if (isset($login) && isset ($password) && $login !=NULL && $password !=NULL)
{
$requete="SELECT user,pass FROM membres WHERE user='".$login."' AND pass='".$password."';";
include("connexion.php");
$result=mysql_query($requete);
$ligne=mysql_fetch_array($result);
session_start();
$_SESSION['login']=$login;
header('perso.php');
header('accueil.php');
}
else
{
header('accueil.php');
}
?>
J'aimerai que la page perso.php s'affiche si le login et mots de passe sont bon sinon la page accueil.php.
Le login et mots de passe sont contenu dans une tables membres avec un champ 'user' et un champs 'pass'.
Merc i de votre aide
Cordialement
A voir également:
- Probleme d'authentification en PHP
- Double authentification google - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Code a 6 chiffres application d'authentification instagram - Forum Instagram
- Application d'authentification facebook - Guide
6 réponses
Merci de votre aide
Voici mon code remodifier, et qui marche mieux mais pas encors très bien.
<?php $login=htmlspecialchars($_POST["login"]);
$password=htmlspecialchars($_POST["password"]);
if (isset($login) && isset ($password) && $login !=NULL && $password !=NULL)
{
$requete="SELECT num,type FROM membres WHERE user='".$login."' AND pass='".$password."';";
include('connexion.php');
$result=mysql_query($requete);
$ligne=mysql_fetch_array($result);
$num=$ligne["num"];
$type=$ligne["type"];
switch ($type)
{
// Cas Admin
case 'Admin' :
session_start();
$_SESSION['type']=$type;
$_SESSION['login']=$login;
$_SESSION['num']=$num;
header('location:perso.php');
case '' :
header('location:accueil.php');
}
}
else
{
header('location:accueil.php');
}
?>
Lorsque je rentre un faux login et mots de passe ou que je ne rentre rien, on retourne bien sur la page d'accueil.
Par contre, le soucis est que si je rentre le bon login et mots de passe, on va bien sur la page authentification2.php mais la, page blanche et rien ne bouge, alors que l'on devrai repartir sur perso.php
Voici mon code remodifier, et qui marche mieux mais pas encors très bien.
<?php $login=htmlspecialchars($_POST["login"]);
$password=htmlspecialchars($_POST["password"]);
if (isset($login) && isset ($password) && $login !=NULL && $password !=NULL)
{
$requete="SELECT num,type FROM membres WHERE user='".$login."' AND pass='".$password."';";
include('connexion.php');
$result=mysql_query($requete);
$ligne=mysql_fetch_array($result);
$num=$ligne["num"];
$type=$ligne["type"];
switch ($type)
{
// Cas Admin
case 'Admin' :
session_start();
$_SESSION['type']=$type;
$_SESSION['login']=$login;
$_SESSION['num']=$num;
header('location:perso.php');
case '' :
header('location:accueil.php');
}
}
else
{
header('location:accueil.php');
}
?>
Lorsque je rentre un faux login et mots de passe ou que je ne rentre rien, on retourne bien sur la page d'accueil.
Par contre, le soucis est que si je rentre le bon login et mots de passe, on va bien sur la page authentification2.php mais la, page blanche et rien ne bouge, alors que l'on devrai repartir sur perso.php
Le probleme maintenant est que dans tous les cas, meme avec login et password correct, je suis renvoyé sur accueil.php.
Je comprend plus rien. Je pense que ca doit provenir de mes headers(...) qui sont mal placé???
Je comprend plus rien. Je pense que ca doit provenir de mes headers(...) qui sont mal placé???
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je crois plutot que le probleme vient de ta requete les header sont bien pose ,juste une remarque je crois qu'il faudrait mettre break;
header('location:perso.php');break;
case '' :
header('location:accueil.php');
break;
}
}
else
{
header('location:accueil.php');break;
}
?>
Et comme tu es toujour redirige vers acceuil alors ce serait ta requete qui marche pas , pour moi ca a marche voici mon code si ca peut t 'aider :
<?php
if(!empty($_POST["valider"]))
{ if(!empty($_POST['login']) && !empty($_POST['pass']) and ($_POST['login'] != NULL) and ($_POST['pass'] != NULL)) {
$login=$_POST['login'];
$pass=$_POST['pass'];
$rek=mysql_query("select login,pass,categorie,nom,prenom from admin where login='$login' and pass='$pass' ");
mysql_close();
if ($ligne = mysql_fetch_array($rek))
{$cat=$ligne[2];
session_start();
session_save_path("/sessions");
$_SESSION['login'] = $ligne[0];
$_SESSION['pass'] = $ligne[1];
$_SESSION['cat'] = $cat;
$_SESSION['nom'] = $ligne[3];
$_SESSION['prenom'] = $ligne[4];
header("Location: utilisateurs.php");
} }}
?>
Et dans l autre page j ai recupere categorie et avec switch case j ai affiche ce ke je voulai .
header('location:perso.php');break;
case '' :
header('location:accueil.php');
break;
}
}
else
{
header('location:accueil.php');break;
}
?>
Et comme tu es toujour redirige vers acceuil alors ce serait ta requete qui marche pas , pour moi ca a marche voici mon code si ca peut t 'aider :
<?php
if(!empty($_POST["valider"]))
{ if(!empty($_POST['login']) && !empty($_POST['pass']) and ($_POST['login'] != NULL) and ($_POST['pass'] != NULL)) {
$login=$_POST['login'];
$pass=$_POST['pass'];
$rek=mysql_query("select login,pass,categorie,nom,prenom from admin where login='$login' and pass='$pass' ");
mysql_close();
if ($ligne = mysql_fetch_array($rek))
{$cat=$ligne[2];
session_start();
session_save_path("/sessions");
$_SESSION['login'] = $ligne[0];
$_SESSION['pass'] = $ligne[1];
$_SESSION['cat'] = $cat;
$_SESSION['nom'] = $ligne[3];
$_SESSION['prenom'] = $ligne[4];
header("Location: utilisateurs.php");
} }}
?>
Et dans l autre page j ai recupere categorie et avec switch case j ai affiche ce ke je voulai .