subversion://[vpntest]/release/2.0/WWW/index.php Log in
ViewVC logotype

Annotate of /release/2.0/WWW/index.php

Parent Directory Parent Directory | Revision Log Revision Log

Revision 6 - (show annotations) (download) (as text)
Sun Feb 17 15:04:40 2008 MSK (12 years, 11 months ago) by vitalif
Original Path: head/WWW/index.php
File MIME type: text/x-php; charset=windows-1251
File size: 20643 byte(s)
Commit release 1.1

1 <?php
2
3 // Интерфейс аутентификации + тестирования
4 // Copyright (c) 2006, Виталий Филиппов [VMX]
5
6 include_once 'lib/config.php';
7 include_once 'lib/auth_sc.php';
8 error_reporting (E_ALL & ~E_NOTICE);
9 mysql_start();
10
11 function delnull (&$a)
12 {
13 for ($i = 0; $i < count ($a); $i++)
14 {
15 if (strlen($a[$i]) == 0)
16 {
17 for ($j = $i; $j < count ($a)-1; $j++)
18 $a[$j] = $a[$j+1];
19 unset ($a[count($a)-1]);
20 }
21 }
22 }
23
24 function putFrmLogin ($login_incorrect)
25 {
26 global $phpbb_path;
27 $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
46 function putFrmLogout ($name, $lobtn)
47 {
48 $str = query_str_add ($_SERVER['QUERY_STRING'], 'logout');
49 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
57 function t_err ($str)
58 {
59 echo '<p align="center">' . $str . '</p>';
60 exit;
61 }
62
63 function Testing ()
64 {
65 global $result, $QuestionsTable, $ResultsTable, $UsersTable;
66 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 // Тестирование уже начато
168 if (isset ($_SESSION['TestStarted']) && $_SESSION['TestStarted'] == 1)
169 {
170 $vr = $_SESSION['TestVar'];
171 $cq = $_SESSION['TestCurQ'];
172 $vqn = $_SESSION['TestQCount'];
173 echo '<table bgcolor="#FFF0E0" width="700" cellspacing="1" class="frmLoginText" align="center">';
174 // Выдаём текущий вариант
175 echo '<tr><td align="center" bgcolor="#E0E0FF" colspan="2">Идёт тестирование';
176 if (isset ($TimeLimit) && $TimeLimit > 0)
177 {
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 if ($remain < 5*60)
185 echo "; <font color=#FF4040><b>ВНИМАНИЕ!</b></font> ";
186 else echo "; ";
187 echo "осталось времени: $remhr:$remmin:$remsec";
188 }
189 if ($_SESSION['TestVarCount'] > 1)
190 echo "; ваш вариант: $vr";
191 echo '</td></tr>';
192 // Выполняем команды, которые работают только в тесте
193 if (isset ($req_cmd))
194 {
195 if ($req_cmd == '1' && $_SESSION["TestA$cq"] != 1 && $_SESSION["TestT$cq"] < $TriesCount)
196 {
197 $_SESSION["TestT$cq"]++;
198 $_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\">&lt;&lt;</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 echo "<a href=\"?cmd=goto&where=$cqnext\">&gt;&gt;</a>";
274 }
275 else
276 {
277 echo '<table align="center" class="frmLoginText" bgcolor="#E0E0FF"><tr><td align="center"' . "colspan=$MatrixWidth>";
278 $cqi = $cq; if ($cqi > 0) $cqi--;
279 echo "<a href=\"?cmd=goto&where=$cqi\">&lt;&lt;</a>";
280 $cqi = $cq; if ($cqi < $vqn-1) $cqi++;
281 echo " <a href=\"?cmd=goto&where=$cqi\">&gt;&gt;</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 echo '</table>';
300 }
301 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`=$cur_user_id LIMIT 1");
310 $row = mysql_fetch_assoc ($result);
311 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>"
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>"
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>"
315 . "<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>"
316 . "<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>"
317 . "<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>"
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>"
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>"
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>";
321 $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);
323 $lastrow_d = 0;
324 if ($result || !$row2)
325 $lastrow_d = 1;
326 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>";
327 $row = $row2;
328 if ($result && $row)
329 {
330 $crcnt = 1 + $row['CHAR_LENGTH(`answers`)'] - 1;
331 echo '<table class="frmLoginText" cellspacing="0" style="border-color: black; border-width: 1; border-style: solid" align="center" width="700" bgcolor="#F0F0FF">';
332 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>';
333 do
334 {
335 $crres = 1 + $row['result'] - 1;
336 $crper = 100 * $crres / $crcnt;
337 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>";
338 } while ($row = mysql_fetch_assoc ($result));
339 echo '</table>';
340 }
341 echo '<br>';
342 $curuid = get_auth_id ();
343 $result = amysql_query ("SELECT `testlimit` FROM `$UsersTable` WHERE `id`='$curuid' LIMIT 1");
344 if (!$result) t_err ("Внутренняя ошибка");
345 $row = mysql_fetch_row ($result);
346 $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 echo "<tr><td align=\"center\">Ещё можно пройти тестов: $testlimit</td></tr>";
350 if ($testlimit > 0) // ... и если можно - кнопочку "начать тестирование"
351 echo '<tr><td valign="center" align="center"><form action="?cmd=start" method="POST"><input class="frmLoginButton" name="starttest" type="submit" value="Начать тестирование"></form></td></tr>';
352 echo '</table>';
353 }
354 }
355
356 import_request_variables("gp", "req_");
357 $login_incorrect = false;
358 $display_name = false;
359
360 $refr = false;
361
362 if (isset ($req_logout) && get_auth_id () > -1) // уже вошёл
363 clean_auth ();
364 else if (isset ($req_loginedit) && isset ($req_passedit))
365 {
366 if (!set_auth ($req_loginedit, $req_passedit))
367 $login_incorrect = true;
368 }
369 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>&nbsp;</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 putFrmLogout ($display_name, !isset($_SESSION['TestStarted']) && (!isset ($req_cmd) || $req_cmd != 'start') || (isset ($req_cmd) && $req_cmd == 'end'));
395 Testing ();
396 }
397 else putFrmLogin ($login_incorrect);
398
399 mysql_finish ();
400
401 ?>
402
403 <!-- Здесь конец страницы -->
404 </td></tr>
405 <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>
406 </table>
407 </body>
408 </html>
409 <!-- А здесь совсем конец -->