Fenetre login http avec header

Contenu du snippet

Cette source montre comment faire afficher la fenetre de login du browser sans utiliser les fichiers htaccess.
Sa se fait avec la fonction header de php

Source / Exemple :


if(!isset($_SERVER['PHP_AUTH_USER']))
     {
        header('WWW-Authenticate: Basic realm="t qui"'); 
        header('HTTP/1.0 401 Unauthorized');
        print("contenu si l'utilisateur appuy sur annuler ou ferme la fenetre");
        exit;
     }
     else
     {
           /*
           $_SERVER['PHP_AUTH_USER']     -->  Contient le nom d'utilisateur fourni
           $_SERVER['PHP_AUTH_PW']        -->  Contient le mot de passe fourni
           Valider ces informations avec votre liste d'utilisateur dans une base de données
           ou dans un fichier

  • /
if(nom d'utilisateur et ou mot de passe invalide) { print("vous n'etes pas autorisé a voir cette page."); exit; } } /* Ici sera placé le contenu de votre page.
  • /

Conclusion :


Quand l'utilisateur charge la page, $_SERVER['PHP_AUTH_USER'] n'existe pas, alors on entre dans le bloc vrai du if(!isset($_SERVER['PHP_AUTH_USER']))
Ensuite la ligne : header('WWW-Authenticate: Basic realm="t qui"');
envoi un message au browser d'afficher la fenetre de login
Puis la ligne : header('HTTP/1.0 401 Unauthorized');
Intercepte le message si l'utilisateur appuy sur annuler ou ferme la fenetre de login.
Les lignes :
print("contenu si l'utilisateur appuy sur annuler ou ferme la fenetre");
exit;
ne sont exécutés que si l'utilisateur ferme la fenetre ou appuy sur le bouton annuler.

Si l'utilisateur entre un nom d'utilisateur ou un mot de passe, la page est automatiquement rappelée, mais cette fois $_SERVER['PHP_AUTH_USER'] contiendra le nom d'utilisateur et $_SERVER['PHP_AUTH_PW'] contiendra le mot de passe.

Donc cette fois on entre dans le bloc faux du : if(!isset($_SERVER['PHP_AUTH_USER']))
Ensuite vous validez si le nom d'utilisateur et le mot de passe sont valide et vous faites l'action que vous voulez dans ce cas j'ai fait :

if(nom d'utilisateur et ou mot de passe invalide)
{
print("vous n'etes pas autorisé a voir cette page.");
exit;
}

A voir également

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.