Иллюстрированный самоучитель по Perl


         

Введенные Вами значения пароля не


confirmation
;}
else {
print«new_form
<htmlxhead><title>Oira6Ka при вводе napc«w</titlex/head>
<ЬойуХпЗ> Введенные Вами значения пароля не совпадают
<br><form method="get" action="/cgi-bin/registrar.cgi">
<pre>
Введите пароль: <input type="password" name="passwordl">
Подтвердите пароль: <input type="password" name="password2">
</pre>
new_form
foreach $key ( keys %FORM) {
if ($key ne "passwordl" && $key ne "password2") {
print "<input type=\"hidden\" name=$key value=$FORM{$key}>\n";
} } print «EndOfHTML
<br><br>
<input type="submit" value="OK"> <input type="reset" value="Отменить">
<i / form></body></html> EndOfHTML ;)
После вывода строки заголовка осуществляется считывание переданной серверу информации в переменную $form_data. В зависимости от метода передачи, эта информация считывается из переменной среды QUERY_STRING (метод GET) или из стандартного ввода программы (метод POST).
Считанная информация декодируется и помещается в ассоциативный массив %FORM.
Отсутствие обязательных данных — регистрационного имени и пароля — проверяется С ПОМОЩЬЮ УСЛОВИЯ if (! $FORM{' regname'} I I ! $FORM{ 'passwordl'}).
В случае отсутствия необходимых данных формируется виртуальный HTML-документ, предлагающий повторить попытку, который и посылается клиенту (рис. 15.4).
Рис 15.4. Ответ сервера в случае отсутствия обязательной информации
При выводе этого документа в операции print использована конструкция "документ здесь". Она позволяет использовать внутри себя символы, которые при заключении в обычные двойные кавычки необходимо маскировать символом "\", например, сами, двойные кавычки ", символы "@", ••$", "%".
Условие elsif ($FORM{ 'passwordl 1 } eq $FORM{ 'password2 ' }} предназначено для проверки совпадения двух копий введенного пользователем пароля. Если значения совпадают, то пользователю посылается сообщение, подтверждающее успешную регистрацию (рис. 15.5).

Содержание  Назад  Вперед