[Guide] Как да си направим Лента за Гласуване на 24 часа

leeway

New Member
Joined
Jan 24, 2009
Messages
512
Reaction score
43
Видях молба за такава лента във форума и реших да го кача направо тук, където ще е по-удобно за потребителите. Става дума за лента, която се показва над останалия текст в сайта приканваща потребителя да гласува за вашият сайт в бгтоп, бг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, което ще изтрие ненужните записи в базата данни.
 
много добре изглежда я писни и някой пиц .... 5/5
 
А защо не си написал че е взето от dmz.script.info ?
 
Тая тема я има вече Цък така че това е спам ... и вземи уважавай хората и поне слагай кредити!!!
 
Last edited:
Dante dr e za Mu we idiot {sorry for latinicata}