note 110792 added to features.http-auth
| From: | Anonymous | 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