Отправляет email-рассылки с помощью сервиса Sendsay

PHP без проблем

  Все выпуски  

PHP без проблем: Обработка форм


06.05.08

Обработка форм

Как по расписанию, приветствую Вас свежим выпуском рассылки "PHP без проблем". Не найдя никаких пожеланий в комментариях блога, я выбрал сегодняшнюю тему — обработка форм. Советую побороть лень и скромность и оставить свои пожелания/коомментарии.

Все данные из полей формы PHP помещает в глобальный массив $_REQUEST. Получить их оттуда труда не составит. Есть одна трудность: имеются элементы формы с одинаковыми именами, и можно выбрать сразу несколько значений (поставить несколько флажков), а в массив запишется только последнее значение. Выход: передать не пару «имя = значение», а массив со значениями данного поля
Массив[‘имя’] = значение1&Массив[‘имя’] = значение2…
PHP увидит попытку создания автомассива и создаст запись $_REQUEST[‘Массив’] типа «массив». В результате ничего не пропало. А еще давайте посмотрим, как можно загрузить файл на сервер.

Файл form.php

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=Windows-1251">
<title>Работа с формами</title>
</head>
<body>

<?php
//вначале проверим нужно ли загружать файл
if (@$_REQUEST['option'] == "load") { // если нужно
$dir = "file";
mkdir($dir, 0755); //создаем папку

$tmp = $_FILES['file']['tmp_name'];//здесь храниться имя файла
if (@file_exists($tmp)) {
$data = $_FILES['file']['name'];
copy($_FILES['file']['tmp_name'], "$dir/".$data);
if(isset($data))
echo "<p>Файл $data загружен</p>";
}
}
if (@$_REQUEST['go']) { //если кнопка нажата
foreach (@$_REQUEST['known'] as $k=>$v) { //печатаем флажки
if($v) echo "Птичка $k поставлена<br>";
else echo "Птичка $k не поставлена<br>";
}
echo "Содержание текстового поля: ".@$_REQUEST['textfield']."<br>";
echo "Содержание текстового блока: ".@$_REQUEST['textarea']."<br><br>";
}
?>

Тестовая форма<br>

<FORM ACTION="form.php" METHOD="POST" NAME="tstform" enctype="multipart/form-data">
<input type="text" name="textfield" value="Текст"><br>
<TEXTAREA NAME="textarea" WRAP="virtual" COLS="60" ROWS="10">Текстовый блок</TEXTAREA><br>

<input type=hidden name="known[1]" value="0">
<input type=checkbox name="known[1]" value="1">Птичка 1<br>
<input type=hidden name="known[2]" value="0">
<input type=checkbox name="known[2]" value="1">Птичка 2<br>

<input type="radio" name="option" value="0" CHECKED>Не загружать файл<br>
<input type="radio" name="option" value="load">Загрузить файл
<input type="file" name="file" value=""><br>
</select><br>
<INPUT TYPE="submit" NAME="go" VALUE="Отправить"><br>
</FORM>

</body>
</html>

Обратите внимание на скрытые поля hidden, если какая-то «птичка» не будет выбрана, то будут отправлено значение этого поля равное нулю, и мы сможем определить, что этот пункт не помечен. Советую на практике испытать этот скрипт и тщательно все проанализировать.

Немного рекламы
  Поиск:   например, мтс или безопасн*
  
  Цифровые товары
Банерные показы, Документы, ICQ UIN, Доступ к платным ресурсам, Системы активной рекламы, Базы данных, Дизайн, Домены, Заработок в Интернет, ...
  Программное обеспечение
Бухгалтерия, делопроизводство, Игры, Интернет, Мультимедиа и графика, Рабочий стол, Редакторы, Утилиты, ...


В избранное