Axel177 |
Дата: Вторник, 16.10.2012, 16:00 | Сообщение # 1
|
Боец
Сообщений: 130
Статус: Offline
|
Защита формы в PHP скрипте
Хотелось бы уберечь начинающих сайтостроителей от такого греха пользователей, как флуд. Что нам пишет Википедия по слову Флуд: Code Флуд (от неверно произносимого англ. flood, наводнение[1]) — размещение однотипной информации на нескольких ветках форума или разных форумах, одной повторяющейся фразы, символов, букв, слов, одинаковых графических файлов или просто коротких сообщений на веб-форумах, в чатах, блогах.
Лицо, которое распространяет флуд, на интернет-сленге называется флудером или флудерастом. На форумах даблпост (или оверпост), то есть два или более сообщений подряд, также считаются флудом.
Флуд распространяется как в результате избытка свободного времени, так и с целью троллинга — например, из желания кому-то досадить. Сетевой этикет осуждает флуд и флейм, так как они затрудняют общение, взаимопомощь и обмен информацией. На многих интернет-форумах создаются специальные отдельные разделы и темы «для флуда», чтобы флудеры не распространяли свою деятельность на другие разделы и темы.
Флуд так же определяют как — пустословие, пустая болтовня (сообщения) пользователей, в интернет-форумах и чатах, занимающие (во многих случаях) большие объёмы и не несущие никакой-либо информации или очень малое количество полезной информации.
В большинстве форумов, IRC-чатов и т. д. флудер наказывается баном на срок, определённый правилами.
Я здесь не буду рассматривать именно вариант с форумом, мы поговорим о форме отправки сообщения, т.е. в принципе любую форму которую вы создаёте на сайте, для отправки данных. Например для обратной связи, сейчас часто стало модным делать подразделы на сайте, типа "Вопрос - Ответ". Где вы задаёте вопрос администрации сайта или менеджеру, например интернет магазина в котором хотите, что-то приобрести, при ответе менеджера вопрос и ответ показываются на странице. Тем самым самостоятельно сайт формирует рубрику "Часто задаваемые вопросы". Ну и вы помогаете набивать новый контент на сайт. Не большую кучку зайцев завалили. )) Так вот чтоб этой формой можно было пользоваться только на сайте, а не с локального сервера у себя на компьютере. В форму добавляется скрытый тег input со значением автоматически сформированного id - сессии пользователя. Который при нажатии кнопки Отправить, отправляется со всеми данными на страницу обработчика, где и проверяется его принадлежность к текущей сессии. Если вы пока не знакомы с сессиями в PHP, ни чего страшного, всё значительно проще, чем может показаться, прочитав FAQ по сессиям. Листинг № 1 - Форма для отправки сообщения защищённая сессией. <?php session_start();
echo '<form action="page.php" method="post"> <input name="" type="text"><br> <input name="idses" type="hidden" value="'.session_id().'"> <input name="go" type="submit" value="Отправить"> </form>';
?> Листинг № 2 - Файл page.php, принимающий данные из формы на обработку. <?php session_start();
// Проверяем наличие одной сессии. if(session_id() != $_POST['idses']) exit("Все в поле, курить бамбук!");
// Здесь пишем любой код который должен следовать после идентификации сессии...
// ... ?> Хотелось бы тут отметить, что функция session_start() - будет работать только в том случаи, если первый дескриптор PHP (<?php) находится на первой строке файла. Урок закончен.
C новым годом, друзья!
|
|
|
|