Comment établir une SESSION après un login
Résolu
douahmax
-
astuces72 Messages postés 8349 Date d'inscription Statut Membre Dernière intervention -
astuces72 Messages postés 8349 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans le soucis de réaliser une espace membre, j'ai procédé à la création de 3 pages
1. Login.php (que l'utilisateur devra entrer ses identifiants de connexion)
2. Membre.php (La page privé que l'utilisateur doit voir une fois connecté)
3. Error.php (la page que l'utilisateur va voir ses les login entré sont incorrecte)
4. Disconnected.php (La page que l'utilisateur va voir une fois qu'il a cliqué sur le bouton "Déconnexion" présent sur le page Membre.php).
Mais voilà, dès que j'entre les bon identifiants de connexion, au lieu d’atterrir sur la page Membre.php, je suis plutôt renvoyé sur la page Disconnected.php
Sur la page Membre.php il y'a l'instruction ci-dessous dans l'entête qui m'empêche d'atteindre la page Membre.php combien même que le login est correct.
Le problème se trouve principalement au niveau de l'établissement de la SESSION, le script du login fonctionne correctement
//Page Membre.php
<?php
session_start();
if(!isset($_SESSION['NomUtilisateur']))
{
header("location:../disconnected.php"); // redirection (C'est cette bloc qui est toujours exécuté)
exit; // arrêt du script
}
//La session est ouverte on peut afficher la page
?>
=============================================================================
//Page Login.php
<?php
session_start();
//session_destroy();
if(!empty($_POST)){
$maVariable = $_POST;
//Connexion à la Base de données
require_once('database.php');
;
$usernameVerification = "SELECT * FROM agent WHERE NomUtilisateur = '".$maVariable['NomUtilisateur']."' ";
$requete = mysqli_query($mysqli, $usernameVerification);
if (mysqli_num_rows($requete) >=1){
while($row = mysqli_fetch_assoc($requete)){
//Décryptage des mots de passe issu de la base de données
if(password_verify($maVariable['MotDePasse'], $row['MotDePasse'])){
if($row['Status'] == 0){
session_destroy();
die("<br><br><br><br><br>
<center><img class='mb-4' src='img/logo.png'>
<br><br><br>
<h2>Votre compte est désactivé par l'administrateur(trice)</h2>
<a href='index.php'>Retour à la page de connexion</center></a>");
}
$_SESSION['utilisateur'] = '';
$_SESSION['roleuser']= $row['roleId'];
header('Location:app/index.php');
}else{
$error_login = "Mot de passe incorrecte";
}
}
} else {
$error_login = "Nom d'utilisateur incorrecte";
}
mysqli_close($mysqli);
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="noindex,nofollow" />
<link rel="icon" href="img/favicon.png">
<title>Mon Application</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/signin.css" rel="stylesheet">
</head>
<body class="text-center">
<form class="form-signin" action="" method="post" name="connect_form">
<img class="mb-4" src="img/logo.png" alt="" >
<?php
if (isset($error_login)){
echo "<p style='color:red'>$error_login</p>";
} ?>
<label for="inputEmail" class="sr-only">Utilisateur</label>
<input type="text" id="NomUtilisateur" class="form-control" placeholder="Nom d'Utilisateur" name="NomUtilisateur" required autofocus>
<label for="inputPassword" class="sr-only">Mot de passe</label>
<input type="password" id="MotDePasse" class="form-control" placeholder="Mot de passe" name="MotDePasse" required>
<button class="btn btn-lg btn-primary btn-block" type="submit">Connexion</button>
</form>
</body>
</html>
Dans le soucis de réaliser une espace membre, j'ai procédé à la création de 3 pages
1. Login.php (que l'utilisateur devra entrer ses identifiants de connexion)
2. Membre.php (La page privé que l'utilisateur doit voir une fois connecté)
3. Error.php (la page que l'utilisateur va voir ses les login entré sont incorrecte)
4. Disconnected.php (La page que l'utilisateur va voir une fois qu'il a cliqué sur le bouton "Déconnexion" présent sur le page Membre.php).
Mais voilà, dès que j'entre les bon identifiants de connexion, au lieu d’atterrir sur la page Membre.php, je suis plutôt renvoyé sur la page Disconnected.php
Sur la page Membre.php il y'a l'instruction ci-dessous dans l'entête qui m'empêche d'atteindre la page Membre.php combien même que le login est correct.
Le problème se trouve principalement au niveau de l'établissement de la SESSION, le script du login fonctionne correctement
//Page Membre.php
<?php
session_start();
if(!isset($_SESSION['NomUtilisateur']))
{
header("location:../disconnected.php"); // redirection (C'est cette bloc qui est toujours exécuté)
exit; // arrêt du script
}
//La session est ouverte on peut afficher la page
?>
=============================================================================
//Page Login.php
<?php
session_start();
//session_destroy();
if(!empty($_POST)){
$maVariable = $_POST;
//Connexion à la Base de données
require_once('database.php');
;
$usernameVerification = "SELECT * FROM agent WHERE NomUtilisateur = '".$maVariable['NomUtilisateur']."' ";
$requete = mysqli_query($mysqli, $usernameVerification);
if (mysqli_num_rows($requete) >=1){
while($row = mysqli_fetch_assoc($requete)){
//Décryptage des mots de passe issu de la base de données
if(password_verify($maVariable['MotDePasse'], $row['MotDePasse'])){
if($row['Status'] == 0){
session_destroy();
die("<br><br><br><br><br>
<center><img class='mb-4' src='img/logo.png'>
<br><br><br>
<h2>Votre compte est désactivé par l'administrateur(trice)</h2>
<a href='index.php'>Retour à la page de connexion</center></a>");
}
$_SESSION['utilisateur'] = '';
$_SESSION['roleuser']= $row['roleId'];
header('Location:app/index.php');
}else{
$error_login = "Mot de passe incorrecte";
}
}
} else {
$error_login = "Nom d'utilisateur incorrecte";
}
mysqli_close($mysqli);
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="noindex,nofollow" />
<link rel="icon" href="img/favicon.png">
<title>Mon Application</title>
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/signin.css" rel="stylesheet">
</head>
<body class="text-center">
<form class="form-signin" action="" method="post" name="connect_form">
<img class="mb-4" src="img/logo.png" alt="" >
<?php
if (isset($error_login)){
echo "<p style='color:red'>$error_login</p>";
} ?>
<label for="inputEmail" class="sr-only">Utilisateur</label>
<input type="text" id="NomUtilisateur" class="form-control" placeholder="Nom d'Utilisateur" name="NomUtilisateur" required autofocus>
<label for="inputPassword" class="sr-only">Mot de passe</label>
<input type="password" id="MotDePasse" class="form-control" placeholder="Mot de passe" name="MotDePasse" required>
<button class="btn btn-lg btn-primary btn-block" type="submit">Connexion</button>
</form>
</body>
</html>
A voir également:
- Comment établir une SESSION après un login
- On me demande mon login ✓ - Forum Webmastering
- Qu'est ce qu'un login ? - Forum Réseaux sociaux
- Mon pc me demande mon login é mon mo de passe - Forum Windows
- Portail mpsa login ✓ - Forum Réseau
- Impossible d'établir la connexion à nvidia ✓ - Forum Matériel & Système
En effet, j'ai juste ajouté le bout de code ci-dessous et mon soucis a été résolus:
Encore, merci!
<?php
session_start();
if(!empty($_POST)){
$maVariable = $_POST;
$_SESSION['NomUtilisateur'] = $_POST['NomUtilisateur'];