Само на 24 часа

aquafresh

Registered
Как мога да направя един бутон да се натиска само веднъж на 24 часа ?
По точно само 1 път на 24 часа да добавя +1 в бд
И не ми давайте онея ленти за бгтоп..
 
В базата данни записваш IP то и времето когато е натиснат бутона с time() функцията. и взимаш последния запис с IP-то на потребителя. взимаш времето от базата данни и ако то + 24*60*60 (1 ден) е по-малко от сегашното, му разрешаваш да гласува и показваш бутона. и след натискането на бутона добавяш нов запис в базата данни, със IP-то и сегашното време от time(); и след рефреш последния запис ще ти е този който си добавил и така проверката ще се повтори пак но този път времето няма да е по-малко и няма да се покаже бутона
 
SQL
CREATE TABLE `buton` (
`id` int(11) unsigned NOT NULL auto_increment,
`ip` varchar(255) NOT NULL,
`time` text NOT NULL default '',
PRIMARY KEY (`id`)
) ;

buton.php
<?
$con = mysql_connect('localhost', 'root', '') or die(mysql_error());
$db = mysql_select_db('buton',$con)or die(mysql_error());
$ip=$_SERVER['REMOTE_ADDR'];
$timenow = time();
$time24=$timenow+86400;
$query1 = "SELECT * FROM buton WHERE ip='$ip' AND time>='$timenow'";
$result1=@mysql_query($query1);
if (@mysql_num_rows($result1)==0){
$sql3=mysql_query("INSERT INTO `buton` VALUES('$ip', '$time24');")or die(mysql_error());
echo'Какво да изпълня ?';
}
else
{
echo'Вече си кликнал !';
} ?>

В сайта:
$ip=$_SERVER['REMOTE_ADDR'];
$timenow = time();
$time24=$timenow+86400;
$result1 = mysql_query("SELECT * FROM buton WHERE ip='$ip' AND time>='$timenow'")or die(mysql_error());
if (@mysql_num_rows($result1)==0)
{
$link="<a href="buton.php">Butona</a>"; }else{ $link=""; }
 
Нали знаеш, че лентата може да е бутон? Не виждам причина да не искаш да редактираш моя код и вместо лента да е просто бутон. Подсказка:
Променяш функцията show и местоположението на проверките.
 

Back
Горе