FENETRE LOGIN HTTP AVEC HEADER

Signaler
Messages postés
249
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
28 août 2009
-
Messages postés
71
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
24 février 2012
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26757-fenetre-login-http-avec-header

Messages postés
71
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
24 février 2012

A noter que cette solution fonctionne également très bien lorsque PHP est un module d'Apache...
a+
Messages postés
71
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
24 février 2012

Salut! Les deux variables sont toujours vides lorsque PHP tourne en mode CGI (exemple OVH). Pour solutionner le problème, il faut mémoriser la saisie dans la variable $_SERVER['REMOTE_USER'] et avertir le serveur en ajoutant un fichier .htacess dans le dossier :


RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]


Ensuite, pour utiliser les variables :

<?php
//============================================================
// PARAMETRES DE CONFIGURATION
//$cfg['adm_login'] 'admin'; // Le login d'administrateur
$cfg['adm_pass'] = 'pass'; // Le mot de passe d'administrateur


//============================================================
// FORMULAIRE ET TEST D'AUTHENTIFICATION
//============================================================
if((!isset($_SERVER['PHP_AUTH_USER']) ||
!isset($_SERVER['PHP_AUTH_PW'])) &&
preg_match('/Basic\s+(.*)$/i',$_SERVER['REMOTE_USER'],$matches)){
list($name,$pass)=explode(':',base64_decode($matches[1]));
$_SERVER['PHP_AUTH_USER']=strip_tags($name);
$_SERVER['PHP_AUTH_PW']=strip_tags($pass);
}
if($_SERVER['PHP_AUTH_USER']!=$cfg['adm_login'] ||
$_SERVER['PHP_AUTH_PW']!=$cfg['adm_pass']){
header('WWW-Authenticate: Basic realm="Connexion..."');
header('HTTP/1.0 401 Unauthorized');
die('Erreur : Identification incorrecte !');
}


//============================================================
// AUTHENTIFICATION ACCEPTEE
//============================================================
echo 'Authentification acceptée.';


//============================================================
?>

http://yetanothercommunitysystem.com/yacs/articles/view.php/321

a+ ☺
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

biensur qu'il peut etre multiuser... mais avec plus que 2 3 modifs c'est comme ça que je l'entendais... je me suis mal exprimé... désolé... .. .
mais je suis tout à fait d'accord qu' avec un peu d'imagination... tu peux imaginer un stockage des log/pass sur base de données ou sur texte ou même dat... tu peux y integrer les sessions, même les cookies... etc... .. . ;o)

Mais comme tu l'as dis toi même je pense que les deux on leur interet dans des conditions differentes... le .htaccess protegera tout un dossier là où ce code protegera quelques pages... mais dans le cas d'un dossier à proteger le htaccess reste plus pratique pour un efficacitée similaire (générateur de htaccess multiuser sans sql... http://www.toulouse-renaissance.net/c_outils/htaccess_cod.zip) ça évite quand même des includes... mais là ou ce script peut se reveler plus interessant c'est que tu dois pouvoir créer plusieurs niveau d'accès alors que le htaccess c'est clair c'est passe/passe pas... .. . :oD

Je n'ais jamais dit que ce code était ininteressant, au contraire... mais je maintiens qu'il faut faire gaffe au fait que le code contient les logs et pass en dure non crypté... donc la meilleurs solutions c'est quand même de mettre le code à part dans un fichier protéger par htaccess et comme tu le disais l'appeler en include... .. .
qui plus est ça évitera de retaper le code à chaque fois (:oS) et ça centralisera le log et le pass en un exemplaire au même endroit (en cas de mise à jour)... .. .

Enfin je pense que c'est la meilleur solution... je sais pas ce que t'en pense... .. .

Voili voilou... .. .

@ tchaOo°

ps : Après pour le "enregistré sous" je pensais que ça marchais mais à priori c'est bon... .. . :o)
Messages postés
120
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
9 mars 2008

Je ne suis pas daccord avec toi.
l'utilisation de ce code peut se faire conjointement avec une base de données mysql qui contient tous les user et password possible, donc est multiuser aussi.

On peut y ajouter les sessions.
Un fichier de session qui vérifi si l'utilisateur est loggé, et si l'utilisateur n'est pas loggé, il est alors redirigé vers la page de loggin.
Ce fichier est inclus au début de chaque pages avec un simple include("securite.php");

Moi je préfère cette technique aux htaccess, parcequ'elle offre toutes les mêmes choses.
De plus cette technique est plus flexible.

Merci pour ton commentaire.
Afficher les 14 commentaires