|
<!-- Заголовок страницы --> |
|
|
<html> |
|
|
<head> |
|
|
<title>Администрирование</title> |
|
|
<meta name="GENERATOR" content="VMX"> |
|
|
<meta name="description" content="Главная страница системы администрирования тестов"> |
|
|
<meta http-equiv=Content-Type content="text/html; charset=windows-1251"> |
|
|
<link rel="stylesheet" href="../styles.css"> |
|
|
<!-- Скрипт --> |
|
|
|
|
1 |
<?php |
<?php |
2 |
|
|
3 |
// Интерфейс администрирования |
// Интерфейс аутентификации + тестирования |
4 |
// Copyright (c) 2006, Виталий Филиппов [VMX] |
// Copyright (c) 2006, Виталий Филиппов [VMX] |
5 |
|
|
6 |
include_once '../lib/config.php'; |
include_once 'lib/config.php'; |
7 |
include_once 'init.php'; |
include_once 'lib/auth_sc.php'; |
8 |
include_once 'load.php'; |
error_reporting (E_ALL & ~E_NOTICE); |
|
|
|
|
import_request_variables ("gp", "req_"); |
|
9 |
mysql_start (); |
mysql_start (); |
10 |
// Выполняем команду |
|
11 |
if (isset ($req_cmd)) |
function delnull (&$a) |
|
{ |
|
|
if ($req_cmd == 'init') |
|
|
{ |
|
|
$initres = init_database(); |
|
|
mysql_finish (); |
|
|
if ($initres) |
|
|
echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/?cok=0"\'>'; |
|
|
else echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/?cfail=0"\'>'; |
|
|
} |
|
|
else if ($req_cmd == 'load') |
|
12 |
{ |
{ |
13 |
$ldres = false; |
for ($i = 0; $i < count ($a); $i++) |
|
if (isset ($_FILES['loadfilename']['tmp_name']) && $_FILES['loadfilename']['size']) |
|
14 |
{ |
{ |
15 |
$quest = load_questions ($_FILES['loadfilename']['tmp_name']); |
if (strlen($a[$i]) == 0) |
|
if ($quest) |
|
16 |
{ |
{ |
17 |
if (isset ($req_loadoverwrite) && $req_loadoverwrite == 'on') |
for ($j = $i; $j < count ($a)-1; $j++) |
18 |
amysql_query ("TRUNCATE TABLE `$QuestionsTable`"); |
$a[$j] = $a[$j+1]; |
19 |
if (load_into_database ($QuestionsTable, $quest)) |
unset ($a[count($a)-1]); |
|
$ldres = true; |
|
20 |
} |
} |
|
if (is_uploaded_file ($_FILES['loadfilename']['tmp_name'])) |
|
|
unlink ($_FILES['loadfilename']['tmp_name']); |
|
21 |
} |
} |
|
mysql_finish (); |
|
|
if ($ldres) |
|
|
echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/?cok=1"\'>'; |
|
|
else echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/?cfail=1"\'>'; |
|
22 |
} |
} |
23 |
else if ($cmd == 'plustest' || $cmd == 'minustest' || $cmd == 'cleartest') |
|
24 |
{ |
function putFrmLogin ($login_incorrect) |
|
if ($cmd == 'plustest') |
|
|
{ |
|
|
if (isset ($req_searchdate) && strlen ($req_searchdate) > 0) |
|
|
{ |
|
|
$req_searchdate = mysql_escape_string ($req_searchdate); |
|
|
$result = amysql_query ("UPDATE `$UsersTable` SET `testlimit`=`testlimit`+1 WHERE `date` >= '$req_searchdate'"); |
|
|
} |
|
|
else |
|
25 |
{ |
{ |
26 |
$subl = mysql_escape_string($req_searchlogin); |
global $phpbb_path; |
27 |
$result = amysql_query ("UPDATE `$UsersTable` SET `testlimit`=`testlimit`+1 WHERE !(INSTR(`login`,'$subl')=0)"); |
$str = query_str_replace ($_SERVER['QUERY_STRING'], 'logout', ''); |
28 |
} |
echo "<form action=\"?$str\" method=\"POST\"> |
29 |
|
<table bgcolor=\"#E0E0FF\" width=\"700\" align=\"center\">\n"; |
30 |
|
if ($login_incorrect) |
31 |
|
echo "<tr><td align=\"center\" colspan=2><p class=\"frmLoginText\">Данные неверны</p></td></tr>"; |
32 |
|
echo "<tr> |
33 |
|
<td width=\"40%\"><p align=\"right\" class=\"frmLoginText\">Логин:</p></td> |
34 |
|
<td><input name=\"loginedit\" type=\"text\" maxlength=\"256\" class=\"frmLoginEdit\"></td> |
35 |
|
</tr> |
36 |
|
<tr> |
37 |
|
<td><p align=\"right\" class=\"frmLoginText\">Пароль:</p></td> |
38 |
|
<td><input name=\"passedit\" type=\"password\" maxlength=\"256\" class=\"frmLoginEdit\"></td> |
39 |
|
</tr> |
40 |
|
<tr><td align=\"center\" colspan=2><input type=\"submit\" value=\"Вход\" class=\"frmLoginButton\"></td></tr> |
41 |
|
<tr><td align=\"center\" colspan=2><p class=\"frmLoginText\"><font size=\"-1\"><a href=\"/register.php\">Зарегистрироваться</a></font></p></td></tr> |
42 |
|
</table> |
43 |
|
</form>\n"; |
44 |
} |
} |
45 |
else if ($cmd == 'minustest') |
|
46 |
{ |
function putFrmLogout ($name, $lobtn) |
|
if (isset ($req_searchdate) && strlen ($req_searchdate) > 0) |
|
47 |
{ |
{ |
48 |
$req_searchdate = mysql_escape_string ($req_searchdate); |
$str = query_str_add ($_SERVER['QUERY_STRING'], 'logout'); |
49 |
$result = amysql_query ("UPDATE `$UsersTable` SET `testlimit`=`testlimit`-1 WHERE `date` >= '$req_searchdate' AND `testlimit`>0"); |
echo "<table bgcolor=\"#FFF0E0\" width=\"700\" align=\"center\"> |
50 |
|
<tr><td align=\"center\"><p class=\"frmLoginText\">Здравствуйте, $name!</p></td></tr> |
51 |
|
<tr><td align=\"center\">"; |
52 |
|
if ($lobtn) |
53 |
|
echo "<form action=\"?$str\" method=\"POST\"><input type=\"submit\" value=\"Выход\" class=\"frmLoginButton\"></form>"; |
54 |
|
echo "</td></tr></table>"; |
55 |
} |
} |
56 |
else |
|
57 |
|
function t_err ($str) |
58 |
{ |
{ |
59 |
$subl = mysql_escape_string($req_searchlogin); |
echo '<p align="center">' . $str . '</p>'; |
60 |
$result = amysql_query ("UPDATE `$UsersTable` SET `testlimit`=`testlimit`-1 WHERE !(INSTR(`login`,'$subl')=0) AND `testlimit`>0"); |
exit; |
|
} |
|
61 |
} |
} |
62 |
else |
|
63 |
{ |
function Testing () |
|
if (isset ($req_searchdate) && strlen ($req_searchdate) > 0) |
|
64 |
{ |
{ |
65 |
$req_searchdate = mysql_escape_string ($req_searchdate); |
global $result, $QuestionsTable, $ResultsTable, $UsersTable; |
66 |
$result = amysql_query ("UPDATE `$UsersTable` SET `testlimit`=0 WHERE `date` >= '$req_searchdate'"); |
global $MatrixWidth, $TriesCount, $TimeLimit; |
67 |
|
global $Domain, $VLoginSession; |
68 |
|
global $req_cmd, $req_where, $req_display; |
69 |
|
session_name ($VLoginSession); |
70 |
|
session_set_cookie_params (-1, '/', '.' . $Domain); |
71 |
|
@session_start (); |
72 |
|
$cur_user_id = get_auth_id (); |
73 |
|
// Выполняем команды начала/конца |
74 |
|
if (isset ($req_cmd) && $req_cmd == 'start' && !(isset ($_SESSION['TestStarted']) && $_SESSION['TestStarted'] == 1)) |
75 |
|
{ |
76 |
|
// Считываем, сколько ему вообще ещё можно |
77 |
|
$curuid = get_auth_id (); |
78 |
|
$result = amysql_query ("SELECT `testlimit` FROM `$UsersTable` WHERE `id`='$curuid' LIMIT 1"); |
79 |
|
if (!$result) t_err ("Внутренняя ошибка"); |
80 |
|
$row = mysql_fetch_row ($result); |
81 |
|
$testlimit = 1 + $row [0] - 1; |
82 |
|
if ($testlimit <= 0) |
83 |
|
t_err ("Попытка взлома!"); |
84 |
|
// Считываем количество вариантов |
85 |
|
$result = amysql_query ("SELECT MAX(`varid`) FROM `$QuestionsTable`"); |
86 |
|
if (!$result) t_err ("Внутренняя ошибка"); |
87 |
|
$row = mysql_fetch_row ($result); |
88 |
|
$varcount = 1 + $row[0] - 1; |
89 |
|
// Рандомим вариант |
90 |
|
$vr = $_SESSION['TestVar'] = rand (1, $varcount); |
91 |
|
$_SESSION['TestVarCount'] = $varcount; |
92 |
|
// Считываем количество вопросов этого варианта |
93 |
|
$result = amysql_query ("SELECT COUNT(`id`) FROM `$QuestionsTable` WHERE `varid`=$vr"); |
94 |
|
if (!$result) t_err ("Внутренняя ошибка"); |
95 |
|
$row = mysql_fetch_row ($result); |
96 |
|
$qn = 1 + $row [0] - 1; |
97 |
|
if ($qn <= 0) t_err ("Неизвестный вариант или БД вопросов пуста."); |
98 |
|
$_SESSION['TestQCount'] = $qn; |
99 |
|
// Уменьшаем лимит |
100 |
|
$result = amysql_query ("UPDATE `$UsersTable` SET `testlimit`=`testlimit`-1 WHERE `id`='$curuid' LIMIT 1"); |
101 |
|
if (!$result) t_err ("Внутренняя ошибка"); |
102 |
|
// Делаем выборку |
103 |
|
for ($i = 0; $i < $qn; $i++) |
104 |
|
$flg [$i] = false; |
105 |
|
for ($i = 0; $i < $qn; $i++) |
106 |
|
{ |
107 |
|
$rnd = rand (0, $qn-$i-1); |
108 |
|
for ($j = 0, $r = -1; $j < $rnd+1; $j++) |
109 |
|
do { $r++; } while ($flg [$r]); |
110 |
|
$flg [$r] = true; |
111 |
|
$_SESSION ["TestQ$i"] = $r; |
112 |
|
$_SESSION ["TestA$i"] = 0; // не отвечено |
113 |
|
$_SESSION ["TestT$i"] = 0; // количество попыток |
114 |
|
} |
115 |
|
$_SESSION['TestStartTime'] = time(); |
116 |
|
$_SESSION['TestStarted'] = 1; |
117 |
|
$_SESSION['TestCurQ'] = 0; |
118 |
|
} |
119 |
|
else if (isset ($_SESSION['TestStarted']) && $_SESSION['TestStarted'] == 1 && |
120 |
|
((isset ($req_cmd) && $req_cmd == 'end') || (isset($TimeLimit) && $TimeLimit > 0 && time () > $_SESSION ['TestStartTime'] + $TimeLimit))) // здесь заложен автовыход по времени |
121 |
|
{ |
122 |
|
$vr = $_SESSION['TestVar']; |
123 |
|
$vqn = $_SESSION['TestQCount']; |
124 |
|
// Сначала выстраиваем "правильный" массив |
125 |
|
for ($vqi = 0; $vqi < $vqn; $vqi++) |
126 |
|
$res [$_SESSION["TestQ$vqi"]] = $_SESSION["TestA$vqi"]; |
127 |
|
// И строку для БД |
128 |
|
$resstr = ''; |
129 |
|
for ($vqi = 0; $vqi < $vqn; $vqi++) |
130 |
|
$resstr .= $res [$vqi]; |
131 |
|
// Вычисляем количество верных ответов |
132 |
|
$result = amysql_query ("SELECT * FROM `$QuestionsTable` WHERE `varid`=$vr ORDER BY `id`"); |
133 |
|
if (!$result) t_err ("Внутренняя ошибка"); |
134 |
|
for ($rescount = 0, $vqi = 0; $vqi < $vqn; $vqi++) |
135 |
|
{ |
136 |
|
$arr = mysql_fetch_assoc ($result); |
137 |
|
if ($res [-1+$arr['id']] == $arr['rightanswer']) |
138 |
|
$rescount++; |
139 |
|
} |
140 |
|
$respercent = 100 * $rescount / $vqn; |
141 |
|
// Заносим результаты в БД |
142 |
|
$curdate = date ("Y-m-d"); |
143 |
|
$curtime = date ("H:i:s"); |
144 |
|
$result = amysql_query ("INSERT INTO `$ResultsTable` SET `id`=DEFAULT, `uid`=$cur_user_id, `varid`=$vr, `date`='$curdate', `time`='$curtime', `answers`='$resstr', `result`=$rescount"); |
145 |
|
if (!$result) t_err ("Внутренняя ошибка"); |
146 |
|
// Убиваем все использованные переменные уровня сессии |
147 |
|
for ($vqi = 0; $vqi < $vqn; $vqi++) |
148 |
|
{ |
149 |
|
unset ($_SESSION["TestQ$vqi"]); |
150 |
|
unset ($_SESSION["TestA$vqi"]); |
151 |
|
unset ($_SESSION["TestT$vqi"]); |
152 |
|
} |
153 |
|
unset ($_SESSION["TestAllA"]); |
154 |
|
unset ($_SESSION['TestStarted']); |
155 |
|
unset ($_SESSION['TestCurQ']); |
156 |
|
unset ($_SESSION['TestQCount']); |
157 |
|
unset ($_SESSION['TestVar']); |
158 |
|
unset ($_SESSION['TestVarCount']); |
159 |
|
// Выводим результат |
160 |
|
echo '<table bgcolor="#FFF0E0" width="700" cellspacing="1" class="frmLoginText" align="center">'; |
161 |
|
if (isset($TimeLimit) && $TimeLimit > 0 && time () > $_SESSION ['TestStartTime'] + $TimeLimit) |
162 |
|
echo "<tr><td align=\"center\">Ваше время вышло.</td></tr>"; |
163 |
|
echo "<tr><td align=\"center\">Ваш результат: $rescount = ${respercent}%.</td></tr>"; |
164 |
|
echo '</table>'; |
165 |
|
unset ($_SESSION['TestStartTime']); |
166 |
} |
} |
167 |
else |
// Тестирование уже начато |
168 |
|
if (isset ($_SESSION['TestStarted']) && $_SESSION['TestStarted'] == 1) |
169 |
{ |
{ |
170 |
$subl = mysql_escape_string($req_searchlogin); |
$vr = $_SESSION['TestVar']; |
171 |
$result = amysql_query ("UPDATE `$UsersTable` SET `testlimit`=0 WHERE !(INSTR(`login`,'$subl')=0)"); |
$cq = $_SESSION['TestCurQ']; |
172 |
} |
$vqn = $_SESSION['TestQCount']; |
173 |
} |
echo '<table bgcolor="#FFF0E0" width="700" cellspacing="1" class="frmLoginText" align="center">'; |
174 |
mysql_finish (); |
// Выдаём текущий вариант |
175 |
if ($result) |
echo '<tr><td align="center" bgcolor="#E0E0FF" colspan="2">Идёт тестирование'; |
176 |
echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/?cok=2"\'>'; |
if (isset ($TimeLimit) && $TimeLimit > 0) |
177 |
else echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/?cfail=2"\'>'; |
{ |
178 |
} |
$remain = $TimeLimit + $_SESSION['TestStartTime'] - time(); |
179 |
} |
$remsec = $remain % 60; |
180 |
|
$remmin = ($remain / 60) % 60; |
181 |
?> |
$remhr = floor ($remain / 3600); |
182 |
|
if ($remsec < 10) $remsec = '0' . $remsec; |
183 |
<!-- Продолжение статического содержимого --> |
if ($remmin < 10) $remmin = '0' . $remmin; |
184 |
</head> |
if ($remain < 5*60) |
185 |
<body link="#000000" vlink="#000000" alink="#000000" bgcolor="#FFFFFF" text="#000000"> |
echo "; <font color=#FF4040><b>ВНИМАНИЕ!</b></font> "; |
186 |
<table class="frmLoginText" style="border-color: black; border-width: 1; border-style: solid" width="700" bgcolor="#E0E0FF" align="center" cellspacing="0"> |
else echo "; "; |
187 |
<tr><td align="center" bgcolor="#FFF0E0"><b><a href="/admin/"><font size="+1" color="#000000">Система администрирования тестирования слушателей</font></a></b><br> </td></tr> |
echo "осталось времени: $remhr:$remmin:$remsec"; |
188 |
</table><br> |
} |
189 |
<!-- Продолжение скрипта --> |
if ($_SESSION['TestVarCount'] > 1) |
190 |
|
echo "; ваш вариант: $vr"; |
191 |
<?php |
echo '</td></tr>'; |
192 |
|
// Выполняем команды, которые работают только в тесте |
|
// Если надо, выводим информацию о пользователях |
|
193 |
if (isset ($req_cmd)) |
if (isset ($req_cmd)) |
194 |
{ |
{ |
195 |
if ($req_cmd == 'users' || $req_cmd == 'prnusers') |
if ($req_cmd == '1' && $_SESSION["TestA$cq"] != 1 && $_SESSION["TestT$cq"] < $TriesCount) |
|
{ |
|
|
if (isset ($req_searchdate) && strlen ($req_searchdate) > 0) |
|
196 |
{ |
{ |
197 |
$req_searchdate = mysql_escape_string ($req_searchdate); |
$_SESSION["TestT$cq"]++; |
198 |
$result = amysql_query ("SELECT * FROM `$UsersTable` WHERE `date` >= '$req_searchdate' ORDER BY `lastname`, `firstname`, `thirdname`"); |
$_SESSION["TestA$cq"] = 1; |
199 |
|
$ocq = $cq; do { $cq = ($cq+1) % $vqn; } while ($_SESSION["TestA$cq"] != 0 && $cq != $ocq); |
200 |
|
$_SESSION['TestCurQ'] = $cq; |
201 |
|
if ($ocq == $cq) |
202 |
|
$_SESSION["TestAllA"] = 1; |
203 |
|
} |
204 |
|
else if ($req_cmd == '2' && $_SESSION["TestA$cq"] != 2 && $_SESSION["TestT$cq"] < $TriesCount) |
205 |
|
{ |
206 |
|
$_SESSION["TestT$cq"]++; |
207 |
|
$_SESSION["TestA$cq"] = 2; |
208 |
|
$ocq = $cq; do { $cq = ($cq+1) % $vqn; } while ($_SESSION["TestA$cq"] != 0 && $cq != $ocq); |
209 |
|
$_SESSION['TestCurQ'] = $cq; |
210 |
|
if ($ocq == $cq) |
211 |
|
$_SESSION["TestAllA"] = 1; |
212 |
|
} |
213 |
|
else if ($req_cmd == '3' && $_SESSION["TestA$cq"] != 3 && $_SESSION["TestT$cq"] < $TriesCount) |
214 |
|
{ |
215 |
|
$_SESSION["TestT$cq"]++; |
216 |
|
$_SESSION["TestA$cq"] = 3; |
217 |
|
$ocq = $cq; do { $cq = ($cq+1) % $vqn; } while ($_SESSION["TestA$cq"] != 0 && $cq != $ocq); |
218 |
|
$_SESSION['TestCurQ'] = $cq; |
219 |
|
if ($ocq == $cq) |
220 |
|
$_SESSION["TestAllA"] = 1; |
221 |
|
} |
222 |
|
else if ($req_cmd == '4' && $_SESSION["TestA$cq"] != 4 && $_SESSION["TestT$cq"] < $TriesCount) |
223 |
|
{ |
224 |
|
$_SESSION["TestT$cq"]++; |
225 |
|
$_SESSION["TestA$cq"] = 4; |
226 |
|
$ocq = $cq; do { $cq = ($cq+1) % $vqn; } while ($_SESSION["TestA$cq"] != 0 && $cq != $ocq); |
227 |
|
$_SESSION['TestCurQ'] = $cq; |
228 |
|
if ($ocq == $cq) |
229 |
|
$_SESSION["TestAllA"] = 1; |
230 |
|
} |
231 |
|
else if ($req_cmd == 'goto') |
232 |
|
{ |
233 |
|
$_SESSION['TestCurQ'] = $cq = 1 + $req_where - 1; |
234 |
|
} |
235 |
|
} |
236 |
|
// ...и текущий вопрос |
237 |
|
$bcq = $_SESSION["TestQ$cq"]; |
238 |
|
$result = amysql_query ("SELECT * FROM `$QuestionsTable` WHERE `varid`=$vr ORDER BY `id` LIMIT $bcq, 1"); |
239 |
|
if (!$result) t_err ("Внутренняя ошибка"); |
240 |
|
$arr = mysql_fetch_assoc ($result); |
241 |
|
$btag1 = $btag2 = $btag3 = $btag4 = $bbtag1 = $bbtag2 = $bbtag3 = $bbtag4 = ''; |
242 |
|
if ($_SESSION["TestA$cq"] == 1) { $btag1 = '<b>'; $bbtag1 = '</b>'; } |
243 |
|
else if ($_SESSION["TestA$cq"] == 2) { $btag2 = '<b>'; $bbtag2 = '</b>'; } |
244 |
|
else if ($_SESSION["TestA$cq"] == 3) { $btag3 = '<b>'; $bbtag3 = '</b>'; } |
245 |
|
else if ($_SESSION["TestA$cq"] == 4) { $btag4 = '<b>'; $bbtag4 = '</b>'; } |
246 |
|
echo '<tr><td height="5"></td></tr><tr><td style="border: thin solid" align="left" colspan="2"><p style="margin: 5 5 5 5"><b>Вопрос ' . ($cq+1) . ': ' . $arr['question'] . '</b></p></td></tr><tr><td height="5"></td></tr>'; |
247 |
|
echo '<tr><td' . ($_SESSION["TestA$cq"] == 1 ? ' class="selectorGreen"' : ' class="selectorBlue"') . '>' . (($_SESSION["TestT$cq"] < $TriesCount) ? '<a href="/?cmd=1">' : '') . '<p style="margin: 2 2 2 22; text-indent:-19">' . $btag1 . '1. ' . $arr['answer1'] . $bbtag1 . '</p>' . (($_SESSION["TestT$cq"] < $TriesCount) ? '</a>' : '') . '</td></tr>'; |
248 |
|
echo '<tr><td' . ($_SESSION["TestA$cq"] == 2 ? ' class="selectorGreen"' : ' class="selectorOrange"') . '>' . (($_SESSION["TestT$cq"] < $TriesCount) ? '<a href="/?cmd=2">' : '') . '<p style="margin: 2 2 2 22; text-indent:-19">' . $btag2 . '2. ' . $arr['answer2'] . $bbtag2 . '</p>' . (($_SESSION["TestT$cq"] < $TriesCount) ? '</a>' : '') . '</td></tr>'; |
249 |
|
echo '<tr><td' . ($_SESSION["TestA$cq"] == 3 ? ' class="selectorGreen"' : ' class="selectorBlue"') . '>' . (($_SESSION["TestT$cq"] < $TriesCount) ? '<a href="/?cmd=3">' : '') . '<p style="margin: 2 2 2 22; text-indent:-19">' . $btag3 . '3. ' . $arr['answer3'] . $bbtag3 . '</p>' . (($_SESSION["TestT$cq"] < $TriesCount) ? '</a>' : '') . '</td></tr>'; |
250 |
|
echo '<tr><td' . ($_SESSION["TestA$cq"] == 4 ? ' class="selectorGreen"' : ' class="selectorOrange"') . '>' . (($_SESSION["TestT$cq"] < $TriesCount) ? '<a href="/?cmd=4">' : '') . '<p style="margin: 2 2 2 22; text-indent:-19">' . $btag4 . '4. ' . $arr['answer4'] . $bbtag4 . '</p>' . (($_SESSION["TestT$cq"] < $TriesCount) ? '</a>' : '') . '</td></tr>'; |
251 |
|
if (isset ($_SESSION["TestAllA"]) && $_SESSION["TestAllA"]==1) |
252 |
|
echo '<tr><td bgcolor="#E0E0FF" align="center" colspan="2">Вы ответили на все вопросы.</td></tr>'; |
253 |
|
if ($_SESSION["TestT$cq"] < $TriesCount) |
254 |
|
echo '<tr><td align="center" colspan="2">Выберите вариант ответа кликом по его номеру.<br>Осталось попыток: ' . ($TriesCount-$_SESSION["TestT$cq"]) . '</td></tr>'; |
255 |
|
else echo '<tr><td align="center" colspan="2"><b>Попытки исчерпаны.</b></td></tr>'; |
256 |
|
if ($_SESSION["TestA$cq"] > 0) |
257 |
|
echo '<tr><td align="center" colspan="2">Текущий выбранный ответ отмечен <b>полужирным шрифтом</b>.</td></tr>'; |
258 |
|
// ...и строку с выбором вопроса |
259 |
|
$cqprev = $cq-9; if ($cqprev < 0) $cqprev = 0; |
260 |
|
$cqnext = $cq+9; if ($cqnext >= $vqn) $cqnext = $vqn-1; |
261 |
|
echo '<tr><td align="center" colspan="2">'; |
262 |
|
if (isset($req_display) && $req_display == 'list') |
263 |
|
{ |
264 |
|
echo "<a href=\"?cmd=goto&where=$cqprev\"><<</a> "; |
265 |
|
$cqs = $cq-4; if ($cqs < 0) $cqs = 0; |
266 |
|
$cqe = $cq+4; if ($cqe >= $vqn) $cqe = $vqn-1; |
267 |
|
for ($cqi = $cqs, $cqi1 = $cqs+1; $cqi <= $cqe; $cqi++, $cqi1++) |
268 |
|
{ |
269 |
|
if ($_SESSION["TestA$cqi"] == 0) echo '<b>'; |
270 |
|
echo "<a href=\"?cmd=goto&where=$cqi\">${cqi1}</a> "; |
271 |
|
if ($_SESSION["TestA$cqi"] == 0) echo '</b>'; |
272 |
} |
} |
273 |
else |
echo "<a href=\"?cmd=goto&where=$cqnext\">>></a>"; |
|
{ |
|
|
$subl = mysql_escape_string($req_searchlogin); |
|
|
$result = amysql_query ("SELECT * FROM `$UsersTable` WHERE !(INSTR(`login`,'$subl')=0) ORDER BY `lastname`, `firstname`, `thirdname`"); |
|
274 |
} |
} |
|
if ($result && ($row = mysql_fetch_assoc ($result))) |
|
|
{ |
|
|
echo '<table style="border-color: black; border-width: 1 1 0 1; border-style: solid" width="100%" align="center" cellspacing="0" class="frmLoginText"> |
|
|
<tr bgcolor="#FFE0FF"> |
|
|
<td style="border-width: 0 0 1 0; border-style: solid" align="center">№</td> |
|
|
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Логин</td> |
|
|
<td style="border-width: 0 0 1 1; border-style: solid" align="center">+Тестов</td> |
|
|
<td style="border-width: 0 0 1 1; border-style: solid" align="center">ФИО</td> |
|
|
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Город</td> |
|
|
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Организация</td> |
|
|
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Должность</td> |
|
|
<td style="border-width: 0 0 1 1; border-style: solid" align="center">E-mail</td> |
|
|
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Телефон</td> |
|
|
<td style="border-width: 0 0 1 1; border-style: solid" align="center" width="10%">Опыт работы с ViPNet</td> |
|
|
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Зарегистрирован</td> |
|
|
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Результат</td> |
|
|
</tr>'; |
|
|
$usi = 1; |
|
|
do |
|
|
{ |
|
|
$result2 = amysql_query ("SELECT `result`, CHAR_LENGTH(`answers`) FROM `$ResultsTable` WHERE `uid`=${row['id']} ORDER BY -`date`,-`time` LIMIT 1"); |
|
|
$row2 = false; if ($result2) $row2 = mysql_fetch_row ($result2); |
|
|
echo "<tr> |
|
|
<td style=\"border-width: 0 0 1 0; border-style: solid\" align=\"center\">$usi</td> |
|
|
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">" . ($req_cmd != 'prnusers' ? "<a href=\"javascript:void escape(searchusers.searchlogin.value='${row['login']}');\">" : '') . "${row['login']}" . ($req_cmd != 'prnusers' ? "</a>" : '') . "</td> |
|
|
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['testlimit']}</td> |
|
|
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['lastname']} ${row['firstname']} ${row['thirdname']}</td> |
|
|
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['town']}</td> |
|
|
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['firm']}</td> |
|
|
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['position']}</td> |
|
|
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['email']}</td> |
|
|
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['phone']}</td> |
|
|
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['vipnet']}</td> |
|
|
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['date']}<br>${row['time']}</td> |
|
|
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">" . ($row2 !== false ? floor(100*$row2[0]/$row2[1]) . '%<br>(' . $row2[0] . '/' . $row2[1] . ')' : '') . ($req_cmd != 'prnusers' ? " <a href=\"/admin/?cmd=results&uid=${row['id']}\">...</a>" : '') . " </td> |
|
|
</tr>"; |
|
|
$usi++; |
|
|
} while ($row = mysql_fetch_assoc ($result)); |
|
|
echo '</table>'; |
|
|
$cmdtail = (isset($req_searchdate) && strlen ($req_searchdate) > 0 ? 'searchdate=' . urlencode($req_searchdate) : 'searchlogin=' . urlencode($req_searchlogin)); |
|
|
if ($req_cmd != 'prnusers') |
|
|
echo '<table class="frmLoginText" style="border-color: black; border-width: 0 1 1 1; border-style: solid" bgcolor="#E0E0FF" align="center" cellspacing="0">' . |
|
|
'<tr><td><input type="button" class="frmLoginButton" value="Дать +1 тест" onClick="navigate(\'/admin/?cmd=plustest&' . $cmdtail . '\');"></td><td></td>' . |
|
|
'<td><input type="button" class="frmLoginButton" value="Отнять 1 тест" onClick="navigate(\'/admin/?cmd=minustest&' . $cmdtail . '\');"></td><td></td>' . |
|
|
'<td><input type="button" class="frmLoginButton" value="Убрать тесты" onClick="if (confirm(\'Действительно отнять у выбранных пользователей возможность проходить тесты (до разрешения)?\')) navigate(\'/admin/?cmd=cleartest&' . $cmdtail . '\');"></td><td></td>' . |
|
|
'<td><input type="button" class="frmLoginButton" value="Версия для печати" onClick="navigate(\'/admin/?cmd=prnusers&' . $cmdtail . '\');"></td><td></td>' . |
|
|
'<td><input type="button" class="frmLoginButton" value="Тесты подробно" onClick="navigate(\'/admin/?cmd=prntests&' . $cmdtail . '\');"></td><td></td></tr>' . |
|
|
'</table><br>'; |
|
275 |
else |
else |
276 |
{ |
{ |
277 |
echo '<p class="frmLoginText" align="center"><a href="/admin/?cmd=users&' . $cmdtail . '">Назад</a></p></body></html>'; |
echo '<table align="center" class="frmLoginText" bgcolor="#E0E0FF"><tr><td align="center"' . "colspan=$MatrixWidth>"; |
278 |
exit; |
$cqi = $cq; if ($cqi > 0) $cqi--; |
279 |
|
echo "<a href=\"?cmd=goto&where=$cqi\"><<</a>"; |
280 |
|
$cqi = $cq; if ($cqi < $vqn-1) $cqi++; |
281 |
|
echo " <a href=\"?cmd=goto&where=$cqi\">>></a></td></tr>"; |
282 |
|
$MatrixHeight = ($vqn+$MatrixWidth-1)/$MatrixWidth; |
283 |
|
for ($i = 0, $cqi = 0, $cqi1 = 1; $i < $MatrixHeight; $i++) |
284 |
|
{ |
285 |
|
echo '<tr>'; |
286 |
|
for ($j = 0; $j < $MatrixWidth && $cqi < $vqn; $j++, $cqi++, $cqi1++) |
287 |
|
{ |
288 |
|
echo '<td align="center"'; |
289 |
|
if ($cq == $cqi) echo ' style="border: thin solid"'; |
290 |
|
if ($_SESSION["TestA$cqi"] == 0) echo ' bgcolor="#FFFFFF"'; |
291 |
|
echo '>'; |
292 |
|
if ($_SESSION["TestA$cqi"] == 0) echo '<b>'; |
293 |
|
echo "<a href=\"?cmd=goto&where=$cqi\">${cqi1}</a>"; |
294 |
|
if ($_SESSION["TestA$cqi"] == 0) echo '</b>'; |
295 |
|
echo '</td>'; |
296 |
} |
} |
297 |
|
echo '</tr>'; |
298 |
} |
} |
299 |
else if (!$result) |
echo '</table>'; |
|
$req_cfail = 10; |
|
|
else $req_cfail = 11; |
|
300 |
} |
} |
301 |
else if (($req_cmd == 'results' || $req_cmd == 'prnresults') && isset ($req_uid)) |
echo '</td></tr>'; |
302 |
|
// ...а также кнопочку "закончить тестирование" /она сначала спросит подтверждения/ |
303 |
|
echo '<tr><td valign="center" bgcolor="#E0E0FF" align="center" colspan="2"><form action="?cmd=end" method="POST"><input class="frmLoginButton" name="endtest" type="submit" value="Закончить тестирование"></form></td></tr>'; |
304 |
|
echo '</table>'; |
305 |
|
} |
306 |
|
else // Или ещё нет... |
307 |
{ |
{ |
308 |
// Выдаём таблицу результатов ... |
// Выдаём таблицу результатов ... |
309 |
$result = amysql_query ("SELECT * FROM `$UsersTable` WHERE `id`=$req_uid LIMIT 1"); |
$result = amysql_query ("SELECT * FROM `$UsersTable` WHERE `id`=$cur_user_id LIMIT 1"); |
310 |
$row = mysql_fetch_assoc ($result); |
$row = mysql_fetch_assoc ($result); |
311 |
echo "<table width=\"700\" bgcolor=\"#E0E0FF\" cellspacing=\"0\" style=\"border-color: black; border-width: 1 1 0 1; border-style: solid\" align=\"center\" class=\"frmLoginText\">" |
echo "<table width=\"100%\" bgcolor=\"#E0E0FF\" cellspacing=\"0\" style=\"border-color: black; border-width: 1 1 0 1; border-style: solid\" align=\"center\" class=\"frmLoginText\">" |
312 |
. "<tr><td bgcolor=\"#F0F0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">ФИО</p></td><td bgcolor=\"#F0F0FF\"><p style=\"margin: 2 2 0 2\">${row['lastname']} ${row['firstname']} ${row['thirdname']}</p></td></tr>" |
. "<tr><td bgcolor=\"#F0F0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">ФИО</p></td><td bgcolor=\"#F0F0FF\"><p style=\"margin: 2 2 0 2\">${row['lastname']} ${row['firstname']} ${row['thirdname']}</p></td></tr>" |
313 |
. "<tr><td bgcolor=\"#E0E0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">Город</p></td><td><p style=\"margin: 2 2 0 2\">${row['town']}</p></td></tr>" |
. "<tr><td bgcolor=\"#E0E0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">Город</p></td><td><p style=\"margin: 2 2 0 2\">${row['town']}</p></td></tr>" |
314 |
. "<tr><td bgcolor=\"#F0F0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">Организация</p></td><td bgcolor=\"#F0F0FF\"><p style=\"margin: 2 2 0 2\">${row['firm']}</p></td></tr>" |
. "<tr><td bgcolor=\"#F0F0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">Организация</p></td><td bgcolor=\"#F0F0FF\"><p style=\"margin: 2 2 0 2\">${row['firm']}</p></td></tr>" |
318 |
. "<tr><td bgcolor=\"#F0F0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">Опыт работы с ViPNet</p></td><td bgcolor=\"#F0F0FF\"><p style=\"margin: 2 2 0 2\">${row['vipnet']}</p></td></tr>" |
. "<tr><td bgcolor=\"#F0F0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">Опыт работы с ViPNet</p></td><td bgcolor=\"#F0F0FF\"><p style=\"margin: 2 2 0 2\">${row['vipnet']}</p></td></tr>" |
319 |
. "<tr><td bgcolor=\"#E0E0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">Зарегистрирован</p></td><td><p style=\"margin: 2 2 0 2\">${row['date']} ${row['time']}</p></td></tr>" |
. "<tr><td bgcolor=\"#E0E0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">Зарегистрирован</p></td><td><p style=\"margin: 2 2 0 2\">${row['date']} ${row['time']}</p></td></tr>" |
320 |
. "<tr><td bgcolor=\"#F0F0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">Логин</p></td><td bgcolor=\"#F0F0FF\"><p style=\"margin: 2 2 0 2\">${row['login']}</p></td></tr>"; |
. "<tr><td bgcolor=\"#F0F0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">Логин</p></td><td bgcolor=\"#F0F0FF\"><p style=\"margin: 2 2 0 2\">${row['login']}</p></td></tr>"; |
321 |
$result = amysql_query ("SELECT CHAR_LENGTH(`answers`), `date`, `time`, `result`, `answers`, `varid` FROM `$ResultsTable` WHERE `uid`=$req_uid ORDER BY -`date`, -`time`"); |
$result = amysql_query ("SELECT CHAR_LENGTH(`answers`), `date`, `time`, `result`, `answers`, `varid` FROM `$ResultsTable` WHERE `uid`=$cur_user_id ORDER BY -`date`, -`time`"); |
322 |
$row2 = mysql_fetch_assoc ($result); |
$row2 = mysql_fetch_assoc ($result); |
323 |
$lastrow_d = 0; |
$lastrow_d = 0; |
324 |
if ($result || !$row2) |
if ($result || !$row2) |
338 |
} while ($row = mysql_fetch_assoc ($result)); |
} while ($row = mysql_fetch_assoc ($result)); |
339 |
echo '</table>'; |
echo '</table>'; |
340 |
} |
} |
341 |
if ($cmd != 'prnresults') |
echo '<br>'; |
342 |
echo '<p class="frmLoginText" align="center"><a href="/admin/?cmd=prnresults&uid=' . $req_uid . '">Версия для печати</a> <a href="javascript:history.back();">Назад</a></p></body></html>'; |
$curuid = get_auth_id (); |
343 |
else |
$result = amysql_query ("SELECT `testlimit` FROM `$UsersTable` WHERE `id`='$curuid' LIMIT 1"); |
344 |
{ |
if (!$result) t_err ("Внутренняя ошибка"); |
345 |
echo '<p class="frmLoginText" align="center"><a href="javascript:history.back();">Назад</a></p></body></html>'; |
$row = mysql_fetch_row ($result); |
346 |
exit; |
$testlimit = 1 + $row [0] - 1; |
347 |
} |
// ... количество предписанных тестов ... |
348 |
} |
echo '<table style="border-color: black; border-width: 1; border-style: solid" align="center" width="700" class="frmLoginText" bgcolor="#E0E0FF">'; |
349 |
else if ($cmd == 'prntests') |
echo "<tr><td align=\"center\">Ещё можно пройти тестов: $testlimit</td></tr>"; |
350 |
{ |
if ($testlimit > 0) // ... и если можно - кнопочку "начать тестирование" |
351 |
if (isset ($req_searchdate) && strlen ($req_searchdate) > 0) |
echo '<tr><td valign="center" align="center"><form action="?cmd=start" method="POST"><input class="frmLoginButton" name="starttest" type="submit" value="Начать тестирование"></form></td></tr>'; |
|
{ |
|
|
$req_searchdate = mysql_escape_string ($req_searchdate); |
|
|
$result = amysql_query ("SELECT t1.lastname, t1.firstname, t1.thirdname, t2.* FROM `$UsersTable` AS t1, `$ResultsTable` AS t2 WHERE t1.date >= '$req_searchdate' AND t2.uid=t1.id ORDER BY t1.lastname, t1.firstname, t1.thirdname, -t2.date, -t2.time"); |
|
|
} |
|
|
else |
|
|
{ |
|
|
$subl = mysql_escape_string($req_searchlogin); |
|
|
$result = amysql_query ("SELECT t1.lastname, t1.firstname, t1.thirdname, t2.* FROM `$UsersTable` AS t1, `$ResultsTable` AS t2 WHERE !(INSTR(t1.login,'$subl')=0) AND t2.uid=t1.id ORDER BY t1.lastname, t1.firstname, t1.thirdname, -t2.date, -t2.time"); |
|
|
} |
|
|
$cmdtail = (isset($req_searchdate) && strlen ($req_searchdate) > 0 ? 'searchdate=' . urlencode($req_searchdate) : 'searchlogin=' . urlencode($req_searchlogin)); |
|
|
if ($row = mysql_fetch_assoc ($result)) |
|
|
{ |
|
|
echo '<table width="700" bgcolor="#FFF0E0" cellspacing="0" style="border-color: black; border-width: 1 1 1 1; border-style: solid" align="center" class="frmLoginText">'; |
|
|
$msg = 'Показаны неверные ответы выбранных пользователей'; |
|
|
if (!isset ($req_nohide)) |
|
|
$msg .= ' <a href="?cmd=prntests&' . $cmdtail . '&nohide">(+ неотвеченные...)</a>'; |
|
|
else $msg = 'Показаны неверные и неотвеченные ответы выбранных пользователей <a href="?cmd=prntests&' . $cmdtail . '">(-)</a>'; |
|
|
if (!isset ($req_showall)) |
|
|
$msg .= ' <a href="?cmd=prntests&' . $cmdtail . '&nohide&showall">(все...)</a>'; |
|
|
else |
|
|
{ |
|
|
if (isset ($req_nohide)) |
|
|
$msg = 'Показаны <i>все</i> ответы выбранных пользователей <a href="?cmd=prntests&' . $cmdtail . '&nohide">(- правильные)</a> <a href="?cmd=prntests&' . $cmdtail . '">(-)</a>'; |
|
|
else $msg = 'Показаны ответы выбранных пользователей'; |
|
|
} |
|
|
echo '<tr><td colspan="2" bgcolor="#E0E0FF" align="center"><b>' . $msg . '</b></td></tr>'; |
|
|
$notfirst = 0; |
|
|
while ($row) |
|
|
{ |
|
|
echo '<tr><td bgcolor="#E0E0FF" style="border-width: 1 0 1 0; border-style: solid; border-color: black"><b>' . $row['lastname'] . ' ' . $row ['firstname'] . ' ' . $row ['thirdname'] . ': ' . floor (100 * $row['result'] / strlen ($row ['answers'])) . '%</b></td><td width="150" align="right" bgcolor="#E0E0FF" style="border-width: 1 0 1 0; border-style: solid; border-color: black"><b>' . $row ['date'] . ' ' . $row ['time'] . '</b></td></tr>'; |
|
|
$res2 = amysql_query ("SELECT * FROM `$QuestionsTable` WHERE `varid`=${row['varid']} ORDER BY `id`"); |
|
|
$quests = array (); |
|
|
while ($row2 = mysql_fetch_assoc ($res2)) |
|
|
{ |
|
|
$quests [$row2['id']] = $row2; |
|
|
$quests [$row2['id']]['answer0'] = 'не отвечено'; |
|
|
} |
|
|
$allanswers = true; |
|
|
$noshown = true; |
|
|
$i = 0; |
|
|
foreach ($quests as $cq) |
|
|
{ |
|
|
if (strlen ($row ['answers']) > $i) |
|
|
{ |
|
|
if ($row['answers']{$i} != $cq['rightanswer']) |
|
|
{ |
|
|
$allanswers = false; |
|
|
if ($row['answers']{$i} != 0 || isset ($req_nohide)) |
|
|
{ |
|
|
echo '<tr><td colspan="2">' . $cq ['id'] . '. ' . $cq ['question'] . ' => <font color=red>' . $cq ['answer' . $row['answers']{$i}] . '</font></td></tr>'; |
|
|
$noshown = false; |
|
|
} |
|
|
} |
|
|
else if (isset ($req_showall)) |
|
|
{ |
|
|
echo '<tr><td colspan="2">' . $cq ['id'] . '. ' . $cq ['question'] . ' => <font color=blue>' . $cq ['answer' . $row['answers']{$i}] . '</font></td></tr>'; |
|
|
$noshown = false; |
|
|
} |
|
|
} |
|
|
} |
|
|
if ($allanswers) |
|
|
echo '<tr><td colspan="2">Пользователь ответил на <b>все</b> вопросы правильно! Молодец :)</td></tr>'; |
|
|
else if ($noshown) |
|
|
echo '<tr><td colspan="2">Пользователь не отвечал ни на один вопрос :(</td></tr>'; |
|
|
$row = mysql_fetch_assoc ($result); |
|
|
$notfirst = 1; |
|
|
} |
|
352 |
echo '</table>'; |
echo '</table>'; |
353 |
} |
} |
|
echo '<p class="frmLoginText" align="center">Внимание: для корректного вывода информации текущие вопросы в БД должны соответствовать тем, на которые отвечали выбранные пользователи<br><a href="?cmd=users&' . $cmdtail . '">Назад</a></p></body></html>'; |
|
|
exit; |
|
|
} |
|
354 |
} |
} |
355 |
|
|
356 |
mysql_finish (); |
import_request_variables("gp", "req_"); |
357 |
|
$login_incorrect = false; |
358 |
|
$display_name = false; |
359 |
|
|
360 |
?> |
$refr = false; |
361 |
|
|
362 |
<?php |
if (isset ($req_logout) && get_auth_id () > -1) // уже вошёл |
363 |
if (isset ($req_cok) || isset ($req_cfail)) |
clean_auth (); |
364 |
{ |
else if (isset ($req_loginedit) && isset ($req_passedit)) |
|
echo '<table class="frmLoginText" style="border-color: black; border-width: 1; border-style: solid" width="700" bgcolor="#E0E0FF" align="center" cellspacing="0"><tr><td align="center" bgcolor="#FFC0C0">Результат операции: '; |
|
|
if (isset ($req_cok)) |
|
365 |
{ |
{ |
366 |
if ($req_cok == 0) |
if (!set_auth ($req_loginedit, $req_passedit)) |
367 |
echo 'Инициализация БД прошла успешно.'; |
$login_incorrect = true; |
|
else if ($req_cok == 1) |
|
|
echo 'Файл успешно загружен в БД.'; |
|
|
else if ($req_cok == 2) |
|
|
echo 'Количество предписанных тестов успешно изменено.'; |
|
368 |
} |
} |
369 |
else |
get_auth_id(); |
370 |
|
?> |
371 |
|
<!-- Здесь "заголовок" страницы --> |
372 |
|
|
373 |
|
<html> |
374 |
|
<head> |
375 |
|
<title>Система тестирования слушателей</title> |
376 |
|
<meta name="GENERATOR" content="VMX"> |
377 |
|
<meta name="description" content="Система тестирования слушателей"> |
378 |
|
<meta http-equiv=Content-Type content="text/html; charset=windows-1251"> |
379 |
|
<link rel="stylesheet" href="styles.css"> |
380 |
|
</head> |
381 |
|
<body link=#000000 vlink=#000000 alink=#000000> |
382 |
|
<table cellspacing="5" class="frmLoginText" style="border-color: black; border-width: 1; border-style: solid" width="700" bgcolor="#FFF0E0" align="center" cellspacing="0"> |
383 |
|
<tr><td align="center" style="border-width: 0 0 1 0; border-color: black; border-style: solid"><b><a href="/"><font size="+1" color="#000000">Система тестирования слушателей</font></a></b><br> </td></tr> |
384 |
|
<tr><td > |
385 |
|
|
386 |
|
<!-- Здесь скрипт продолжается --> |
387 |
|
|
388 |
|
<?php |
389 |
|
|
390 |
|
if (!isset($req_logout) && get_auth_id () > -1) // уже вошёл |
391 |
|
$display_name = get_auth_displayname(); |
392 |
|
if ($display_name !== false) |
393 |
{ |
{ |
394 |
if ($req_cfail == 0) |
putFrmLogout ($display_name, !isset($_SESSION['TestStarted']) && (!isset ($req_cmd) || $req_cmd != 'start') || (isset ($req_cmd) && $req_cmd == 'end')); |
395 |
echo 'При инициализации БД произошла ошибка.'; |
Testing (); |
|
else if ($req_cfail == 1) |
|
|
echo 'При загрузке файла в БД произошла ошибка.'; |
|
|
else if ($req_cfail == 2) |
|
|
echo 'Ошибка изменения количества предписанных тестов.'; |
|
|
else if ($req_cfail == 10) |
|
|
echo 'Ошибка запроса к БД при выводе списка пользователей.'; |
|
|
else if ($req_cfail == 11) |
|
|
echo 'Таких пользователей нет.'; |
|
|
} |
|
|
echo '</td></tr></table><br>'; |
|
396 |
} |
} |
397 |
|
else putFrmLogin ($login_incorrect); |
398 |
|
|
399 |
|
mysql_finish (); |
400 |
|
|
401 |
?> |
?> |
402 |
<!-- Статика --> |
|
403 |
<table class="frmLoginText" style="border-color: black; border-width: 1; border-style: solid" width="700" bgcolor="#E0E0FF" align="center" cellspacing="0"> |
<!-- Здесь конец страницы --> |
404 |
<tr><td align="center" bgcolor="#FFF0E0" style="border-width: 0 0 1 0; border-style: solid"><b>Возможные операции</b><br> </td></tr> |
</td></tr> |
405 |
<tr><td align="center"><b>Вывод информации о пользователях</b><br> </td></tr> |
<tr><td class="frmLoginText" align="center" style="border-width: 1 0 0 0; border-color: black; border-style: solid">Powered by VMX, 2006</td></tr> |
|
<form name="searchusers" action="?cmd=users" method="POST"> |
|
|
<tr><td align="center">Логин (пустой=все): <input class="frmLoginEdit" type="text" maxlength="256" name="searchlogin"></td></tr> |
|
|
<tr><td align="center" colspan="2"><b>или зарегистрировавшиеся:</b></td></tr> |
|
|
<tr><td align="center">После YYYY-MM-DD: <input class="frmLoginEdit" type="text" maxlength="256" name="searchdate"></td></tr> |
|
|
<tr><td align="center" style="border-width: 0 0 1 0; border-style: solid"><input name="searchusers" class="frmLoginButton" type="submit" value="Искать пользователей"></td></tr> |
|
|
</form> |
|
|
<tr><td align="center"><b>Загрузка вопросов из текстового файла</b><br> </td></tr> |
|
|
<form name="loadquestfile" action="?cmd=load" enctype="multipart/form-data" method="POST"> |
|
|
<tr><td align="center"><input type="hidden" name="MAX_FILE_SIZE" value="5242880">Файл: <input class="frmLoginEdit" type="file" name="loadfilename"></td></tr> |
|
|
<tr><td align="center"><input type="checkbox" name="loadoverwrite"> Перезаписать БД вопросов</td></tr> |
|
|
<tr><td align="center" style="border-width: 0 0 1 0; border-style: solid"><input name="loadqas" class="frmLoginButton" type="button" value="Загрузить вопросы в БД" onClick="if(document.loadquestfile.loadfilename.value != '') document.loadquestfile.submit(); else alert ('Выберите файл');"></td></tr> |
|
|
</form> |
|
|
<tr><td align="center"><b>Инициализация / очистка базы данных</b><br> </td></tr> |
|
|
<tr><td align="center" style="border-width: 0 0 1 0; border-style: solid"><form><input class="frmLoginButton" type="button" value="Инициализировать БД" onClick="if(confirm('Действительно инициализировать БД заново и стереть все её текущее содержимое, ВКЛЮЧАЯ данные о пользователях и их результатах?')) { navigate('/admin/?cmd=init'); }"></form></td></tr> |
|
|
<tr><td align="center" bgcolor="#FFF0E0">Powered by VMX, 2006</td></tr> |
|
406 |
</table> |
</table> |
407 |
</body> |
</body> |
408 |
</html> |
</html> |