Oddi Cepl
Guest
Простой антиспам фильтр
В php я новичек и решил написать свой скрипт гостевой книги, все шло хорошо пока я не задумался над тем что нажимая много раз F5, можно сделать много одинаковых записей.
Решение проблемы мне видится в следующем:
Все это работает, но почему то через раз, т.е. первый раз добавили запись=> вышел таймаут=> добавляем запись, ни чего не записывается=> еще раз, все в порядке. Подскажите плз, в чем причина.
PHP 5.03, Apache2, WinXP
В php я новичек и решил написать свой скрипт гостевой книги, все шло хорошо пока я не задумался над тем что нажимая много раз F5, можно сделать много одинаковых записей.
Решение проблемы мне видится в следующем:
PHP:
session_start();
// если флага нет, то заносим новую запись
if (!isset($_SESSION['flag'])) {
$guest->newrec['nick'] = $_POST['nick'];
...
$guest->AddRec();
// сохраняем время когда произведена запись
$_SESSION['flag'] = time();
} else {
if (($timeout=time()-$_SESSION['flag'])>5)
unset($_SESSION['flag']);
else
echo "Произвести запись можно только через $timeout сек.";
}
PHP 5.03, Apache2, WinXP