[PHP] PHP ЗАЩИТА - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir  
[PHP] PHP ЗАЩИТА
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 новым годом, друзья!
  • Страница 1 из 1
  • 1
Поиск: