Интервал при добавяне

DirectX

Registered
Как се прави, така че като се добави нещо в базата и чак след определен интервал примерно от 5 секунди, да може пак да се добави нещо в базата :P
 
Начини много, но ето един прост: При добавяне на нещо правиш една бисквитка, която да изтече след 5 секунди. При submit проверяваш дали я има и ако я има вадиш съобщение.

Код когато се натисне бутона
PHP:
if$_COOKIE['cookietime'] == 1)
{
echo "грешка";
}
else
{
mysql_query("INSERT INTO ....
setcookie("cookietime", "1", time()+5);
}
 
sianbg_s каза:
Начини много, но ето един прост: При добавяне на нещо правиш една бисквитка, която да изтече след 5 секунди. При submit проверяваш дали я има и ако я има вадиш съобщение.

Не подкрепям този начин. Бисквитките лесно може да бъдат изтрити от потребителя.

//
Вкарай timestamp например при запис в базата данни и при нов опит проверявай спрямо него (ако записваш например дата на записване, може да използваш него).

//#2
sianbg_s каза:
@Karcho ако е наистина 5 секунди не мисля, че потребителя ще успее за по малко от 5 сек.

с WebDeveloper Toolbar (ако не се лъжа, така се казваше) можеше да се изтрие с едно натискане на бутонче - част от секундата.
 
@Karcho ако е наистина 5 секунди не мисля, че потребителя ще успее за по малко от 5 сек.
 
Като имам да правя нещо подобно, записвам времето с time() и после сравнявам дали записаното време е по-голямо или по-малко от това което на мен ми трябва, и за сега не съм имал никога проблеми.
 
Ако това е с цел да се избегне флууд или нещо подобно, captcha-та не е ли най-добрият вариант? :)
 
oveRLuckEd каза:
Като имам да правя нещо подобно, записвам времето с time() и после сравнявам дали записаното време е по-голямо или по-малко от това което на мен ми трябва, и за сега не съм имал никога проблеми.
Аз си вкарвам дата по принцип в заявката към базата с NOW() И после излиза като 2011-08-18 01:22:46. После пак ли трябва да го направя примерно
PHP:
if($data < NOW()) 
{
//dada
}
else { 
//da
}
или не точно ?
 
niker каза:
NOW() е функция на mysql и може да се използва само c mysql_query()
Добре, а тогава как се сравнява записаната дата + 5 секунди (примерно) :shock:
 
Ами, най-лесно е в базата данни да запишеш time()+5 и да сравняваш спрямо сегашният timestamp.
 
Karcho каза:
Ами, най-лесно е в базата данни да запишеш time()+5 и да сравняваш спрямо сегашният timestamp.
и по-конкретно като код нещо ще може ли да ми покажеш долу-горе как се прави :lol:
 
Insert

query("INSERT INTO `table` (---, `field`) VALUES (---, '".(time()+5)."')")

Check:

PHP:
$query = query("SELECT COUNT(*) AS cnt FROM `table` WHERE `field`>".time()."");
$count = fetch_object($query)->cnt;

if($count > 0)
{
//error
}

Подобно, надявам се да схванеш идеята вече.
 

Back
Горе