note 110792 deleted from features.http-auth by danbrown

From: Date: Sat, 08 Dec 2012 18:48:41 +0000
Subject: note 110792 deleted from features.http-auth by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-192399@lists.php.net to get a copy of this message
Note Submitter: Anonymous ---- <?php BasicAuth::test(array( 'test_login' => '0b91dec4fe98266a03b136b59219d0d6', // testpass1 'user2' => '841c4221c2e7e0cefbc0392a35222512' // testpass2 ), $message = "Zaloguj sie do systemu", $md5mode = true); echo 'jest przeszło ;)...'; class BasicAuth { private static $credentials; private static $md5mode; /** * @author Szymon Działowski 2012-12-08 * Główna metoda do sprawdzania autentykacji * @param array $credentials - tablica z loginami (jako klucze tablicy) i hasłami (jako wartości) * @param string $message - (def: null) - Wiadomośc która ma być wyświetlona użytkownikowi do okna w którym podaje się login i hasło * @param boolean $md5mode - (def: false) - określa czy hasła w tym skrypcie są rpzechowywane jako plain text czy jako sumy md5 */ public static function test($credentials,$message = null,$md5mode = false) { self::$credentials = $credentials; self::$md5mode = $md5mode; $message = is_string($message) ? $message : 'Basic auth'; if(!self::check()) { header("WWW-Authenticate: Basic realm=\"$message\""); header('HTTP/1.0 401 Unauthorized'); die("I'm sorry - authentication failed"); } } protected static function check() { $pw = self::$md5mode ? md5(self::gs('PW')) : self::gs('PW'); $us = self::gs('USER'); if (!$us) return false; foreach (self::$credentials as $l => $p) { if (($us && ($us == $l && $pw == $p))) return true; } return false; } protected static function gs($key) { $key = 'PHP_AUTH_'.$key; return isset($_SERVER[$key]) && $_SERVER[$key] ? $_SERVER[$key] : false; } }

« previous php.notes (#192399) next »