note 110792 added to features.http-auth

From: Date: Sat, 08 Dec 2012 16:50:29 +0000
Subject: note 110792 added to features.http-auth
Groups: php.notes 
Request: Send a blank email to php-notes+get-192398@lists.php.net to get a copy of this message
<?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; } } ---- Server IP: 69.147.83.199 Probable Submitter: 72.52.91.2 (proxied: 89.228.67.49) ---- Manual Page -- http://php.net/manual/en/features.http-auth.php Edit -- https://master.php.net/note/edit/110792 Del: integrated -- https://master.php.net/note/delete/110792/integrated Del: useless -- https://master.php.net/note/delete/110792/useless Del: bad code -- https://master.php.net/note/delete/110792/bad+code Del: spam -- https://master.php.net/note/delete/110792/spam Del: non-english -- https://master.php.net/note/delete/110792/non-english Del: in docs -- https://master.php.net/note/delete/110792/in+docs Del: other reasons-- https://master.php.net/note/delete/110792 Reject -- https://master.php.net/note/reject/110792 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#192398) next »