BlueGEEK Journal

Accueil > Manip’s > PHP > Leçons PHP > Authentification > Formulaire simplifié d’identification par instruction Header

PHP

Formulaire simplifié d’identification par instruction Header

Header

lundi 14 août 2006, par bluegyn_spip

authentif.php

<?php

include("param.inc");



function Authentification()

{

header('WWW-Authenticate: Basic realm="ACCES RESTREINT"');

header('HTTP/1.0 401 Unauthorized');

echo 'Procédure annulée';

exit;

};



if (!isset($_SERVER['PHP_AUTH_USER'])) {

 Authentification();

}

else

{

 if (($_SERVER['PHP_AUTH_USER']==$myuser)&&($_SERVER['PHP_AUTH_PW']==$mypw)) {

   echo "OK";

 }

 else {

   Authentification();

 }

};

?>

param.inc

<?

$myuser="doc";

$mypw="doc";

?>

Messages

  • A 10:34 15/08/2006, CI a écrit :

    Non, même message d’erreur avec auth_4a.php,

    quant au code http://bluegyn.com/rangetoo/admin/

    ne fonctionne pas,mais je veux bien voir le code.


    Ce code fonctionne parfaitement chez moi ?

    - Voir ici :

    - http://bluegyn.com/php/auth/auth_4a.php

    USER = doc

    PW = doc


    +++

    <?php

    $myuser=$mypw="doc";



    function Authentification()

    {

    header('WWW-Authenticate: Basic realm="ACCES RESTREINT"');

    header('HTTP/1.0 401 Unauthorized');

    echo 'Procédure annulée';

    exit;

    };



    if (!isset($_SERVER['PHP_AUTH_USER'])) {

     Authentification();

    }

    else

    {

    if(($_SERVER['PHP_AUTH_USER']==$myuser)&&($_SERVER['PHP_AUTH_PW']==$mypw))

    {

       echo "OK";

     }

     else {

       Authentification();

     }

    };

    ?>

    J’ai simpifié

    +++ COMMENTAIRE +++

    - Définition dans un premier temps d’une fonction AUTHENTFICATION

    - Puis entrée du programme par un 1er IF

    • Qui teste si un NOM D’UTILISATEUR est mémorisé
    • Si le test échoue IF ( ! )
    • (Ce qui arrive la première fois ou si je clique sur [ OK ] sans entrer de valeur)
    • La procédure d’authentification est lancée

    Sinon (Un NOM a été saisi)

    - Second test qui analyse les données saisies if ((USER) AND (PW))

    - Si le test réussi

    • On passe à autre chose (ici affiche OK)
    • Sinon (ELSE)
    • On relance encore une fois la tentative d’authentification

    - Le seul moyen de se sortir de la boucle infernale est

    • Soit de s’identifier correctement
    • Soit d’ANNULER, ce qui déclenche l’affichage du message "Annulé" et sort du programme.

    BUGS

    - Pour des raisons liées au système, si je sors avec succès de la boucle infernale je ne peux plus y entrer

    - Par exemple si je donne les bonnes infos et que OK s’affiche,

    • plus moyen de relancer la procédure d’authentification
    • sans fermer puis relancer le navigateur,
    • ou sans attendre au moins 1 demi heure, car les infos sont mémorisées et OK s’affiche dès que j’ouvre la page

    J’ai essayé

    - en créant et en supprimant une session

    - en supprimant les cookies

    - en initialisant les variables

    Ca ne marche pas !

    - Ce n’est pas grave puisque une fois authentifié, on fait autre chose, mais j’aimerais comprendre ce qui se passe à ce moment.

    Concernant à la page

    - http://bluegyn.com/rangetoo/admin/

    - Ce n’est pas mon script, mais le script de l’excellent programme PHP CATEGORIZATOR

    - Voir ici quand tu cliques sur [ESPACE PRIVE]

    - http://bluegyn.com/rangetoo/

    CATEGORIZATOR se trouve ici

    - http://bluegyn.com/rangetoo/index.php?cat_id=30

    Et la page d’authentification se trouve dans le ZIP à

    - ADMIN/INDEX.PHP

    - Concernant CATEGORIZATOR, c’est le sujet qui suscite le plus de commentaires sur mon Blog

    - http://bluegyn.com/spip/recherche.php3?recherche=categorizator

    - Car je remarque qu’aucun des scripts PHP du domaine libre n’utilise la procédure sus-décrite...