Comment établir une SESSION après un login

Résolu/Fermé
douahmax - 9 nov. 2018 à 17:47
astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 - 9 nov. 2018 à 19:03
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>

1 réponse

astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 1 637
Modifié le 9 nov. 2018 à 18:33
slt

tu remplis ou ta variable $_SESSION['NomUtilisateur'] ?
Vu que tu la test if(!isset($_SESSION['NomUtilisateur'])) elle doit être quelque part !?
0
Bjour! Rien que votre réaction a été la réponse à mon soucis.
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'];
0
astuces72 Messages postés 7723 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 22 avril 2024 1 637
9 nov. 2018 à 19:03
:)
0