Веднъж на 24 часа

katsar0v

Registered
Код:
<?php
session_start();
include ('config.php');
include ('check_login.php');
$a=$_GET['id'];
$sql="SELECT * FROM users where id = '" . $a . "'";
$search=mysql_query($sql);
$x=mysql_fetch_assoc($search);
$sql="UPDATE users set points=".($x['points']+1)." where id = '" . $a . "'";
$xx=mysql_query($sql);
echo'
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body><center>
<div class="header"></div>
';
if($_SESSION['log']=$r['id'])
{
echo '
<div class="menu">
<a href="index.php">Начало</a> <font color="555555">|</font> 
<a href="profile.php">Профил</a> <font color="555555">|</font> 
<a href="rating.php">Класация</a> <font color="555555">|</font> 
<a href="contacts.php">Свържи се с нас</a> <font color="555555">|</font> 
<a href="logout.php">Излез</a> <font color="555555">|</font> 
</div>';
}
else 
{
echo '<div class="menu">
<a href="index.php">Начало</a> <font color="555555">|</font> 
<a href="login.php">Влез</a> <font color="555555">|</font> 
<a href="register.php">Регистрирай се</a> <font color="555555">|</font> 
<a href="rating.php">Класация</a> <font color="555555">|</font> 
<a href="contacts.php">Свържи се с нас</a>
</div>';
}
echo'
<div class="content" align="center"><br>
';
echo 'Вие дадохте точка на '.$x['user'];
echo'
</div>
<div class="footer"></div>
</center>
</body>
</html>';

Значи искам да направя , да се дава веднъж на 24 часа тази точка ... добавянето на точки работи , но искам да е веднъж на 24 часа :)
Направих и нова колона в БД наречена last_date ако е нужно :)
 
Няма ли друго решение освен cookies, защото как точно ще стане това не се сещам .. знам за какво служат и т.н. но .. :)
Не мисля че бисквитките са основното решение , тъй като всеки потребител може да си изтрие бисквитките и пак да гласува...
 
katsar0v каза:
Няма ли друго решение освен cookies, защото как точно ще стане това не се сещам .. знам за какво служат и т.н. но .. :)
Не мисля че бисквитките са основното решение , тъй като всеки потребител може да си изтрие бисквитките и пак да гласува...
Записваш в едно поле в таблицата кога е гласувал даденият потребител и при всеки опит проверяваш дали са изминали двадесет и четири часа от предишното гласуване.
 
Попринцип не съм се занимавал с такива мании, обаче мисля, че този начин 99% ще стане:

когато някой влезне в линка правиш следното:
$datata = date("d");
$rq = mysql_query("INSERT INTO `table` (reda za chas) VALUES ('$datata')");

по този начин ще запише в кой ден е гласувал, и сега за да е следващото гласуване след 1 ден, добавяш в страницата по горе и това:

$rq = mysql_query("SELECT datata FROM .. дъра бъра");
$row = mysql_fetch_assoc($rq);
if($row[reda za chas] =< $datata) {
echo "само веднъж на 24 часа.";
}
 
$a=$_GET['id'];
$sql="SELECT * FROM users where id = '" . $a . "'";
$search=mysql_query($sql);
$x=mysql_fetch_assoc($search);
if ((time()-$x['last_date']) > 24*60*60){
$sql="UPDATE users set points=".($x['points']+1).", last_date='". time() . "' where id = '" . $a . "'";
$xx=mysql_query($sql);
}
else
{
echo 'Вие вече дадохте точка на този потребител';
}

Това става ли ?
 
Проблемът е , че от 1 ip може само веднъж на 24 часа , това не трябва да спира другите ip-та
 
Създай си таблица, която да записва Ip-to на всеки потребител.

След това просто добавяш и IP-то към If-овете по-горе.
 

Back
Горе