Problème autentification HTTP

Zebra1928 Messages postés 163 Date d'inscription jeudi 15 juillet 2004 Statut Membre Dernière intervention 27 janvier 2016 - 30 juil. 2008 à 13:33
Zebra1928 Messages postés 163 Date d'inscription jeudi 15 juillet 2004 Statut Membre Dernière intervention 27 janvier 2016 - 30 juil. 2008 à 16:09
Bonjour à tous,

J'ai deja posé ma question dans ce forum: http://www.phpcs.com/infomsg_PROBLEME-AUTHENTICATION_1175676.aspx   mais je n'ai eu aucune réponse

J'ai pu réalisé un p'tit script suivant:

// fixer les valeurs du login et mot de passe ayant droit d'accès
$table_acces array ("login"> "motdepasse");

$valide_users = array_keys($table_acces);

// récupération du login et mot de passe saisis par l'utilisateur

$user = $_SERVER['PHP_AUTH_USER'];

$pass = $_SERVER['PHP_AUTH_PW'];

//comparaison du login et mot de passe saisis par l'utilisateur et ceux du tableau en haut !
$validated (in_array($user, $valide_users)) && ($pass $table_acces[$user]);

if (!$validated) {

// si les informations sont invalides
header('WWW-Authenticate: Basic realm="My Realm"');

header('HTTP/1.0 401 Unauthorized');

die ("vous nêtes pas autoriser à accéder à cette espace !");

}

// sinon l'utilisateur a saisis le bon login et mot de passe
//renvoi vers une autre page web sécurisée.

echo "Bienvenue $user.

";

echo "vous avez le bon login et mot de passe et donc vous avez pu accéser !!!!.

";

ceci marche nickel !!!

Mon problème est que je veux accéder à cette page web sécurisée sans que l'utilisateur ne tape le login et le mot de passe, càd que je passe de cette page d'accueil vers l'autre sans que l'utilisateur n'ai la fenêtre d'autentification HTTP sachant que le login et mot de passe sont fixés auparavant !

Merci de m'aider

@ -:)

Zebra

2 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
30 juil. 2008 à 13:50
Salut,

C'est pas vraiment possible sans tricher, parce que l'authentification HTTP est gérée par le navigateur. Elle se fait sans cookies, ou paramètre dans l'URL : elle fait partie intégrante du protocole HTTP. Donc : il faut obligatoirement que le navigateur envoie à un moment ou un autre un identifiant et un mot de passe pour le "realm" concerné, qu'il conservera pour utilisation ultérieure.

Une manière de tricher est d'ouvrir la page avec fopen et une url de ce genre :

login:password@www.host.tld/page/securisee.php

Mais à ce moment là, l'authentification HTTP ne sert plus à rien, puisque c'est le script qui fait l'identification... Autant utiliser les sessions PHP.

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0
Zebra1928 Messages postés 163 Date d'inscription jeudi 15 juillet 2004 Statut Membre Dernière intervention 27 janvier 2016
30 juil. 2008 à 16:09
Merci NEIGEDIVER pour ta réponse, moi j'en ai besoin car je fais cette authentification pour utiliser des webservices situés dans un autre endroit !!


pour accéder à ces webservices je dois m'autentifier ,
si j'utilise
login:password@www.host.tld/page/securisee.php

j'ai l'erreur : HTTP Error: HTTP authentication failed

Merci de m'aider

@ -:)

Zebra
0
Rejoignez-nous