Webmaster общности: Predpriemach.com | SearchEngines.bg

    Лента за гласуване на всеки 24 часа.

    Автор: devent

    Видях молба за такава лента във форума и реших да го кача направо тук, където ще е по-удобно за потребителите. Става дума за лента, която се показва над останалия текст в сайта приканваща потребителя да гласува за вашият сайт в бгтоп, бг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, което ще изтрие ненужните записи в базата данни.

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

    Оставете коментар