| |
Переключатель с независимым выбором (checkbox или более коротко — флажок)
имеет одну довольно неприятную особенность, которая иногда может помешать Web-
программисту. Вы, наверное, помните, что когда перед отправкой формы пользова-
тель установил его в выбранное состояние, то сценарию в числе других параметров
приходит пара имя_флажка=значение.
В то же время, если флажок не был установлен пользователем, указанная пара не
по-
сылается. Часто это бывает не совсем то, что нужно. Мы бы хотели, чтобы в невы-
бранном состоянии флажок также присылал данные, но только значение было равно
какой-нибудь специальной величине — например, нулю или пустой строке.
К нашей радости, добиться этого эффекта в PHP довольно несложно. Достаточно
вос-
пользоваться одноименным скрытым полем (hidden) со значением, равным, напри-
мер, нулю, разместив его перед нужным флажком. Вот пример:
Листинг 33.5. Гарантированная установка значений флажков
if(@$Go) {
foreach($Known as $k=>$v)
if($v) echo "Вы знаете язык $k! ";
else echo "Вы не знаете языка $k. ";
}
?>
Теперь в случае, если пользователь не выберет какой-нибудь из флажков, браузер
отправит сценарию пару Known[язык]=0, сгенерированную соответствующим скры-
тым полем, и в массиве $Known создастся соответствующий элемент. Если пользова-
тель выбрал флажок, эта пара также будет послана, но сразу же после нее
последует
пара Known[язык]=1, которая "перекроет" предыдущее значение.
Не включи мы скрытые поля в форму из листинга 33.5, сценарий печатал бы только
сообщения о тех языках, которые "знает пользователь", пропуская языки, ему
"неиз-
вестные". В нашем же случае сценарий реагирует и на неустановленные флажки.
Такой способ немного увеличивает объем данных, передаваемых методом
POST, за счет тех самых пар, которые генерируются скрытыми полями. Впро-
чем, в реальной жизни это "увеличение" практически незаметно (особенно для
POST-форм).
ЧАСТЬ VI.
ПРИЛОЖЕНИЯ
Приложение 1
Файл конфигурации
Apache httpd.conf
Это приложение содержит полный текст файла конфигурации сервера Apache
httpd.conf с комментариями на русском языке.
Содержимое листинга П1.1 полностью соответствует указаниям по настройке
Apache, приведенным в части II книги. Если у вас по какой-то причине не
получит-
ся правильно установить Apache и PHP версии 4, руководствуясь этими указания-
ми, представленный ниже текст файла httpd.conf решит все проблемы.
Несколько слов о формате httpd.conf. Файл состоит из строк, содержащих дирек-
тивы Apache. В одной строке может быть расположено не более одной директивы.
Текст от # aо конца строки считается комментарием и не берется в рассмотрение.
Также игнорируются пустые строки.
При изменении начальной конфигурации файла возможно группирование нескольких
директив в блоки, или контейнеры. При этом Apache поддерживает только ограни-
ченное количество допустимых типов контейнеров. Любой блок-контейнер начинает-
ся строкой вида <ИмяКонтейнера>, расположенной, как обычно, на отдельной стро-
ке, и завершается тэгом ИмяКонтейнера>. Некоторые (но не все) блоки могут
быть вложенными.
Директивы, касающиеся индивидуальных настроек для каталогов или файлов, могут
также помещаться в специальные файлы .htaccess, расположенные в соответст-
вующих местах дерева каталогов сайта. Эти файлы должны иметь тот же формат, что
и httpd.conf. Однако для них имеются особые ограничени
|
|