1 |
vitalif |
2 |
<?php |
2 |
|
|
|
3 |
|
|
/////////////////////////////////////////////////////////// |
4 |
|
|
// Аутентификация через сессии И куки // |
5 |
|
|
// // |
6 |
|
|
//////////// (c) 2006, Виталий Филиппов [VMX] //////////// |
7 |
|
|
//////////////////////////////////////// |
8 |
|
|
|
9 |
vitalif |
8 |
require_once 'config.php'; |
10 |
|
|
require_once 'auth_ver.php'; |
11 |
vitalif |
2 |
|
12 |
|
|
global $auth_loaded; |
13 |
|
|
$auth_loaded = true; |
14 |
|
|
//////////////////////////////////////////////////////////////////////////////////////////// |
15 |
|
|
// Попытка входа как username:password. Возвращает true или false (успешно или неуспешно) // |
16 |
|
|
function set_auth ($username, $password) |
17 |
|
|
{ |
18 |
|
|
global $Domain, $VLoginSession; |
19 |
|
|
$password = md5($password); |
20 |
|
|
$userid = -1; |
21 |
|
|
$userlevel = -1; |
22 |
|
|
$displayname = ''; |
23 |
|
|
if (!auth_verify ($username, $password, $userid, $userlevel, $displayname)) |
24 |
|
|
return false; |
25 |
|
|
// Начало сессии |
26 |
|
|
@session_destroy (); |
27 |
|
|
session_name ($VLoginSession); |
28 |
|
|
session_set_cookie_params (-1, '/', '.' . $Domain); |
29 |
|
|
@session_start (); |
30 |
|
|
$_SESSION['UserID'] = $userid; |
31 |
|
|
$_SESSION['UserName'] = $username; |
32 |
|
|
$_SESSION['UserLevel'] = $userlevel; |
33 |
|
|
$_SESSION['UserH'] = $password; |
34 |
|
|
$_SESSION['UserDName'] = $displayname; |
35 |
|
|
//print_r ($_SESSION); |
36 |
|
|
return true; |
37 |
|
|
} |
38 |
|
|
function get_auth_displayname () |
39 |
|
|
{ |
40 |
|
|
global $Domain, $VLoginSession; |
41 |
|
|
session_name ($VLoginSession); |
42 |
|
|
session_set_cookie_params (-1, '/', '.' . $Domain); |
43 |
|
|
@session_start (); |
44 |
|
|
if (isset($_SESSION['UserID']) && |
45 |
|
|
isset($_SESSION['UserName']) && |
46 |
|
|
isset($_SESSION['UserH']) && |
47 |
|
|
isset($_SESSION['UserLevel']) && |
48 |
|
|
isset($_SESSION['UserDName'])) |
49 |
|
|
return $_SESSION['UserDName']; |
50 |
|
|
return false; |
51 |
|
|
} |
52 |
|
|
// ID вошедшего пользователя или -1 если не вошёл |
53 |
|
|
function get_auth_id () |
54 |
|
|
{ |
55 |
|
|
global $Domain, $VLoginSession; |
56 |
|
|
session_name ($VLoginSession); |
57 |
|
|
session_set_cookie_params (-1, '/', '.' . $Domain); |
58 |
|
|
@session_start (); |
59 |
|
|
$userid = -1; |
60 |
|
|
$userlevel = -1; |
61 |
|
|
$displayname = ''; |
62 |
|
|
if (isset($_SESSION['UserID']) && |
63 |
|
|
isset($_SESSION['UserName']) && |
64 |
|
|
isset($_SESSION['UserH']) && |
65 |
|
|
isset($_SESSION['UserLevel']) && |
66 |
|
|
auth_verify ($_SESSION['UserName'], $_SESSION['UserH'], $userid, $userlevel, $displayname)) |
67 |
|
|
return $userid; |
68 |
|
|
return -1; |
69 |
|
|
} |
70 |
|
|
// Имя вошедшшего пользователя или false если не вошёл |
71 |
|
|
function get_auth_name () |
72 |
|
|
{ |
73 |
|
|
global $Domain, $VLoginSession; |
74 |
|
|
$userid = -1; |
75 |
|
|
$userlevel = -1; |
76 |
|
|
$displayname = ''; |
77 |
|
|
session_name ($VLoginSession); |
78 |
|
|
session_set_cookie_params (-1, '/', '.' . $Domain); |
79 |
|
|
@session_start (); |
80 |
|
|
if (isset($_SESSION['UserID']) && |
81 |
|
|
isset($_SESSION['UserName']) && |
82 |
|
|
isset($_SESSION['UserH']) && |
83 |
|
|
isset($_SESSION['UserLevel']) && |
84 |
|
|
auth_verify ($_SESSION['UserName'], $_SESSION['UserH'], $userid, $userlevel, $displayname)) |
85 |
|
|
return $_SESSION['UserName']; |
86 |
|
|
return false; |
87 |
|
|
} |
88 |
|
|
// Уровень прав вошедшего пользователя или -1 если не вошёл |
89 |
|
|
function get_auth_level () |
90 |
|
|
{ |
91 |
|
|
global $Domain, $VLoginSession; |
92 |
|
|
$userid = -1; |
93 |
|
|
$userlevel = -1; |
94 |
|
|
$displayname = ''; |
95 |
|
|
session_name ($VLoginSession); |
96 |
|
|
session_set_cookie_params (-1, '/', '.' . $Domain); |
97 |
|
|
@session_start (); |
98 |
|
|
if (isset($_SESSION['UserID']) && |
99 |
|
|
isset($_SESSION['UserName']) && |
100 |
|
|
isset($_SESSION['UserH']) && |
101 |
|
|
isset($_SESSION['UserLevel']) && |
102 |
|
|
auth_verify ($_SESSION['UserName'], $_SESSION['UserH'], $userid, $userlevel, $displayname)) |
103 |
|
|
return $userlevel; |
104 |
|
|
return -1; |
105 |
|
|
} |
106 |
|
|
// Очистка аутентификационных данных |
107 |
|
|
function clean_auth () |
108 |
|
|
{ |
109 |
|
|
global $Domain, $VLoginSession; |
110 |
|
|
session_name ($VLoginSession); |
111 |
|
|
session_set_cookie_params (-1, '/', '.' . $Domain); |
112 |
|
|
@session_start (); |
113 |
|
|
$_SESSION[] = array(); |
114 |
|
|
if (isset($_COOKIE[session_name()])) |
115 |
|
|
@setcookie(session_name(), '', time()-42000, '/', '.' . $Domain, 0); |
116 |
|
|
@session_destroy (); |
117 |
|
|
} |
118 |
|
|
|
119 |
|
|
?> |