|
|
|
|
Bonjour,
J'ai lu dans plusieurs forum qu'il était possible de créer un bouton "Déconnexion" qui pemettrait de déconnecter un utilisteur s'étant connecté via un .htaccess, et ce via un "header"...
Bref, en gros est-ce que quelqu'un pourrai m'expliquer la marche à suivre pour établir un processus de déconnexion lors d'une connexion par htaccess ?
Bonsoir,
<?php
//// deconnexion d'une authentification faite par .htaccess
// realm doit être le même que celui de .htaccess
//realm c'est AuthName "......." du htaccess
header('WWW-Authenticate: Basic realm="private"');
header('HTTP/1.0 401 Unauthorized');
echo 'Texte affiche en cas d\'annulation';
exit();
?>
|
Lorsque je fais un lien vers mon fichier logout.php contenant ton code, voici ce que j'ai :
|
Salut,
|
Hum, hum…
header('WWW-Authenticate: Basic realm="private"'); header('HTTP/1.0 401 Unauthorized'); et dans la FAQ on ne t'a pas dit que c'est réservé aux sessions !!! Lorsque vous utilisez une fonction PHP qui manipule les en-têtes HTTP comme par exemple:
* header()
* setcookie()
* session_start()
et on t'explique : * J'utilise echo, ou print au début de mon script. Idem, si j'ai un espace dans mon script qui n'est pas compris dans mes balises php, il sera considéré comme faisant partie de la source de la page à envoyer, et les en-têtes le précéderont. Ce qui peut provoquer une erreur du genre de celles dont on cherche la solution pendant plusieurs jours :-) * Le serveur envoie ces données, et les fait précéder par défaut d'en-têtes qui signifient que c'est une page html. * Si après celà dans mon script j'utilise une fonction qui touche aux en-têtes, elle ne pourra plus le faire car les en-têtes ont déjà été envoyées. J'obtiens donc une erreur du genre "headers already sent". on reprend : - un espace ; - le serveur commence à balancer les infos et donc les headers HTML ; - tu veux modifier les headers alors qu'ils sont déjà partis ; - le serveur t'affiche une erreur… donc il faut que tu trouves ce qui est envoyé avant le début de ton script. [ Mathieu ] Il y a sûrement des pandas pour ne dépendre de rien |
à priori, depuis la page sécurisée tu fais un lien vers logout.php,
<?php
header('WWW-Authenticate: Basic realm="private"');
header('HTTP/1.0 401 Unauthorized');
?>
le exit(); ne sert à rien puisque le script se termine tout seul et ça ne sert à rien d'envoyer un message puisque la boite de dialogue de connexion doit se ré-afficher toute seule. à toi de voir. le script tu dois pouvoir le mettre n'importe où, il suffit d'adapter l'url du lien de déconnexion, là aussi il faut tester. [ Mathieu ] Il y a sûrement des pandas pour ne dépendre de rien |
Voilà celui que j'ai testé,il fonctionnne sous EasyPhp
<?php
//// deconnexion d'une authentification faite par .htaccess
// realm doit être le même que celui de .htaccess
//realm c'est AuthName "......."
header('WWW-Authenticate: Basic realm="Acces protege"');
header('HTTP/1.0 401 Unauthorized');
echo 'Texte affiche en cas d\'annulation';
exit();
?>
C'est vrai que le exit(); ne sert à rien |
Sinon crée un lien vers "http://logout:logout@ton-site.com"
|