1 |
<html> |
2 |
<head> |
3 |
<title>Администрирование</title> |
4 |
<meta name="GENERATOR" content="VMX"> |
5 |
<meta name="description" content="Главная страница системы администрирования тестов"> |
6 |
<meta http-equiv=Content-Type content="text/html; charset=windows-1251"> |
7 |
<link rel="stylesheet" href="../styles.css"> |
8 |
<?php |
9 |
// Скрипт |
10 |
|
11 |
// Интерфейс администрирования |
12 |
// Copyright (c) 2006, Виталий Филиппов [VMX] |
13 |
|
14 |
include_once '../lib/config.php'; |
15 |
include_once 'init.php'; |
16 |
include_once 'load.php'; |
17 |
|
18 |
import_request_variables ("gp", "req_"); |
19 |
mysql_start (); |
20 |
|
21 |
function get_search_where ($prefix = '') |
22 |
{ |
23 |
global $req_searchdate, $req_searchlogin; |
24 |
if (isset ($req_searchdate) && strlen ($req_searchdate) > 0) |
25 |
{ |
26 |
$req_searchdate = mysql_escape_string ($req_searchdate); |
27 |
return "$prefix`date` >= '$req_searchdate'"; |
28 |
} |
29 |
else |
30 |
{ |
31 |
$subl = mysql_escape_string($req_searchlogin); |
32 |
return "!(INSTR($prefix`login`,'$subl')=0)"; |
33 |
} |
34 |
return "1"; |
35 |
} |
36 |
|
37 |
// Выполняем команду |
38 |
if (isset ($req_cmd)) |
39 |
{ |
40 |
if ($req_cmd == 'init') |
41 |
{ |
42 |
$initres = init_database(); |
43 |
mysql_finish (); |
44 |
if ($initres) |
45 |
echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/?cok=0"\'>'; |
46 |
else echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/?cfail=0"\'>'; |
47 |
} |
48 |
else if ($req_cmd == 'load') |
49 |
{ |
50 |
$ldres = false; |
51 |
if (isset ($_FILES['loadfilename']['tmp_name']) && $_FILES['loadfilename']['size']) |
52 |
{ |
53 |
$quest = load_questions ($_FILES['loadfilename']['tmp_name']); |
54 |
if ($quest) |
55 |
{ |
56 |
if (isset ($req_loadoverwrite) && $req_loadoverwrite == 'on') |
57 |
amysql_query ("TRUNCATE TABLE `$QuestionsTable`"); |
58 |
if (load_into_database ($QuestionsTable, $quest)) |
59 |
$ldres = true; |
60 |
} |
61 |
if (is_uploaded_file ($_FILES['loadfilename']['tmp_name'])) |
62 |
unlink ($_FILES['loadfilename']['tmp_name']); |
63 |
} |
64 |
mysql_finish (); |
65 |
if ($ldres) |
66 |
echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/?cok=1"\'>'; |
67 |
else echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/?cfail=1"\'>'; |
68 |
} |
69 |
else if ($cmd == 'plustest' || $cmd == 'minustest' || $cmd == 'cleartest') |
70 |
{ |
71 |
$where_def = get_search_where (); |
72 |
if ($cmd == 'plustest') |
73 |
$result = amysql_query ("UPDATE `$UsersTable` SET `testlimit`=`testlimit`+1 WHERE $where_def"); |
74 |
else if ($cmd == 'minustest') |
75 |
$result = amysql_query ("UPDATE `$UsersTable` SET `testlimit`=`testlimit`-1 WHERE $where_def AND `testlimit`>0"); |
76 |
else |
77 |
$result = amysql_query ("UPDATE `$UsersTable` SET `testlimit`=0 WHERE $where_def"); |
78 |
mysql_finish (); |
79 |
if ($result) |
80 |
echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/?cok=2"\'>'; |
81 |
else echo '<meta http-equiv=\'refresh\' content=\'0; url="/admin/?cfail=2"\'>'; |
82 |
} |
83 |
} |
84 |
|
85 |
// Продолжение статического содержимого |
86 |
?> |
87 |
</head> |
88 |
<body link="#000000" vlink="#000000" alink="#000000" bgcolor="#FFFFFF" text="#000000"> |
89 |
<table class="frmLoginText" style="border-color: black; border-width: 1; border-style: solid" width="700" bgcolor="#E0E0FF" align="center" cellspacing="0"> |
90 |
<tr><td align="center" bgcolor="#FFF0E0"><b><a href="/admin/"><font size="+1" color="#000000">Система администрирования тестирования слушателей</font></a></b><br> </td></tr> |
91 |
</table><br> |
92 |
<?php |
93 |
// Продолжение скрипта |
94 |
|
95 |
// Функция вывода информации о пользователях |
96 |
function print_users_info ($where_def = '1', $cmdtail = '', $print_version = false, $users_table = false, $results_table = false, $additional_where = '') |
97 |
{ |
98 |
global $result, $req_cmd, $req_cfail, $UsersTable, $ResultsTable; |
99 |
if ($users_table === false) $users_table = $UsersTable; |
100 |
if ($results_table === false) $results_table = $ResultsTable; |
101 |
$result = amysql_query ("SELECT * FROM `$users_table` WHERE $where_def $additional_where ORDER BY `lastname`, `firstname`, `thirdname`"); |
102 |
if ($result && ($row = mysql_fetch_assoc ($result))) |
103 |
{ |
104 |
echo '<table style="border-color: black; border-width: 1 1 0 1; border-style: solid" width="100%" align="center" cellspacing="0" class="frmLoginText"> |
105 |
<tr bgcolor="#FFE0FF"> |
106 |
<td style="border-width: 0 0 1 0; border-style: solid" align="center">№</td> |
107 |
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Логин</td> |
108 |
<td style="border-width: 0 0 1 1; border-style: solid" align="center">+Тестов</td> |
109 |
<td style="border-width: 0 0 1 1; border-style: solid" align="center">ФИО</td> |
110 |
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Город</td> |
111 |
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Организация</td> |
112 |
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Должность</td> |
113 |
<td style="border-width: 0 0 1 1; border-style: solid" align="center">E-mail</td> |
114 |
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Телефон</td> |
115 |
<td style="border-width: 0 0 1 1; border-style: solid" align="center" width="10%">Опыт работы с ViPNet</td> |
116 |
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Зарегистрирован</td> |
117 |
<td style="border-width: 0 0 1 1; border-style: solid" align="center">Результат</td> |
118 |
</tr> |
119 |
<script language="JavaScript"> |
120 |
<!-- |
121 |
function setlogin (newlogin) |
122 |
{ |
123 |
searchusers.searchlogin.value=newlogin; |
124 |
searchusers.searchlogin.focus(); |
125 |
} |
126 |
--> |
127 |
</script>'; |
128 |
$usi = 1; |
129 |
do |
130 |
{ |
131 |
$result2 = amysql_query ("SELECT `result`, CHAR_LENGTH(`answers`) FROM `$results_table` WHERE `uid`=${row['id']} $additional_where ORDER BY -`date`,-`time` LIMIT 1"); |
132 |
$row2 = false; if ($result2) $row2 = mysql_fetch_row ($result2); |
133 |
echo "<tr> |
134 |
<td style=\"border-width: 0 0 1 0; border-style: solid\" align=\"center\">$usi</td> |
135 |
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">" . (!$print_version ? "<a href=\"javascript:void setlogin ('${row['login']}');\">" : '') . "${row['login']}" . (!$print_version ? "</a>" : '') . "</td> |
136 |
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['testlimit']}</td> |
137 |
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['lastname']} ${row['firstname']} ${row['thirdname']}</td> |
138 |
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['town']}</td> |
139 |
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['firm']}</td> |
140 |
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['position']}</td> |
141 |
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['email']}</td> |
142 |
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['phone']}</td> |
143 |
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['vipnet']}</td> |
144 |
<td style=\"border-width: 0 0 1 1; border-style: solid\" align=\"center\">${row['date']}<br>${row['time']}</td> |
145 |
<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] . ')' : '') . (!$print_version ? " <a href=\"/admin/?cmd=results&uid=${row['id']}\">...</a>" : '') . " </td> |
146 |
</tr>"; |
147 |
$usi++; |
148 |
} while ($row = mysql_fetch_assoc ($result)); |
149 |
echo '</table>'; |
150 |
if (!$print_version) |
151 |
echo '<table class="frmLoginText" style="border-color: black; border-width: 0 1 1 1; border-style: solid" bgcolor="#E0E0FF" align="center" cellspacing="0">' . |
152 |
'<tr><td><input type="button" class="frmLoginButton" value="Дать +1 тест" onClick="navigate(\'/admin/?cmd=plustest&' . $cmdtail . '\');"></td><td></td>' . |
153 |
'<td><input type="button" class="frmLoginButton" value="Отнять 1 тест" onClick="navigate(\'/admin/?cmd=minustest&' . $cmdtail . '\');"></td><td></td>' . |
154 |
'<td><input type="button" class="frmLoginButton" value="Убрать тесты" onClick="if (confirm(\'Действительно отнять у выбранных пользователей возможность проходить тесты (до разрешения)?\')) navigate(\'/admin/?cmd=cleartest&' . $cmdtail . '\');"></td><td></td>' . |
155 |
'<td><input type="button" class="frmLoginButton" value="Версия для печати" onClick="navigate(\'/admin/?cmd=prnusers&' . $cmdtail . '\');"></td><td></td>' . |
156 |
'<td><input type="button" class="frmLoginButton" value="Тесты подробно" onClick="navigate(\'/admin/?cmd=prntests&' . $cmdtail . '\');"></td><td></td></tr>' . |
157 |
'</table><br>'; |
158 |
else |
159 |
{ |
160 |
echo '<p class="frmLoginText" align="center"><a href="/admin/?cmd=users&' . $cmdtail . '">Назад</a></p></body></html>'; |
161 |
exit; |
162 |
} |
163 |
} |
164 |
else if (!$result) |
165 |
$req_cfail = 10; |
166 |
else $req_cfail = 11; |
167 |
} |
168 |
|
169 |
// Вывод информации о пользователе и всех его результатов кратко |
170 |
function print_results_info ($userid = 1, $print_version = false, $users_table = false, $results_table = false, $additional_where = '') |
171 |
{ |
172 |
global $UsersTable, $ResultsTable; |
173 |
if ($users_table === false) $users_table = $UsersTable; |
174 |
if ($results_table === false) $results_table = $ResultsTable; |
175 |
// Выдаём таблицу результатов ... |
176 |
$result = amysql_query ("SELECT * FROM `$users_table` WHERE `id`=$userid $additional_where LIMIT 1"); |
177 |
$row = mysql_fetch_assoc ($result); |
178 |
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\">" |
179 |
. "<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>" |
180 |
. "<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>" |
181 |
. "<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>" |
182 |
. "<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['position']}</p></td></tr>" |
183 |
. "<tr><td bgcolor=\"#F0F0FF\" style=\"border-width: 0 0 0 0; border-style: solid\"><p style=\"margin: 2 2 0 2\">E-mail</p></td><td bgcolor=\"#F0F0FF\"><p style=\"margin: 2 2 0 2\">${row['email']}</p></td></tr>" |
184 |
. "<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['phone']}</p></td></tr>" |
185 |
. "<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>" |
186 |
. "<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>" |
187 |
. "<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>"; |
188 |
$result = amysql_query ("SELECT CHAR_LENGTH(`answers`), `date`, `time`, `result`, `answers`, `varid` FROM `$results_table` WHERE `uid`=$userid $additional_where ORDER BY -`date`, -`time`"); |
189 |
$row2 = mysql_fetch_assoc ($result); |
190 |
$lastrow_d = 0; |
191 |
if ($result || !$row2) |
192 |
$lastrow_d = 1; |
193 |
echo "<tr><td bgcolor=\"#E0E0FF\" style=\"border-width: 0 0 $lastrow_d 0; border-style: solid\"><p style=\"margin: 2 2 2 2\">Осталось тестов</p></td><td style=\"border-width: 0 0 $lastrow_d 0; border-style: solid\"><p style=\"margin: 2 2 2 2\">${row['testlimit']}</p></td></tr></table><br>"; |
194 |
$row = $row2; |
195 |
if ($result && $row) |
196 |
{ |
197 |
$crcnt = 1 + $row['CHAR_LENGTH(`answers`)'] - 1; |
198 |
echo '<table class="frmLoginText" cellspacing="0" style="border-color: black; border-width: 1; border-style: solid" align="center" width="700" bgcolor="#F0F0FF">'; |
199 |
echo '<tr><td bgcolor="#E0E0FF" width="25%" style="border-width: 0 1 1 0; border-style: solid" align="center">Вариант теста</td><td width="25%" bgcolor="#E0E0FF" style="border-width: 0 1 1 0; border-style: solid" align="center">Время</td><td width="25%" bgcolor="#E0E0FF" style="border-width: 0 1 1 0; border-style: solid" align="center">Дата</td><td width="25%" bgcolor="#E0E0FF" style="border-width: 0 0 1 0; border-style: solid" align="center">Результат</td></tr>'; |
200 |
do |
201 |
{ |
202 |
$crres = 1 + $row['result'] - 1; |
203 |
$crper = 100 * $crres / $crcnt; |
204 |
echo "<tr><td align=\"center\">${row['varid']}</td><td align=\"center\">${row['time']}</td><td align=\"center\">${row['date']}</td><td align=\"center\">$crper% ($crres / $crcnt)</td></tr>"; |
205 |
} while ($row = mysql_fetch_assoc ($result)); |
206 |
echo '</table>'; |
207 |
} |
208 |
if (!$print_version) |
209 |
echo '<p class="frmLoginText" align="center"><a href="/admin/?cmd=prnresults&uid=' . $userid . '">Версия для печати</a> <a href="javascript:history.back();">Назад</a></p></body></html>'; |
210 |
else |
211 |
{ |
212 |
echo '<p class="frmLoginText" align="center"><a href="javascript:history.back();">Назад</a></p></body></html>'; |
213 |
exit; |
214 |
} |
215 |
} |
216 |
|
217 |
// Вывод всех результатов пользователей детально. where_def должно быть относительно таблицы t1, |
218 |
// то есть WHERE-определение вида t1.id=1 а не `id`=1; для additional_where возможности ограничены :) потому что оно |
219 |
// здесь может состоять только вида `ПОЛЕ`=ЗНАЧЕНИЕ, т.к в начало к нему приписывается |
220 |
function print_tests_detailed_info ($where_def, $cmdtail, $users_table = false, $results_table = false, $questions_table = false, $additional_where = false) |
221 |
{ |
222 |
global $UsersTable, $ResultsTable, $QuestionsTable, $req_showall, $req_nohide; |
223 |
if ($users_table === false) $users_table = $UsersTable; |
224 |
if ($results_table === false) $results_table = $ResultsTable; |
225 |
if ($questions_table === false) $questions_table = $QuestionsTable; |
226 |
if ($additional_where !== false) $addwh = "AND t1.$additional_where AND t2.$additional_where"; else $addwh = ''; |
227 |
$result = amysql_query ("SELECT t1.lastname, t1.firstname, t1.thirdname, t2.* FROM `$users_table` AS t1, `$results_table` AS t2 WHERE $where_def $addwh AND t2.uid=t1.id ORDER BY t1.lastname, t1.firstname, t1.thirdname, -t2.date, -t2.time"); |
228 |
if ($row = mysql_fetch_assoc ($result)) |
229 |
{ |
230 |
echo '<table width="900" bgcolor="#FFF0E0" cellspacing="0" style="border-color: black; border-width: 1 1 1 1; border-style: solid" align="center" class="frmLoginText">'; |
231 |
$msg = 'Показаны неверные ответы выбранных пользователей'; |
232 |
if (!isset ($req_nohide)) |
233 |
$msg .= ' <a href="?cmd=prntests&' . $cmdtail . '&nohide">(+ неотвеченные...)</a>'; |
234 |
else $msg = 'Показаны неверные и неотвеченные ответы выбранных пользователей <a href="?cmd=prntests&' . $cmdtail . '">(-)</a>'; |
235 |
if (!isset ($req_showall)) |
236 |
$msg .= ' <a href="?cmd=prntests&' . $cmdtail . '&nohide&showall">(все...)</a>'; |
237 |
else |
238 |
{ |
239 |
if (isset ($req_nohide)) |
240 |
$msg = 'Показаны <i>все</i> ответы выбранных пользователей <a href="?cmd=prntests&' . $cmdtail . '&nohide">(- правильные)</a> <a href="?cmd=prntests&' . $cmdtail . '">(-)</a>'; |
241 |
else $msg = 'Показаны ответы выбранных пользователей'; |
242 |
} |
243 |
echo '<tr><td colspan="2" bgcolor="#E0E0FF" align="center"><b>' . $msg . '</b></td></tr>'; |
244 |
$notfirst = 0; |
245 |
while ($row) |
246 |
{ |
247 |
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>'; |
248 |
if ($additional_where !== false) $addwh = 'AND ' . $additional_where; else $addwh = ''; |
249 |
$res2 = amysql_query ("SELECT * FROM `$questions_table` WHERE `varid`=${row['varid']} $addwh ORDER BY `id`"); |
250 |
$quests = array (); |
251 |
while ($row2 = mysql_fetch_assoc ($res2)) |
252 |
{ |
253 |
$quests [$row2['id']] = $row2; |
254 |
$quests [$row2['id']]['answer0'] = 'не отвечено'; |
255 |
} |
256 |
$allanswers = true; |
257 |
$noshown = true; |
258 |
$i = 0; |
259 |
foreach ($quests as $cq) |
260 |
{ |
261 |
if (strlen ($row ['answers']) > $i) |
262 |
{ |
263 |
if ($row['answers']{$i} != $cq['rightanswer']) |
264 |
{ |
265 |
$allanswers = false; |
266 |
if ($row['answers']{$i} != 0 || isset ($req_nohide)) |
267 |
{ |
268 |
echo '<tr><td colspan="2">' . ($i+1) . '. ' . $cq ['question'] . ' => <font color=red>' . $cq ['answer' . $row['answers']{$i}] . '</font></td></tr>'; |
269 |
$noshown = false; |
270 |
} |
271 |
} |
272 |
else if (isset ($req_showall)) |
273 |
{ |
274 |
echo '<tr><td colspan="2">' . ($i+1) . '. ' . $cq ['question'] . ' => <font color=blue>' . $cq ['answer' . $row['answers']{$i}] . '</font></td></tr>'; |
275 |
$noshown = false; |
276 |
} |
277 |
} |
278 |
$i++; |
279 |
} |
280 |
if ($allanswers) |
281 |
echo '<tr><td colspan="2">Пользователь ответил на <b>все</b> вопросы правильно! Молодец :)</td></tr>'; |
282 |
else if ($noshown) |
283 |
echo '<tr><td colspan="2">Пользователь не отвечал ни на один вопрос :(</td></tr>'; |
284 |
$row = mysql_fetch_assoc ($result); |
285 |
$notfirst = 1; |
286 |
} |
287 |
echo '</table>'; |
288 |
} |
289 |
echo '<p class="frmLoginText" align="center">Внимание: для корректного вывода информации текущие вопросы в БД должны соответствовать тем, на которые отвечали выбранные пользователи<br><a href="?cmd=users&' . $cmdtail . '">Назад</a></p></body></html>'; |
290 |
exit; |
291 |
} |
292 |
|
293 |
// Выполняем команды, связанные с выводом информации |
294 |
if (isset ($req_cmd)) |
295 |
{ |
296 |
$where_def = get_search_where (); |
297 |
$cmdtail = (isset($req_searchdate) && strlen ($req_searchdate) > 0 ? 'searchdate=' . urlencode($req_searchdate) : 'searchlogin=' . urlencode($req_searchlogin)); |
298 |
if ($req_cmd == 'users' || $req_cmd == 'prnusers') |
299 |
print_users_info ($where_def, $cmdtail, $req_cmd == 'prnusers'); |
300 |
else if (($req_cmd == 'results' || $req_cmd == 'prnresults') && isset ($req_uid)) |
301 |
print_results_info ($req_uid, $req_cmd == 'prnresults'); |
302 |
else if ($cmd == 'prntests') |
303 |
{ |
304 |
$where_def = get_search_where ('t1.'); |
305 |
print_tests_detailed_info ($where_def, $cmdtail); |
306 |
} |
307 |
} |
308 |
|
309 |
mysql_finish (); |
310 |
|
311 |
// Выводим статусные сообщения |
312 |
if (isset ($req_cok) || isset ($req_cfail)) |
313 |
{ |
314 |
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">Результат операции: '; |
315 |
if (isset ($req_cok)) |
316 |
{ |
317 |
if ($req_cok == 0) |
318 |
echo 'Инициализация БД прошла успешно.'; |
319 |
else if ($req_cok == 1) |
320 |
echo 'Файл успешно загружен в БД.'; |
321 |
else if ($req_cok == 2) |
322 |
echo 'Количество предписанных тестов успешно изменено.'; |
323 |
} |
324 |
else |
325 |
{ |
326 |
if ($req_cfail == 0) |
327 |
echo 'При инициализации БД произошла ошибка.'; |
328 |
else if ($req_cfail == 1) |
329 |
echo 'При загрузке файла в БД произошла ошибка.'; |
330 |
else if ($req_cfail == 2) |
331 |
echo 'Ошибка изменения количества предписанных тестов.'; |
332 |
else if ($req_cfail == 10) |
333 |
echo 'Ошибка запроса к БД при выводе списка пользователей.'; |
334 |
else if ($req_cfail == 11) |
335 |
echo 'Таких пользователей нет.'; |
336 |
} |
337 |
echo '</td></tr></table><br>'; |
338 |
} |
339 |
error_reporting (E_ALL & ~E_NOTICE); |
340 |
// Статическое содержимое |
341 |
?> |
342 |
<table class="frmLoginText" style="border-color: black; border-width: 1; border-style: solid" width="700" bgcolor="#E0E0FF" align="center" cellspacing="0"> |
343 |
<tr><td align="center" bgcolor="#FFF0E0" style="border-width: 0 0 1 0; border-style: solid"><b>Возможные операции</b><br> </td></tr> |
344 |
<tr><td align="center"><b>Вывод информации о пользователях</b><br> </td></tr> |
345 |
<form name="searchusers" action="?cmd=users" method="POST"> |
346 |
<tr><td align="center">Логин (пустой=все): <input class="frmLoginEdit" type="text" maxlength="256" name="searchlogin" onChange="(document.getElementById('searchdate')).value='';" onClick="(document.getElementById('searchdate')).value='';" value=<?php echo "\"$req_searchlogin\""; ?>></td></tr> |
347 |
<tr><td align="center" colspan="2"><b>или зарегистрировавшиеся:</b></td></tr> |
348 |
<tr><td align="center">После YYYY-MM-DD: <input class="frmLoginEdit" type="text" maxlength="256" id="searchdate" name="searchdate" value=<?php echo "\"$req_searchdate\""; ?>></td></tr> |
349 |
<tr><td align="center" style="border-width: 0 0 1 0; border-style: solid"><input name="searchusers" class="frmLoginButton" type="submit" value="Искать пользователей"></td></tr> |
350 |
</form> |
351 |
<tr><td align="center"><b>Загрузка вопросов из текстового файла</b><br> </td></tr> |
352 |
<form name="loadquestfile" action="?cmd=load" enctype="multipart/form-data" method="POST"> |
353 |
<tr><td align="center"><input type="hidden" name="MAX_FILE_SIZE" value="5242880">Файл: <input class="frmLoginEdit" type="file" name="loadfilename"></td></tr> |
354 |
<tr><td align="center">Вариант этих вопросов: <input type="text" name="loadvariant" class="frmLoginEdit" size="3" maxlength="3" value="1"></td></tr> |
355 |
<tr><td align="center"><input type="checkbox" name="loadoverwrite"> Перезаписать БД вопросов</td></tr> |
356 |
<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.loadvariant.value != '') document.loadquestfile.submit(); else alert ('Выберите файл и вариант');"></td></tr> |
357 |
</form> |
358 |
<tr><td align="center"><b>Инициализация / очистка базы данных</b><br> </td></tr> |
359 |
<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> |
360 |
<tr><td align="center" bgcolor="#FFF0E0">Powered by VMX, 2006</td></tr> |
361 |
</table> |
362 |
</body> |
363 |
</html> |