Controle d'accès avec www-authenticate:

Soyez le premier à donner votre avis sur cette source.

Snippet vu 15 400 fois - Téléchargée 16 fois

Contenu du snippet

Controler un accès avec le systeme d'auhtentification HTTP. Avec la possibilité de se déconnecter!

Source / Exemple :


<?php
class auth
{
	function auth(){}
	function is_auth()
	{
		$fi=fopen('.htpasswd','r');
		$list=fread($fi,filesize('.htpasswd'));
		fclose($fi);
		$t=explode(":",$list);
		if(!isset($_SESSION['connexion']))$_SESSION['connexion']=0;
		if($_SESSION['connexion']==2 && crypt($_SERVER['PHP_AUTH_PW'],"sd")!=$t[1])$_SESSION['connexion']=3;
		if($_SESSION['connexion']==2 || $_SERVER['PHP_AUTH_USER']!=$t[0] || crypt($_SERVER['PHP_AUTH_PW'],"sd")!=$t[1] )
		{header("WWW-Authenticate: Basic realm=\"\"");$this->out();}
		else
		{
			print("<a href=\"".basename($_SERVER['PHP_SELF'])."?end\">Deconnexion</a><br/>");
			$_SESSION['connexion']=1;
		}
	}
	function close()
	{
		$_SESSION['connexion']=2;
		$this->out();
	}
	function out(){die("Non autorisé");}
};
$user = new auth;
if(isset($_GET['end'])){$user->close();}
$user->is_auth();
?>

Conclusion :


protection d'un répertoire par authentification HTTP sans .htaccess. De plus, on peut se déconnecter. Il faut saisir un mauvais mot de passe pour ensuite pouvoir se reconnecter avec le bon mot de passe.
Ciao

A voir également

Ajouter un commentaire

Commentaires

Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
2
Bizar ton truc, je ne vois pas à quoi il sert
Messages postés
2
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
28 août 2007

sur une authentification en HTTP, tu ne peux pas te déconnecter. Ce code permet de le faire, et ca oblige l'utilisateur à faire une erreur pour réaccéder au répertoire.
Cette méthode d'accès évite la création d'un formulaire et de ce qui en découle ..
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
2
Pourquoi tu veux obligé les gens à faire une erreur puis de taper le bon mot de passe ?
- Cela ne rendra pas ton form plus sécurisé
- De plus tu n'a pas visé l'axécibilité ou ergonomie

Et pour les mêmes raisons tu devrais couper ta session de cette façon


// On appelle la session
session_start();
//destruction de toutes les variable de sessions
session_unset() ;
// On écrase le tableau de session
$_SESSION = array();
session_unregister('connexion');
// On détruit la session
session_destroy();
header ("Location: CHEMIN");
Messages postés
2
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
28 août 2007

salut,
j'ai fait une mise à jour. Le code js fait appel à une fonction perso, désolé ... J'ai rectifié. J'explique le principe du code dans l'histo de mise à jour.
Messages postés
1127
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
ta fonction : function auth(){} ne sert a rien, meme si c'est le constructeur en php4, tu n'est pas obligé de la mettre si elle ne sert a rien (sauf si on m'aurai caché des choses)
De plus, tu met une fonction javascript "goLink" qui n'existe nulle part, donc si je teste ton code, ca ne marchera pas.

Apres, j'ai un peu du mal à saisir l'utilité de ton code. Tu pourrai expliquer d'avantage stp ? merci :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.