Лента за гласуване на всеки 24 часа.
Видях молба за такава лента във форума и реших да го кача направо тук, където ще е по-удобно за потребителите. Става дума за лента, която се показва над останалия текст в сайта приканваща потребителя да гласува за вашият сайт в бгтоп, бг100 и т.н. При гласуване ip адреса на потребителя се записва в базата данни и 24 часа или колкото сте посочили в конфигурационият файл няма да му се появява. стига съм бърборил ето ви демо за да придобиете малко представа:


Ето и кодовете:

mysql.sql
CREATE TABLE `bgtop` (
`ip` varchar(33) default NULL,
`ctime` varchar(33) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

conf.php
<?
$server = "localhost";
$dbuser = "username";
$dbpass = "password";
$dbname = "vote";
$dbtable = "bgtop";
$db_conn = mysql_connect($server, $dbuser, $dbpass);
@mysql_select_db($dbname, $db_conn) or die(mysql_error());
$ip = $_SERVER["REMOTE_ADDR"];
$link = "http://bgtop.net/in.php/123456789"; // тук посочи твоя линк.
$time = time();
$vtime = "86400"; // това е времето в секунди, за което ще може да се гласува. в случая е 24 часа.
$dtime = "345600"; // времето, след което ще се изтриват ненужните записи. в случая е 4 дни(72 часа)
function show() {
echo '<a href="vote.php"><div style="width: 100%; height: 22px; position: absolute; top: 0px; left: 0px; z-index: 100; background-color: #ddd; text-align: center; font-size: 15px;">Натисни тук за да гласуваш за сайта :)</div></a>';
}
?>


index.php
<?
include("conf.php");
$sql = mysql_query("SELECT ctime FROM $dbtable WHERE ip=\"$ip\"");
if($row = mysql_fetch_array($sql)) {
$calc = $row['ctime'] + $vtime;
if ($calc < $time) { show(); }
}
else { show(); }
?>


vote.php
<?
ob_start();
include("conf.php");
$sql = mysql_query("SELECT ctime FROM $dbtable WHERE ip=\"$ip\"");
if($row = mysql_fetch_array($sql)) {
$calc = $row['ctime'] + $vtime;
if ($calc > $time) { echo "Можете да гласувате само по веднъж за 24 часа!"; }
else {
$sqlQ = mysql_query("UPDATE $dbtable SET ctime = \"$time\" WHERE ip=\"$ip\"");
header("location: $link");
}
}
else {
$sql = mysql_query("INSERT into `$dbtable`(`ip`,`ctime`) VALUES ('$ip','$time')");
header("location: $link");
}
?>

del.php
<?
include("conf.php");
$calc = $time - $dtime;
$total = mysql_result(mysql_query("SELECT COUNT(ip) FROM $dbtable WHERE ctime < \"$calc\""), 0);
$i = 0;
while($i < $total) {
$sql = mysql_query("DELETE from $dbtable WHERE ctime < \"$calc\"");
$i++;
}
echo "Ненужните записи са изтрити успешно!";
?>

От време на време стартирайте del.php, което ще изтрие ненужните записи в базата данни.



Това ми е първи урок, моля ви не бъдете много критични, все пак съм още аматьор :)







/ Трябва да сте регистриран за да напишете коментар /
От: aaaaaaaaaa
4:13 09-10-2009
благодаря ти
От: Anrth
14:07 02-03-2010
Един чудесен скрипт :]
От: HR78
20:08 10-04-2010
а как да направя при клик на лентата да ти я отваря в нов прозорец а не в същият??
От: Mapu0
10:04 15-09-2010
target="_blank" и си готов ;)
От: Mapu0
10:04 15-09-2010
target="_blank" и си готов ;)
От: lub4o
19:37 04-12-2010
Добре е :) Браво
От: DonMakaveli
14:42 25-12-2010
a kade se postavqt tezi kodove?
От: M1tq
19:08 26-12-2010
в таговете :)
От: M1tq
19:09 26-12-2010
в < head > таговете
От: guBaHeTo0o
7:32 05-02-2011
А някой може ли да обясни как се създава прозорец при зареждане на страницата който те приканва да гласуваш за сайта ,след като цъкнеш изчезва и ти позволява да продължиш в сайта???Моля Ви помагайте.....
1