[session] Comment se deloguer d'une session http?

Répondre
KrioK
le 27/06/2004 à 17:07
KrioK
Bonjour tout le monde,

j'ai un probleme sur lequel j'ai passe la nuit donc si l'un d'entre vous est susceptible de m'aider je lui (/leur ) en serai tres reconnaissant.
Voila mon probleme:
je demande une authentification pour acceder a une page en utilisant
header('WWW-Authenticate: Basic realm="Authentification Membres"');


pour obtenir une fenetre pop up dans laquelle on se logue. Jusque la tout va bien ...Le probleme arrive au moment ou je veux me deloguer...j'aimerai qu'en cliquant sur un bouton, le serveur efface toutes les donnees sur la session. J'ai donc ecrit:
unset($GLOBALS["HTTP_SERVER_VARS"]); 
unset($GLOBALS["HTTP_POST_VARS"]);
unset($GLOBALS["HTTP_SESSION_VARS"]);
unset($GLOBALS["PHP_AUTH_USER"]);


Quand je lui demande d'afficher le login
echo "nom $HTTP_SERVER_VARS[PHP_AUTH_USER]<br>";


avant et apres mes instructions d'effacement general tout semble bien marcher (il me donne le login avant, et rien apres),
le probleme est que quand je rappuie sur le bouton, il me donne de nouveau le login alors que je pensais qu'il etait efface....

On m'a dit que ca pourrait venir du navigateur mais je ne vois pas trop comment faire.
Si quelqun avait un début (voire la totalité ) d'une explication, ce serait tres sympa.

Merci d'avance

Tschusss
KrioK
KrioK
le 27/06/2004 à 17:43
KrioK
Salut

Merci de ta réponse mais en fait je n'utilise les sessions PHP donc il n'y a pas de session_start() ni
de session_destroy();

Ici j'essaie d'utiliser les sessions http dans lesquels les nom et mot de passe sont enregistres dans $HTTP_SERVER_VARS["PHP_AUTH_USER"]
et $HTTP_SERVER_VARS["PHP_AUTH_PW"]

Par contre j'ai deja utilise des sessions PHP et c'est vrai que ca pose moins de probleme...

Merci d'avance pour vos reponses

Tschüsssssssss
KrioK
LA GLOBULE
le 27/06/2004 à 18:24
LA GLOBULE
Oui en gros, c'est comme un htaccess fait en php.

Je n'ai jamais utilisé cette technique, mais a priori, si c'est comme un htaccess, le navigateur se souvient du login / pass.
C'est ce qui fait que, quand tu sors de la zone protégée et que tu y retournes 1 mn, apres, ben il te demande pas le login / pass.

Maintenant, n'ayant pas testé, je ne sais pas trop...
KrioK
le 02/07/2004 à 01:48
KrioK
Bonjour tout le monde,

je n'ai toujours pas résolu mon problème de session HTTP car il se trouve que le navigateur garde en cache les données qu'on lui passe et malgré les instructions que PHP fournit pour gérer les caches, je n'ai jamais réussi à les vider.
Du coup j'ai fait ma propre fenêtre qui lance une session PHP, nettement plus simple à gérer.
Donc si certains ont rencontré le même problème que moi, ils peuvent essayer ce code qui marche bien. Comme je ne suis pas un grand programmeur il y avait certainement plus subtil, mais en tout cas ça fonctionne:
1_lien à partir duquel vous appelez la popup
<a class="cote " href='javascript: ouvrirPopUp("auth.php", "accueuil", 300, 200);' name="authentificationMembre" >

2_Le fichier .js pour ouvir la fenêtre: en gros on ouvre une fenetre dont on fixe les dimensions et on la centre
var ns4 = (document.layers)? true:false;    //NS 4 
var ie4 = (document.all)? true:false; //IE 4
var dom = (document.getElementById)? true:false; //DOM

function ouvrirPopUp(nomFichierCible,nomFenetre,largeur,hauteur)
{

var xMax, yMax, xOffset, yOffset;;

if (ie4 || dom)
{
xMax = screen.width;
yMax = screen.height;
}
else if (ns4)
{
xMax = window.outerWidth;
yMax = window.outerHeight;
}
else
{
xMax = 800;
yMax = 600;
}
xOffset = (xMax - largeur)/2;
yOffset = (yMax - hauteur)/2;
window.open(nomFichierCible,nomFenetre,'width='+largeur
+',height='+hauteur+',screenX='+xOffset+',screenY='+yOffset+',top='+yOffset
+',left='+xOffset+',scrollbars=no,resizable=no');
}

3_Le formulaire qui s'ouve dans la popup:On y demande un nom et un mot de passe. Comme je voulais que la popup se ferme quand dans les sessions HTTP au bout de 3 tentatives, il y a un compteur. L'entête en JavaScript permet de vérifier que l'utilisateur a bien rempli les 2 champs avant d'envoyer le formulaire.
(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1517]ce lien[/lien])

4_le fichier php qui traite le formulaire:
(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1518]ce lien[/lien])


Voila, comme ca vous avez une fenetre popup qui s'ouvre quand vous cliquez sur le lien et qui vous laisse 3 tentatives de connexion en vous indiquant le numéro de votre tentative actuelle, puis se ferme à la 3e.

J'espère que ça pourra en aider certains.

Tschüssssssssss

KrioK
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours