Page 1 sur 1

Effacement cookies il doit me manquer un truc

Posté : 09 avr. 2021, 15:51
par Figuedi
Bonjour,

J'ai viré mes sessions start et mes variables sessions car si je ne bouge pas sur le site toute les 30minutes ou a peu près il me faut me reconnecter
je suis donc passé aux cookies
je les créées dans le login.php comme suit :
if (isset($_POST['mail'],$_POST['mdp'])){   
	$query = 'SELECT * FROM users where email = "'.$mail.'" ;'; 
	try {
		$bdd_select = $pdo->prepare($query);
		$bdd_select->execute();
		$resultat=$bdd_select->fetchObject('user');
	} catch (PDOException $e){ echo 'Erreur SQL : '. $e->getMessage().'<br/>'; die(); }

	$username = $resultat->username;
	$pwd=$resultat->password;
	$privilege=$resultat->privilege;
	setcookie(username, $username, time() + 365*24*3600, null, null, false, true);
	setcookie(privilege, $privilege, time() + 365*24*3600, null, null, false, true);

	if ($mdp==$pwd) 
		{
		if ($privilege=='ADM') $droit=10;
			else if ($privilege=='VIP') $droit=50;
			else if ($privilege=='USR') $droit=100;
			else $droit=1000;
			setcookie(droit, $droit, time() + 365*24*3600, null, null, false, true);
			header("Location: index.php");
		}
	else echo '<div align="right"><br/><br/><br/><br/><br/><br/>Votre email ou votre mot de passe n\'est pas bon</div>';
et je les exploites comme ceci :index.php
<?php
//error_reporting(E_ALL);
//ini_set("display_errors", 1);
//require('../Projet/droit.php'); // definit les droits pour la page
if (!isset($_COOKIE['username'])){header("Location: login.php");}
if ($_COOKIE['droit'] >100) header("Location: login.php");
$tab=$_POST["tab"];//variable pour afficher la bonne table

echo 'mon nom est : '.$_COOKIE["username"].', mon privilège est : '.$_COOKIE["privilege"].' et mon droit de passage le suivant : '.$_COOKIE["droit"];
et je les supprime logout.php
unset($_COOKIE['username']);
unset($_COOKIE['privilege']);
unset($_COOKIE['droit']);
setcookie('username', '', time() - 4200, '/');
setcookie('privilege', '', time() - 4200, '/');
setcookie('droit', '', time() - 4200, '/');
echo 'mon nom est : '.$_COOKIE["username"].', mon privilège est : '.$_COOKIE["privilege"].' et mon droit de passage le suivant : '.$_COOKIE["droit"];
après le logout il m'affiche bien la phrase comme qui les cookies sont vides
mon nom est : , mon privilège est : et mon droit de passage le suivant :
si je clique sur le login il me laisse me loguer et cela fonctionne mais voila j'ai eu le malheur de me poser la question est ce qu'ils sont vraiment supprimés ?
Donc apres le logout, au lieu de repasser par le login je vais directement sur index
et là il m'affiche la valeur des cookies malgré mon logout
mon nom est : adm, mon privilège est : ADM et mon droit de passage le suivant : 10

je pense donc que les cookies doivent être conservées quelque part non ?

Re: Effacement cookies il doit me manquer un truc

Posté : 09 avr. 2021, 15:57
par Figuedi
en fait il faut également que je fasse un Ctrl Shift Suppr sur Chrome pour effacer les cookies et là en effet cela fonctionne, mais donc je ne les efface pas vraiment avec le code php du logout ?

Re: Effacement cookies il doit me manquer un truc

Posté : 09 avr. 2021, 16:00
par Figuedi
Et si je ne les efface pas via le logout mais que je les supprime dans chrome, il me faut bien repasser par le login

En conclusion les cookies ne sont pas la bonne solution car ne peuvent pas être effacées sans action de l'utilisateur donc sur un ordi public tu es marron.
Et les variables de SESSION ne perdurent pas le temps

Re: Effacement cookies il doit me manquer un truc

Posté : 09 avr. 2021, 16:45
par Figuedi
setcookie ('username', NULL, -1); Et ça marche mille excuses