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