Ваш пароль был изменен. Ожидайте, что ваш браузер предложит вам

для этого нового пароля, когда вы продолжите просматривать этот сайт.

EOF3

}

}

открыть (T, 'template.html');

пока (<T>) {

с/\$(\w+)/определено($par{$1})

Распечатать;

?$par{$l}

: ''/гео;

}

шкаф);

Отправьте подтверждающее сообщение через шаблон. Сделанный.

Наконец, мы показываем пример файла доступа в каталоге.

.htaccess

AuthName my-member-wiki

Основной тип авторизации

AuthUserFile /home/httpd/passwd/myauthwiki

требовать действительного пользователя

Индекс каталога wiki.cgi

Этот (скрытый) файл в каталоге wiki указывает следующее по порядку:

• Имя приглашения, отображаемое в диалоговом окне входа в систему.

• Вид авторизации

• Где находится файл имени/пароля

• Каких пользователей допускать (пользователей с правильным паролем)

• Файл, используемый при запросах на просмотр, не указывает файл, только

каталог

Последнее эквивалентно запросу URL к обычному веб-каталогу, получающему

страница по умолчанию (обычно index.html). Здесь это означает, что неопределенный запрос к

вики-каталог эквивалентен запросу просмотра, потому что он вызывает


240

ПРОВЕРЕННЫЕ КОМПОНЕНТЫ WIKI

модуль. Без указания этого поведения по умолчанию может произойти любой из двух результатов:

в зависимости от того, защищен каталог или нет:

• «Запрещенное» сообщение в клиентском браузере

• Список каталогов всех имеющихся файлов

Ни то, ни другое поведение не является особенно желательным.

При запуске вики в среде Windows обратите внимание, что пароль

шифрование по методу UNIX не поддерживалось некоторыми ранее

версии perl для 32-битной Windows.


ГЛАВА

8

Альтернативы и

Расширения

После глубокого анализа QuickiWiki будет полезно взглянуть на некоторые

альтернативные способы закодировать «ту же» базовую вики и ввести еще несколько

мощные расширения базовой функциональности.

В этой главе основное внимание уделяется модели разбора запросов, а не

модульная QuickiWiki. Структуры кода не очень далеко отстоят друг от друга.

другой, однако, и программисту со средним опытом не составит труда

переписать код из одного формата в другой. В этой реализации главное

разница в том, что вся функциональность, по сути, содержится в одном файле скрипта,

с различными «модулями», выраженными в виде кластеров подпрограмм. С точки зрения пользователя

зрения, здесь вы не увидите ссылки "голый URL" для вызова отдельного

модули для разных функций. Вместо этого этот контроль выбора скрыт в запросе

параметры, переданные на тот же URL скрипта.