Page 1 sur 1
Problème suppression session et cookie
Posté : 28 oct. 2016, 16:16
par kevin254kl
Bonjour à tous, pourriez vous m'aider?
je fais une méthode logout, seul problème elle ne fonctionne pas.
Code : Tout sélectionner
$(document).ready(function(){
$('#logout').click(function () {
$.ajax({
url : 'Controller/logout.php',
type : 'GET', // Le type de la requête HTTP, ici devenu POST
dataType : 'html',
success : function(code_html, statut){ // code_html contient le HTML renvoyé
}
});
});
});
ma fonction jquery est bien appellé.
ma fonction logout:
Code : Tout sélectionner
<?php
include('../Connexion/Connexion.php');
session_start();
session_destroy();
setcookie("login", "", time() - 3600);
setcookie("mdp", "", time() - 3600);
setcookie("id_personne", "", time() - 3600);
?> quand je regarde dans l'inspecteur de google les cookies sont toujours présent.
http://s10.postimg.org/ayt4opzzt/cookie.png
pourtant je respecte les noms, je suis sous wamp.
Re: Problème suppression session et cookie
Posté : 28 oct. 2016, 23:00
par moogli
salut,
les cookies sont modifiés au chargement de la page.
rafraîchie la page tu ne devrait plus les voir.
ajout un window.location.href pour retourner sur l'index lorsque la déconnexion c'et bien passée.
@+
Re: Problème suppression session et cookie
Posté : 02 nov. 2016, 09:33
par kevin254kl
Merci cela ne fonctionne pas je pense j'ai un problème dans la gestion des session ou cookie,
Ma page de connexion ou index
Code : Tout sélectionner
<?php
session_start();
include('Connexion/connexion.php');
$_SESSION['ID_PERSONNE'] = "";
$_SESSION['ERREUR'] = "";
if (!empty($_COOKIE['id_personne'])) { // Test si les champs sont plein
$id_personne = $_COOKIE['id_personne'];
setcookie('id_personne', $id_personne, time() + 365*24*3600);
$_SESSION['id_personne'] = $id_personne;
header('Location: accueil.php'); // redirige vers l'accueil
}
if ((!empty($_POST['login']) && !empty($_POST['mdp']))) { // Test si les champs sont plein
$login = $_POST['login']; // Remplace les simple quote par des double quote pour éviter les problemes d'injection sql
$mdp = sha1($_POST['mdp']);
// Vérification des identifiants
$req = $bdd->prepare('SELECT id_personne FROM personne WHERE login = :login AND mdp_personne = :mdp');
$req->execute(array(
'login' => $login,
'mdp' => $mdp));
$resultat = $req->fetch(PDO::FETCH_ASSOC);
if (!$resultat)
{
$_SESSION['ERREUR'] = "Login et/ou mot de passe incorrect"; // Message d'erreur
}
else
{
setcookie('id_personne', $resultat['id_personne'], time() + 365*24*3600);
$_SESSION['id_personne'] = $resultat['id_personne'];
header('Location: accueil.php'); // redirige vers l'accueil
}
}
?>
ma page d'accueil ou je gère l'inventaire avec un tableau
Code : Tout sélectionner
<?php
session_start();
include_once("Connexion/Connexion.php");
if(!isset($_SESSION['id_personne']) || empty($_SESSION['id_personne']))
{
header('Location: index.php');
}
$req = $bdd->prepare('SELECT role FROM personne WHERE id_personne = :id_personne');
$req->execute(array(
'id_personne' => $_SESSION['id_personne']));
$resultat = $req->fetch();
$role = $resultat['role'];
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Inventaire</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" >
<link rel="stylesheet" href="css/general.css" >
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
</head>
<script src="js/jquery.min.js"></script>
<script src="js/jquery.validate.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="js/tableau.js"></script>
<script src="js/search.js"></script>
<script src="js/add_user.js"></script>
<script src="js/add.js"></script>
<script src="js/logout.js"></script>
<body>
<!-- header -->
<div id="error">
</div>
<header class="header row">
<img src="img/header.png" class="col-md-11 " height="100">
<img src="img/logout.png" id="logout" style="cursor:pointer;" class="col-md-1" height="50">
</header>
<div class="body ">
<?php
if($role == 'admin')
{
?>
<section class="container col-md-2 col-md-offset-1">
<h1 data-toggle="modal" data-target="#ajout">Ajout</h1></button>
<?php include('formulaire/add.html'); ?>
</section>
<?php
}
?>
<section class="container col-md-2 col-md-offset-2">
<h1 data-toggle="modal" data-target="#inscription">Inscription</h1>
<?php include('formulaire/add_user.html'); ?>
</section>
<section class="container col-md-2 col-md-offset-2">
<h1>Contitech</h1>
</section>
</div>
<section class=" row col-md-12 col-md-offset-5 search">
<?php include('formulaire/search.php'); ?>
</section>
<aside class=" row col-md-12" style="margin-top:20 px;">
<?php
include('Controller/tableau.php');
?>
</aside>
<br />
</body>
</html>
ma page de déconnexion qui est bien appelé :
Code : Tout sélectionner
<?php
include('../Connexion/Connexion.php');
session_start();
session_destroy();
setcookie("id_personne", "", time() - 3600);
echo "<script>window.location='../index.php'</script>";
?>
Re: Problème suppression session et cookie
Posté : 02 nov. 2016, 11:19
par vincent.c
Bonjour,
Dans ta page logout, tu devrais mettre ton include après l'ouverture de ta session. De plus, pour savoir si ta session est bien démarrer, tu peux vérifier sa valeur de retour.
http://php.net/manual/fr/function.session-start.php
<?php
session_start();
session_destroy();
setcookie("id_personne", "", time() - 3600);
include('../Connexion/Connexion.php');
echo "<script>window.location='../index.php'</script>";
?>
Bonne continuation.
Re: Problème suppression session et cookie
Posté : 02 nov. 2016, 13:25
par kevin254kl
Merci de ta réponse , ma session est bien initialisé et me renvoi 1, le script de redirection fonctionne mais le cookie n'ai pas supprimé car je suis redirigé vers ma page d'accueil et non la page de login.
Re: Problème suppression session et cookie
Posté : 02 nov. 2016, 14:45
par vincent.c
Pour vérifier tes cookies sur Chrome :
- - clic droit sur ta page
- puis inspecter l'élément
- sélectionne l'onglet application (À droite de "elements", "console", "sources" ...)
- dans le menu à gauche, déroule les cookies
- sélectionne l'adresse de ton site
En ce qui concerne la redirection, si tu souhaite rediriger après déconnexion vers la page de connexion alors utilise :
<?php
session_start();
session_destroy();
setcookie("id_personne", "", 1);
header('Location: ../Connexion/Connexion.php');
?>
Re: Problème suppression session et cookie
Posté : 02 nov. 2016, 15:17
par kevin254kl
c'est bon cela fonctionne,
Code : Tout sélectionner
<?php
session_start();
session_destroy();
unset($_COOKIE["id_personne"]);
setcookie("id_personne","",time()-1);
header('Location: ../index.php');
?>
Je pense que le problème venait que j'essayer de le faire en jquery par ajax.
Re: Problème suppression session et cookie
Posté : 02 nov. 2016, 15:54
par vincent.c
Essaye de supprimé à la main tous les cookies, dans google chrome (sélectionne les puis touche retour arrière).
Recommence la connexion, vérifie que tu à bien un unique cookie "id_personne" et non deux comme sur ton screenshot.
Vérifie dans chrome que le "path" de ton cookie est bien "/" (dans le tableaux des cookies tu as une colonne path).
EDIT: Résolu OK
