- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
/**
* @class Session
* @brief Класс для управления безопасностью на сайте.
* тут еще многа инфы
*/
// Отрывки из классы
public static function auth($email, $password)
{
$result = 0;
$email = strtolower($email);
$dbh = DB::select("SELECT id, is_active, confirm_code FROM ".TB_USERS."
WHERE email='".$email."' AND password='".md5($email.$password)."' LIMIT 1");
...
// Замечу что $email и $password получены при помощи мега крутой функции http://govnokod.ru/5901
public static function get($mode = 0, $role = 0)
{
$result = false;
list ($session_id, $user_id) = self::getcookie();
if(!empty($session_id))
{
self::$id = $session_id;
$dbh = DB::select("SELECT u.email, u.role FROM ".TB_SESSION." AS s LEFT JOIN ".TB_USERS." AS u ON s.user_id=u.id
WHERE s.id='".$session_id."' AND s.user_id=".$user_id.($role > 0 ? " AND u.role&".$role : "")." LIMIT 1");
...
protected static function getcookie()
{
$parts = explode(BOUND, (isset($_COOKIE[self::$name]) ? $_COOKIE[self::$name] : ""));
if(sizeof($parts) != 2)
{
$parts = array("", 0);
}
else
{
$parts[0] = encode($parts[0]);
$parts[1] = (int)$parts[1];
}
return $parts;
}
// А вот и encode
function encode($value, $html_encode = true)
{
$value = trim((string)$value);
if(empty($value)) return false;
if($html_encode)
{
$value = htmlspecialchars($value, ENT_QUOTES);
}
$search = array('/"/', "/'/", "/\\\\"/", "/\\\\'/", "/<\?/", "/\?>/");
$replace = array(""", "'", """, "'", "<?", "?>");
return preg_replace($search, $replace, $value);
}