miouge Posté(e) le 4 août 2005 Partager Posté(e) le 4 août 2005 Bonjour ! Etant en train de feuilleter le manuel PHP.net là je rencontre des problème avec lidentification HTTP de type Digest... donc voila le code d'exemple fourni par php.net: <?php $realm = 'Restricted area'; //utilisateur => mot de passe $users = array('admin' => 'mypass', 'guest' => 'guest'); if (!isset($_SERVER['PHP_AUTH_DIGEST'])) { header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Digest realm="'.$realm. '" qop="auth" nonce="'.uniqid().'" opaque="'.md5($realm).'"'); die('Texte utilisé si le visiteur utilise le bouton d\'annulation'); } // analyse la variable PHP_AUTH_DIGEST preg_match('/username="(?P<username>.*)",\s*realm="(?P<realm>.*)",\s*nonce="(?P<nonce>.*)",\s*uri="(?P<uri>.*)",\s*response="(?P<response>.*)",\s*opaque="(?P<opaque>.*)",\s*qop=(?P<qop>.*),\s*nc=(?P<nc>.*),\s*cnonce="(?P<cnonce>.*)"/', $_SERVER['PHP_AUTH_DIGEST'], $digest); if (!isset($users[$digest['username']])) die('Nom d\'utilisateur invalide!'); // Génération de réponse valide $A1 = md5($digest['username'] . ':' . $realm . ':' . $users[$digest['username']]); $A2 = md5($_SERVER['REQUEST_METHOD'].':'.$digest['uri']); $valid_response = md5($A1.':'.$digest['nonce'].':'.$digest['nc'].':'.$digest['cnonce'].':'.$digest['qop'].':'.$A2); if ($digest['response'] != $valid_response) die('Mauvaise Pièces d\'identité!'); // ok, utilisateur & mot de passe valide echo 'Vous êtes identifié en tant que : ' . $digest['username']; ?> url Et deja ce que j'arrive pas à comprendre... c'est uniqid()... qui me renvoi une erreur lorsque j'essaye le script... et aussi je ne comprend pas... l'expression rationelle qu'ils utilisent ? Un peu d'explicatoin svp :) Merci ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.