[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
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7210]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
Jbrubeen [12:29]

NIGCHER [11:30]

luannum3 [01:16]

cathleenxm6 [09:52]

Dodolic [09:44]

Interfacebpw [21:35]

Egorka777666 [16:34]

jerrycj11 [06:56]

lindaky9 [19:04]

Goodjokercik [03:08]

MarquisWallace [22:22]

asdfosod [21:30]

NIGHT1717 [08:36]