
- •Html-формы
- •1) Создание простой формы
- •Замечание
- •2) Флажок (checkbox)
- •3) Переключатель(radio)
- •4) Кнопка сброса формы(Reset)
- •5) Выпадающий список (select)
- •6) Текстовое поле (text)
- •7) Поле для ввода пароля (password)
- •8) Многострочное поле ввода текста (textarea)
- •9) Скрытое текстовое поле
- •10) Кнопка отправки формы (submit)
- •11) Кнопка для загрузки файлов (browse)
- •12) Рамка (fieldset)
- •Обработка форм
- •I. Ввод данных вручную:
- •II. Ввод данных через цикл:
- •Замечание
I. Ввод данных вручную:
<select class="input" type=text name=years> <option value='2000'>2000</option> <option value='2001'>2001</option> <option value='2002'>2002</option> …………………………………………… <option value='2050'>2050</option> </select>
II. Ввод данных через цикл:
<select class="input" type=text name=years> <?php $year = 2000; for ($i = 0; $i <= 50; $i++) // Цикл от 0 до 50 { $new_years = $year + $i; // Формируем новое значение echo '<option value='.$new_years.'>'.$new_years.'</option>'; //Формируем новую строчку } ?> </select>
Как видно, второй пример с циклом, более компактный. Думаю, не стоит приводить скрипт обработчика данной формы, потому что он обрабатывается точно так же как текстовое поле, т.е. значения списка можно извлечь из суперглобального массива $_POST.
Задача: Загрузка файла на сервер Решение: Необходимо создать HTML форму и PHP – сценарий для обработки файла. Описание:
Создадим HTML-форму для отправки файла на сервер.
<FORM ENCTYPE="multipart/form-data" ACTION="action.php" METHOD=POST> <INPUT NAME="myfile" TYPE="file"> <INPUT TYPE="submit" value="Передать файл"> </FORM>
В данной html-форме присутствует элемент browse, который открывает диалоговое окно для выбора файла для загрузки на сервер. При нажатии на кнопку "Передать файл", файл передается сценарию-обработчику.
Затем необходимо написать сценарий обработчик action.php. Перед написание обработчика необходимо определиться в какой каталог мы будет копировать файл:
<?php if(isset($_FILES["myfile"])) // Если файл существует { $catalog = "../image/"; // Наш каталог if (is_dir($catalog)) // Если такой каталог есть { $myfile = $_FILES["myfile"]["tmp_name"]; // Времменый файл $myfile_name = $_FILES["myfile"]["name"]; // Имя файла if(!copy($myfile, $catalog)) echo 'Ошибка при копировании файла '.$myfile_name // Если неудалось скопировать файл } else mkdir('../image/'); // Если такого каталога нет, то мы его создадим } ?>
Замечание
Если вы доверяете пользователям закачивать на ваш сервер любые файлы, нужно быть предельно осторожным. Злоумышленники могут внедрить «нехороший» код в картинку или файл и отправить на сервер. В таких случаях нужно жестоко контролировать загрузку файлов.
Данный пример демонстрирует создание каталога и копирование файла в этот каталог на сервер.
Также хотел бы продемонстрировать пример с элементом checkbox. Этот элемент немного отличается от других элементов тем, что если не один из элементов checkbox’a не выбран, то суперглобальная переменная $_POST вернет пустое значение:
<FORM ACTION="file.php" METHOD=POST> <input name="mycolor" type="checkbox" value="blue">Синий <input name="mycolor" type="checkbox" value="black">Черный <input name="mycolor" type="checkbox" value="white">Белый <input name="Submit" type=submit value="Выбрать"> </FORM>
<?php if (!empty($_POST['mycolor'])) echo $_POST['mycolor']; // Если выбран хоть 1 элемент else echo "Выберите значение"; ?>