Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Новости ИТ Программы Книги Games   Обои   Экспорт RSS E-Books
 
Поиск по сайту

TOP-10 программ
Symantec Norton Ghost 9.0
Partition Magic 8.0.2 Pro
Xilisoft 3GP Video Converter v3.1.7.0616b
Norton AntiVirus 2005
Xilisoft 3GP Video Converter v2.1.52.831b
Антивирус Касперского Personal 5.0.303 beta 2
RAR Password Cracker 4.12
ABBYY PDF Transformer v1.00.820
MP3 To Ringtone Gold v3.02
Mobtime Cell Phone Manager v5.3.1
 
Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
 
 

   Интернет технологии -> PHP -> Обработка форм


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

Теперь нам предстоит разобраться, как увязать программирование на HTML с скриптами на РНР. На самом деле это еще проще, чем что-либо другое в РНР. Все сделано так, чтобы пользователь чувствовал себя достаточно комфортно и не испытывал проблем, в том числе и при программировании. Каким же образом можно достичь плотного взаимодействия программиста и пользователя?

Посещая сайты, каждый из Вас не раз сталкивался с различными формами и полями для ввода. Некоторые даже пытались разобраться, как все это работает, но непременно натыкались на тот факт, что данные формы нужно как-то и чем-то обработать. Но как!? И главное – чем? Ответ нам уже ясен - с помощью РНР. И именно это мы с Вами сейчас и будем делать...

Для начала давайте сделаем ручками (ими, родимыми, ими) форму для отправки писем на любой адрес, который тоже требуется ввести в форме. На этом примере и разберемся, как все работает:

<form method="POST" action="action.phtml">
<p><input type="text" name="email" size="20">
<br><input type="text" name="name" size="20">
<br><textarea rows="2" name="txt" cols="20"></textarea>
<br><input type="submit" value="Submit" name="B1">
<input type="reset" value="Reset" name="B2"></p></form>

Запустив этот HTML код в браузере, Вы увидите перед собой небольшую форму с тремя полями для ввода. Особенности этой формы таковы: обработка, которая начнется после нажатия кнопки отправить, будет передана файлу action.phtm. Если надо указать другой путь - воспользуйтесь стандартными методами указания пути. Имя первого поля - email, и туда посетитель будет вводить адрес, куда надо отправить письмо. Второе поле имеет имя name, и оно предназначено для ввода имени того, кто хочет отправить письмо. Можно конечно обойтись и без этого, но для наглядности не помешает. Следующее поле - поле ввода текста сообщения, и оно имеет имя txt. Как видите все имена можно давать так, что бы в последствии не запутаться в них. Наша форма почти готова. Не хватает только эстетического оформления, но это уже дело десятое, можно сделать любые надписи или применить различные стили. Тут Вы можете в полной мере проявить свои творческие способности. А мы теперь перейдем к нашей основной части - обработчику формы, который, как Вы помните, находится у нас в файле action.phtm.

<?php mail($email, $name, $txt, $name); ?>

Все. И опять очень просто. Как Вы, надеюсь, поняли уже, все те имена, которые мы присвоили полям для ввода в нашей форме, перешили точно такими же в скрипт РНР, который указывается в форме как обработчик. Причем значением этих имен (переменных РНР) будет являться то, что посетитель Вашей странички введет в соответствующее поле. Адрес окажется в переменной $email, имя - в $name, а текст - в $txt. Вот и вся наука! Любое имя формы становится переменной в обработчике, написанном на РНР. Метод, которым передаются значения и имена переменных в обработчик, называется POST. Если помните, несколько выше мы познакомились с еще одним методом передачи данных скрипту – GET. Тут Вы можете видеть коренное отличие двух похожих методов. В первом случае ( GET ) – по ссылке, и во втором ( POST ) – через форму.

Запомните это как дважды два, и жизнь покажется Вам намного прекрасней!

Отправка почты – второй пример

Очень часто хочется знать, что происходит на сайте за время Вашего отсутствия. Конечно, можно периодически проверять форум, гостевую книгу, другие сервисы сайта на предмет новых сообщений, но есть способ лучше! Почему бы ни присылать самому себе сообщение на свой почтовый ящик, когда на сайте происходит то, или иное событие.

Как пример могу предложить такие варианты – регистрация в рассылке, ввод сообщения в форум, гостевую книгу и т.д., ошибка открытия файла, организация обратной связи, опрос мнения читателей о размещенной статье и т.д. и т.п. Способов применить эту возможность РНР – масса, осталось разобраться, как это работает. Как всегда – просто! Синтаксис таков:  

Mail ( $email, "Введено сообщение", $str, "From: сообщение ");   

Конечно, перед этим соответствующие переменные должны быть введены либо вручную, либо с помощью формы (нужно следить за соответствием имен переменных в форме и в скрипте). При выполнении данной команды интерпретатор РНР пошлет письмо с текстом из переменной $str по адресу, указанному в переменной $email. Все остальное – служебная информация, которая может быть в некоторых случаях опущена за ненадобностью.

Для примера рассмотрим систему контроля за посетителями определенных страниц сайта. Такая возможность может понадобиться для анализа посещений определенных статей, страниц и т.д. Нам потребуется информация о посетителе, которая в РНР автоматически доступна через переменные окружения. Эту информацию мы будем отсылать самому себе на почтовый ящик. Только не переусердствуйте – каждое посещение такой страницы вызовет отправку письма, и ящик может оказаться переполненным. Особенно если поток посетителей будет большим. 

<?php
if (isset ($HTTP_X_FORWARDED_FOR)) 
{ 
$host = gethostbyaddr($HTTP_X_FORWARDED_FOR); 
} else { 
$host = gethostbyaddr($REMOTE_ADDR); } 
 
$ip=getenv('REMOTE_ADDR');
$date=date('d M Y, H:i:s');
$host1=gethostbyaddr("$ip");
 
$str=("
Дата - $date
Хост - $host
IP-адрес - $ip
---------------------");
mail( $email, "статистика", $str, "From:информация");
?>

Если Вы разместите на одной из Ваших страниц этот код РНР, информация о посетителе (это дата входа, хост и IP-адрес) будет в Вашем почтовом ящике. Еще можно прислать себе сообщение при возникновении ошибки (например, открытия файла) на сайте:

$filename = "data.txt"; 
$fp = @fopen($filename,"r"); 
if ( !$fp ) 
{ 
@mail( $email, "Ошибка!", "Ошибка открытия файла $filename !");
} 

Как обычно, можно поставить знак @, и если возникнет ошибка при отправке почты, сообщение об этом не будет выведено на экран. А можно просто проверить, ушло письмо или нет:  

if (@mail( $email, "Тест", $str)) 

{ … что сделать если письмо ушло … } 

else 

{ … что делать, если произошла ошибка отправки (не правильные 
настройки сервера, не доступен ящик, сайт и т.д.)  } 

Если в переменной $email указать несколько адресов, разделенных пробелами, информация будет разослана по всем указанным адресам. Это открывает простой путь к организации собственной, ни от кого не зависящей системы почтовых рассылок.

Автор: Андрей Кухарчик
Источник: www.php.virtualbrest.com

Ссылки по теме
Чтение почты через Web-интерфейс
Полезные скрипты на PHP
PHP и формы
Почтовые функции в РНР
Отправка электронной почты с помощью PHP
 
Популярные книги

Технология программирования на C++. Начальный курс

Подробнее

Photoshop CS2 для пользователя

Подробнее

Обработка цифровых фотографий (+CD)

Подробнее


 
Новости ИТ
04.12.2008  В Windows 7 запуск приложений Direct3D 10/10.1 будет возможен на CPU
04.12.2008  eGo BlackBelt и Encrypt - пара новых портативных HDD Iomega с зашитой данных
04.12.2008  A-DATA выпускает двух- и трёхканальные наборы памяти DDR3-1800+ в серии XPG Plus
04.12.2008  MOTOROKR EM35
04.12.2008  Шведский производитель ковриков для мышей выпустил игровую гарнитуру
04.12.2008  eGo BlackBelt и Encrypt - пара новых портативных HDD Iomega с защитой данных
04.12.2008  Вышла вторая бета-версия Windows Vista SP2
04.12.2008  Внешний SSD-накопитель с поддержкой eSATA и USB
04.12.2008  Флэшка OCZ со встроенным кард-ридером
04.12.2008  Весрия «ПАУ» 1.8.2 будет содержать новый функционал
04.12.2008  Компания «Русские Информационные Технологии» подготовила бета-версию программы «Печать конвертов!»
04.12.2008  Телефон премиум-класса с двумя SIM-картами
04.12.2008  High-end десктопы Asus Eee Box
04.12.2008  Видеокарта NVIDIA Quadro FX 4800 для профессионалов
04.12.2008  Экстремальные внешние HDD от Iomega
04.12.2008  MSI EX300 - 13.3 дюйма для развлечения
04.12.2008  SATA 3.0 появится в следующем году
04.12.2008  Mini-ITX-плата Zotac на основе логики NVIDIA и с поддержкой Wi-Fi
04.12.2008  Корпус NZXT Zero 2: улучшенное охлаждение и строгий дизайн
04.12.2008  Конвертеры: Xilisoft Video Converter v.5.1.7.1128
 
Полезно

 
Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100