Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/08/2011, 23h36   #1
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Par défaut remettre à 0 un cookie

Bonsoir,

j'ai un système de compte avec un cookie (et de session, ceinture et bretelles ) ; donc si on fait "déconnecter", je voudrais annuler le cookie, mais ce n'est pas le cas, vu qu'on reste connecté.
Sur "se déconnecter", je fais :
Code :
1
2
3
4
5
6
 
<?php 
session_start();
setcookie("connecte","",time()-1000,'/','.www.---);
$_SESSION["connecte"]=0;
?>
et là où je teste la connexion :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<?php
if (isset($_COOKIE["connecte"]))
    if ($_COOKIE["connecte"]=='1') $exit=0; 
    else $exit=1;	
 
else { if ($_SESSION['connecte']==2) $exit=0; else $exit=2;}
 
		   if ($exit==0) {
?>
		  ---
<?php
			}
			else echo 'Vous n\'&ecirc;tes pas connect&eacute; !<br>';
?>
qu'est-ce qui ne va pas ?
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 23h49   #2
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 772
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 772
Points : 2 329
Points : 2 329
Bonsoir,

Code :
1
2
3
4
5
 
<?php 
session_start();
setcookie("connecte");
?>
Code :
1
2
3
4
5
6
7
8
9
10
 
<?php
if (isset($_COOKIE["connecte"])) {
 
?>
		  ---
<?php
}
			else echo 'Vous n\'&ecirc;tes pas connect&eacute; !<br>';
?>
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 23h54   #3
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Même pas besoin d'essayer : ce n'est pas la syntaxe de setcookie...
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 00h21   #4
Membre habitué
 
Homme Lucas GAUTHERON
Lycéen
Inscription : décembre 2008
Messages : 106
Détails du profil
Informations personnelles :
Nom : Homme Lucas GAUTHERON

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : décembre 2008
Messages : 106
Points : 145
Points : 145
et utilise session_destroy(), c'est plus sûr... ...et plus simple. tu peux également effacer l'identifiant de session, comme celà est écrit dans la doc.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
function logout()
{
    if (ini_get("session.use_cookies"))
    {
        $params = session_get_cookie_params();
        setcookie(session_name(), '', time() - 42000,
            $params["path"], $params["domain"],
            $params["secure"], $params["httponly"]
        );
    }
    session_destroy();
}
lucas74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 02h09   #5
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 329
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 329
Points : 1 657
Points : 1 657
Citation:
Envoyé par laurentSc Voir le message
Même pas besoin d'essayer : ce n'est pas la syntaxe de setcookie...
Pour supprimer un cookie, il suffit juste de faire appel à la fonction setcookie() en renseignant le 1er paramètre comme te l'a montré FirePrawn.

Tous les autres paramètres sont facultatif. Quand il y a des crochet qui encadre les variables en paramètre sur la doc PHP (le lien que tu as donné), cela veut dire qu'il est factultatif. Et que si on ne le met pas, il prendra automatiquement la valeur qui est indiqué apres le "=").

Comme l'explique la doc PHP :
Citation:
Pour effacer un cookie sur le client, vous devez toujours vous assurer que sa date d'expiration est passée, pour déclencher le mécanisme du navigateur client.
Le 3eme paramètre obtiendra la valeur 0 si celui-ci n'est pas renseigné.
__________________
Zend Certified Engineer PHP 5.3

« Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 11h36   #6
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Citation:
Envoyé par laurentSc Voir le message
Bonsoir,

j'ai un système de compte avec un cookie (et de session, ceinture et bretelles ) ; donc si on fait "déconnecter", je voudrais annuler le cookie, mais ce n'est pas le cas, vu qu'on reste connecté.
Sur "se déconnecter", je fais :
Code :
1
2
3
4
5
6
 
<?php 
session_start();
setcookie("connecte","",time()-1000,'/','.www.---);
$_SESSION["connecte"]=0;
?>
Salut,

en réalité tu dupliques le cookie, session_start crée déjà un cookie chez le client, tu peux simplement travailler avec les variables de session.
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 18h50   #7
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Désolé de ne pas t'avoir crû FirePrawn et OK Seb33300 et Thes32, j'ai simplifié comme tu l'as conseillé : plus de cookie.
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 19h06   #8
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 772
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 772
Points : 2 329
Points : 2 329
Citation:
Envoyé par laurentSc Voir le message
Désolé de ne pas t'avoir crû FirePrawn et OK Seb33300 et Thes32, j'ai simplifié comme tu l'as conseillé : plus de cookie.
Ya pas d'mal
L'essentiel c'est qu'il résolve son problème
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h03.


 
 
 
 
Partenaires

Hébergement Web