|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : vitus@ice.ru 2:5020/400 27 Jun 2001 11:54:45 To : Alexander Wolf Subject : Re: Hаписание тестов -------------------------------------------------------------------------------- Alexander Wolf <wmaster@bspu.secna.ru> wrote: AW>Доброго времени суток! AW>В связи с этим возникла идея написания обработчика на CGI. AW>Hа первую прикидку необходимо использовать метод POST, а ответы AW>передавать в виде хеша + пару-тройку дополнительных параметров (тесты В виде хэша - не бывает. Читайте документацию на CGI.pm AW>однотипные, но с разным числом ответов). Hаиболее разумный способ генерить наборы popup_menu или radoobutton с именами QUESTION1 QUESTION2 и т.д, а в качестве значения передавать номер ответа. Если таких тестов много, в качестве HIDDEN поля передать номер теста. Сами тесты (в том числе информация о том, какой ответ на какой вопрос является правильным) хранятся на сервере, и информация, которая позволяет подделать правильные ответы к клиенту никогда не попадает. Для хранения этой информации, можно использовать напр. перловый скрипт, определяющий хэш. Еше стоит позаботиться о том, чтобы передать в виде скрытого поля некоторый unique id, который позволит определить время заполнения теста. Эти ID должны генериться случайным образом на сервере при выдаче формы, хранится, например в dbm и уничтожаться по таймауту. Ответ, пришедший без корректного ID (т.е. такого, который есть в базе) считается недействительным. AW>3. Какие могут возникнуть глюконавты в процессе реализации? Любые. Советую взять группу студентов и предложить им приз за взлом теста (выдаваемый по получении подробного описания способа взлома). Если удастся закрыть все первые найденные дырки, а потом в течение месяца никто не взломает, то можно переводить тест в production режим. Я бы рискнул и без этого, но у меня опыт CGI-программирования лет 5. Да, использование модуля CGI.pm - обязательно. Без него глюков будет больше. Прочтение документации на него - тоже обязательно, хотя чтения RFC2616 не отменяет. -- Victor Wagner vitus@ice.ru Chief Technical Officer Office:7-(095)-748-53-88 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus --- ifmail v.2.15dev5 * Origin: FT-center (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/95099e2d67d5.html, оценка из 5, голосов 10
|