Писал в личку напишу еще и здесь может кому пригодится.
Либо после запроса юзай:
header('Location: /ссылка');
Тогда после запроса убиваются все данные так как редиректит мгновенно на другую страницу даже если на туже. Но если жать часто от повторов не спасти, поэтому второй вариант.
<?
global $errors_list;
$errors_list=array(
'faster'=>'Ваш запрос был заблокирован в связи с ускоренной отправкой данных! Вернитесь назад и повторите попытку...'
);
function protect_fatal_error($type){
global $errors_list;
if($type==11){
$type='faster';
}
print $errors_list[$type];
header('Location: /ссылка');
}
function protect_error($type){
if($type){
$temp=mysql_query("SELECT * FROM `warnings_ip` WHERE `ip`='".ип пользователя."' LIMIT 1");
if(mysql_num_rows($temp)>0){
$temp=mysql_fetch_array($temp,true);
$id=$temp['id'];
$warnings=$temp['warnings'];
$last_warning=$temp['time'];
$warnings++;
$temp=TIME-$last_warning;
$temp=(int)($temp/60);
$warnings-=$temp;
if($warnings<1){
$warnings=1;
}
} else {
@mysql_query("INSERT INTO `warnings_ip` (`ip`,`warnings`,`time`) VALUES('".ип пользователя."',1,".TIME.")");
}
}
protect_fatal_error($type);
}
$temp=mysql_query("SELECT * FROM `warnings_ip` WHERE `ip`='".ип пользователя."' LIMIT 1");
if(mysql_num_rows($temp)>0){
$temp=mysql_fetch_array($temp,true);
$temp=$temp['last_post'];
if(TIME<$temp+1){
protect_error(11);
} else {
@mysql_query("UPDATE `warnings_ip` SET `last_post`=".TIME." WHERE `ip`='".ип пользователя."' LIMIT 1");
}
} else {
@mysql_query("INSERT INTO `warnings_ip` (`ip`,`last_post`) VALUES('".IP."',".TIME.")");
}
Ну таблицы я думаю сообразите как сделать, но не люблю я этот вариант с скл запросами на мемкеше гораздо быстрее и проще, ну да ладно им пользуются единицы
Изменил: Владимир (01.11.2011 / 20:38)