cs_subzero
Messages postés71Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention24 février 2012 27 juil. 2005 à 20:04
A noter que cette solution fonctionne également très bien lorsque PHP est un module d'Apache...
a+
cs_subzero
Messages postés71Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention24 février 2012 27 juil. 2005 à 19:59
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
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 7 janv. 2005 à 01:51
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)
mortiis
Messages postés120Date d'inscriptionmardi 11 février 2003StatutMembreDernière intervention 9 mars 2008 6 janv. 2005 à 18:48
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.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 6 janv. 2005 à 16:24
Le probleme avec cette technique c'est que...
1 sauf si on le met dans un fichier à part appelé par un include on ne peut protéger qu'une page...
2 à moins de rajouter des elseif à la volée on ne peut mettre qu'un user/pass
3 il faut veiller à ce que la page en question ne soit pas downloadable un clic droit "enregistrer sous" sur un lien fait au chaud à la maison... et c'est foutu le login et le pass sont dans le fichier... il faut alors la mettre dans un fichier à part avec un htaccess denie from all et l'appeler par un include (par ex... ça doit pas etre la seule technique)... .. .
Conclusion il est plus simple et plus pratique (multitache et multiuser) d'utiliser un htaccess sauf si on veux protéger un include... je m'explique (au cas où) par exemple là je suis sur l'integration d'une sorte de mode debug dans un petit site l'appel du mode debug se faisant par inclusion si définit... à ce moment là la premiere chose qui apparait c'est notre demande d'authentification... si elle échoue une page apparait expliquant que le site est en maintenance pour x temps et si l'authentification est ok le site se charge avec la fonction de debug inclue... .. . ;o)
Ce code est donc à utiliser dans certaines condition et avec certaines précautions sinon mieux vaux un htaccess (avec un générateur pour l'administrer par exemple dans le cas d'une admin ou d'un espace membre demandant pusieurs user/pass)... mais sinon il est nikel... .. .
Ce que je trouve top par contre c'est que contrairement aux autres sources du même type qui ont été postée toi tu explique le fonctionnement et la logique de ce code ce qui est appréciable... et instructif... .. . ;o)
^_^
@ tchaOo°
DaMonkey
Messages postés10Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention28 octobre 2004 19 oct. 2004 à 08:19
oui mais ce systeme ne permet plus a un autre utilisateur de se connecter a partir de ce pc sans avoir a fermer le navigateur... c'est ca l'ennui.
mortiis
Messages postés120Date d'inscriptionmardi 11 février 2003StatutMembreDernière intervention 9 mars 2008 18 oct. 2004 à 19:53
Ah dacord pour tux je ne connaissait pas, car je ne travaille pas sous linux, je travaille seulement sous windows.
Peut-être qu'un jour j'essaierai linux.
mortiis
Messages postés120Date d'inscriptionmardi 11 février 2003StatutMembreDernière intervention 9 mars 2008 18 oct. 2004 à 19:50
En utilisant seulement ce système il est impossible de se déloguer à moin que le client ferme le navigateur
Puisque même si on efface les variables $_SERVER['PHP_AUTH_USER'] et $_SERVER['PHP_AUTH_PW']
Bien le navigateur les garde en memoire.
Par contre pour gérer un délog, tu peut ajouter les session à sa.
Au début du code tu débute une session
session_start();
ensuite tu vérifi si la variable logge existe.
if (isset($_SESSION['logge']))
{
ici le code d'identification
et si l'utilisateur entre un nom d'utilisateur et un
mot
de passe valide tu fait
$_SESSION['logge'] = $_SERVER['PHP_AUTH_USER']
}
Si l'utilisateur change de page ou si l'utilisateur clique sur le bouton "se déconnecter" alors tu fait une
session_start();
session_destroy();
Je crois que si tu fait sa alors sa devrait fonctionné.
Sa serait à tester, j'ai pas vraiment tester.
neox_974
Messages postés8Date d'inscriptionsamedi 11 septembre 2004StatutMembreDernière intervention20 octobre 2004 18 oct. 2004 à 19:18
Ben Tux c'est la mascotte de Linux !!!
DaMonkey
Messages postés10Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention28 octobre 2004 18 oct. 2004 à 14:26
et comment on fait pour se délogguer ? Ca a toujours été ma question depuis longteeeemps lorsqu'on utilise ce système de login... j'ai tout essayé, tant qu'on ne ferme pas le navigateur, on reste loggé koi qu'il en soit.
Merci d'avance pour tyoute réponse...
PS : $_SERVER['PHP_AUTH_USER'] = ""; NE FONCTIONNE PAS ;)
mortiis
Messages postés120Date d'inscriptionmardi 11 février 2003StatutMembreDernière intervention 9 mars 2008 14 oct. 2004 à 16:13
tux c'est qui sa ???
mathieumg
Messages postés558Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention18 février 2006 14 oct. 2004 à 13:51
Cela semble très intéressant mais je n'ai pas encore testé ;p
Mathieu M-G
mathieumg@qc-net.com
neox_974
Messages postés8Date d'inscriptionsamedi 11 septembre 2004StatutMembreDernière intervention20 octobre 2004 14 oct. 2004 à 12:48
tu n'aurais pas été inspiré d'un certain magazine portant l'éfigie d'un certain tux !! :-)
en tout cas bravo. ça me fera gagner du temps pour l'espace membre de mon site. 10/10
27 juil. 2005 à 20:04
a+
27 juil. 2005 à 19:59
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+ ☺
7 janv. 2005 à 01:51
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)
6 janv. 2005 à 18:48
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.
6 janv. 2005 à 16:24
1 sauf si on le met dans un fichier à part appelé par un include on ne peut protéger qu'une page...
2 à moins de rajouter des elseif à la volée on ne peut mettre qu'un user/pass
3 il faut veiller à ce que la page en question ne soit pas downloadable un clic droit "enregistrer sous" sur un lien fait au chaud à la maison... et c'est foutu le login et le pass sont dans le fichier... il faut alors la mettre dans un fichier à part avec un htaccess denie from all et l'appeler par un include (par ex... ça doit pas etre la seule technique)... .. .
Conclusion il est plus simple et plus pratique (multitache et multiuser) d'utiliser un htaccess sauf si on veux protéger un include... je m'explique (au cas où) par exemple là je suis sur l'integration d'une sorte de mode debug dans un petit site l'appel du mode debug se faisant par inclusion si définit... à ce moment là la premiere chose qui apparait c'est notre demande d'authentification... si elle échoue une page apparait expliquant que le site est en maintenance pour x temps et si l'authentification est ok le site se charge avec la fonction de debug inclue... .. . ;o)
Ce code est donc à utiliser dans certaines condition et avec certaines précautions sinon mieux vaux un htaccess (avec un générateur pour l'administrer par exemple dans le cas d'une admin ou d'un espace membre demandant pusieurs user/pass)... mais sinon il est nikel... .. .
Ce que je trouve top par contre c'est que contrairement aux autres sources du même type qui ont été postée toi tu explique le fonctionnement et la logique de ce code ce qui est appréciable... et instructif... .. . ;o)
^_^
@ tchaOo°
19 oct. 2004 à 08:19
18 oct. 2004 à 19:53
Peut-être qu'un jour j'essaierai linux.
18 oct. 2004 à 19:50
Puisque même si on efface les variables $_SERVER['PHP_AUTH_USER'] et $_SERVER['PHP_AUTH_PW']
Bien le navigateur les garde en memoire.
Par contre pour gérer un délog, tu peut ajouter les session à sa.
Au début du code tu débute une session
session_start();
ensuite tu vérifi si la variable logge existe.
if (isset($_SESSION['logge']))
{
ici le code d'identification
et si l'utilisateur entre un nom d'utilisateur et un
mot
de passe valide tu fait
$_SESSION['logge'] = $_SERVER['PHP_AUTH_USER']
}
Si l'utilisateur change de page ou si l'utilisateur clique sur le bouton "se déconnecter" alors tu fait une
session_start();
session_destroy();
Je crois que si tu fait sa alors sa devrait fonctionné.
Sa serait à tester, j'ai pas vraiment tester.
18 oct. 2004 à 19:18
18 oct. 2004 à 14:26
Merci d'avance pour tyoute réponse...
PS : $_SERVER['PHP_AUTH_USER'] = ""; NE FONCTIONNE PAS ;)
14 oct. 2004 à 16:13
14 oct. 2004 à 13:51
Mathieu M-G
mathieumg@qc-net.com
14 oct. 2004 à 12:48
en tout cas bravo. ça me fera gagner du temps pour l'espace membre de mon site. 10/10
14 oct. 2004 à 02:17