Advertisement
Guest User

Untitled

a guest
Mar 16th, 2013
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 13.58 KB | None | 0 0
  1. <?php
  2.      include("db.class.php");
  3.    
  4.      class VoteClass extends Database {
  5.        
  6.         function __construct() {
  7.             parent::__construct();
  8.         }
  9.        
  10.         public function table_exists($table, $db) {
  11.             $tables = mysql_list_tables($db);
  12.             while (list ($temp) = mysql_fetch_array ($tables)) {
  13.                 if ($temp == $table) {
  14.                     return 1;
  15.                 }
  16.             }
  17.         }
  18.        
  19.         public function isInstalled() {
  20.             if($this->table_exists('settings', DATABASE_NAME)==0 || $this->table_exists('sites', DATABASE_NAME)==0 || $this->table_exists('voting_verification', DATABASE_NAME)==0 || $this->table_exists('failed_votes', DATABASE_NAME)==0 || $this->table_exists('has_voted', DATABASE_NAME)==0 || $this->table_exists('rewards', DATABASE_NAME)==0 || $this->table_exists('notes', DATABASE_NAME)==0) {
  21.                 return 0;
  22.             } else {
  23.                 return 1;
  24.             }
  25.         }
  26.        
  27.         public function hasVotedInLast12() {
  28.             $ip = gethostbyname($_SERVER['REMOTE_ADDR']);
  29.             $query = "SELECT UNIX_TIMESTAMP(time) as time FROM `votes` WHERE  UNIX_TIMESTAMP(NOW()) < UNIX_TIMESTAMP(time)+43200 AND `ip` = '".$ip."'";
  30.             $result = mysql_query($query);
  31.             if (mysql_num_rows($result) > 0) {
  32.                 $result = mysql_fetch_assoc($result);                    
  33.                 return $result["time"];
  34.             } else {
  35.                 return -1;
  36.             }
  37.         }
  38.        
  39.         public function hasVoted() {
  40.             $ip = gethostbyname($_SERVER['REMOTE_ADDR']);
  41.             $query = "SELECT UNIX_TIMESTAMP(time) as time FROM `votes` WHERE  UNIX_TIMESTAMP(NOW()) < UNIX_TIMESTAMP(time)+43200 AND `ip` = '".$ip."'";
  42.             $result = mysql_query($query);
  43.             if (mysql_num_rows($result) > 0) {
  44.                 $result = mysql_fetch_assoc($result);                    
  45.                 return $result["time"];
  46.             } else {
  47.                 return -1;
  48.             }
  49.         }
  50.        
  51.         function createCId($length) {
  52.             $chars = "abcdefghijkmnopqrstuvwxyz023456789";
  53.             srand((double)microtime()*1000000);
  54.             $i = 0;
  55.             $pass = '' ;
  56.             while ($i < $length) {
  57.                 $num = rand() % 33;
  58.                 $tmp = substr($chars, $num, 1);
  59.                 $pass = $pass . $tmp;
  60.                 $i++;
  61.             }
  62.             return $pass;
  63.         }
  64.        
  65.         public function getHeader($sn){
  66.             echo '<!-- Powered by GamingToplist.net -->
  67. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  68. <html xmlns="http://www.w3.org/1999/xhtml">
  69.     <head>
  70.         <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  71.         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  72.         <title>'. $sn .' - Voting</title>
  73.         <link rel="stylesheet" type="text/css" href="css/theme.php" />
  74.         <!--[if IE]>
  75.           <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  76.         <![endif]-->
  77.        
  78.        
  79.         <link rel="stylesheet" type="text/css" href="css/jquery.noty.css"/>
  80.         <link rel="stylesheet" type="text/css" href="css/noty_theme_default.css"/>
  81.     </head>
  82.     <body>
  83.     <div id="page-wrap">
  84.     <header>
  85.       <h1>'.$sn.' Voting</h1>
  86.     </header>';
  87.         }
  88.        
  89.         public function getUserDetails(){
  90.             $arr = array('timeLastVoted' => 0, 'hasVotedOnAllLinks' => 0);
  91.             $query = "SELECT `time` FROM `has_voted` WHERE `ip` = '" . $_SERVER['REMOTE_ADDR'] . "' ORDER BY time ASC LIMIT 1";
  92.             $result = mysql_query($query);
  93.             if ($row = mysql_fetch_assoc($result)) {
  94.                 $arr["timeLastVoted"] = $row['time'];
  95.             }
  96.             $arr["hasVotedOnAllLinks"] = $this->hasVotedAllLinks() ? 1 : 0;
  97.             echo json_encode($arr);
  98.         }
  99.        
  100.         public function getVoteTime(){
  101.             $ip = $_SERVER['REMOTE_ADDR'];
  102.             $result = mysql_query("SELECT UNIX_TIMESTAMP(time) as time FROM `has_voted` WHERE  UNIX_TIMESTAMP(NOW()) < UNIX_TIMESTAMP(time)+43200 AND `ip` = '".$ip."'");
  103.             if ($row = mysql_fetch_assoc($result)) {
  104.                 return $row['time'];
  105.             }
  106.             return -1;
  107.         }
  108.        
  109.         public function setAsVoted($reward,$username){
  110.             $ip = $_SERVER['REMOTE_ADDR'];
  111.             $reward = mysql_real_escape_string($reward);
  112.             $username = mysql_real_escape_string($username);
  113.             mysql_query("INSERT INTO `has_voted` (`ip`, `rewardid`, `username`) VALUES ('".$ip."', '".$reward."', '".$username."')");
  114.             mysql_query("DELETE FROM `voting_verification` WHERE `ip`='".$ip."'");
  115.         }
  116.        
  117.         public function hasVotedAllLinks(){
  118.             $totalsites = 0; $totalvotes = 0;
  119.             $result = mysql_query("SELECT COUNT(*) FROM `sites`");
  120.             if ($row = mysql_fetch_assoc($result)){
  121.                 $totalsites = $row['COUNT(*)'];
  122.             }
  123.             $result = mysql_query("SELECT COUNT(*) FROM `voting_verification` WHERE `ip` = '" . $_SERVER['REMOTE_ADDR'] . "'");
  124.             if ($row = mysql_fetch_assoc($result)) {
  125.                 $totalvotes = $row['COUNT(*)'];
  126.             }
  127.  
  128.  
  129.             $callbacks = 0;
  130.             if($this->ActiveCallback(4)) {
  131.                 $callbacks++;
  132.                 $result = mysql_query("SELECT * FROM `voting_verification` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' AND `type`='104'");
  133.                 if(mysql_num_rows($result) == 0) {
  134.                     mysql_query("REPLACE INTO `failed_votes` (`ip`, `type`) VALUES ('".$_SERVER['REMOTE_ADDR']."','4')");
  135.                     $result = mysql_query("SELECT COUNT(*) FROM `failed_votes` WHERE `type`='4'");
  136.                     if ($row = mysql_fetch_assoc($result)) {
  137.                         if($row['COUNT(*)'] > 20){
  138.                             $totalvotes++;
  139.                             $this->setVotingVisted(104);
  140.                         }
  141.                     }
  142.                 }
  143.             }
  144.  
  145.            
  146.             if($this->ActiveCallback(3)) {
  147.                 $callbacks++;
  148.                 $result = mysql_query("SELECT * FROM `voting_verification` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' AND `type`='103'");
  149.                 if(mysql_num_rows($result) == 0) {
  150.                     mysql_query("REPLACE INTO `failed_votes` (`ip`, `type`) VALUES ('".$_SERVER['REMOTE_ADDR']."','3')");
  151.                     $result = mysql_query("SELECT COUNT(*) FROM `failed_votes` WHERE `type`='3'");
  152.                     if ($row = mysql_fetch_assoc($result)) {
  153.                         if($row['COUNT(*)'] > 20){
  154.                             $totalvotes++;
  155.                             $this->setVotingVisted(103);
  156.                         }
  157.                     }
  158.                 }
  159.             }
  160.            
  161.             if($this->ActiveCallback(2)) {
  162.                 $callbacks++;
  163.                 $result = mysql_query("SELECT * FROM `voting_verification` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' AND `type`='102'");
  164.                 if(mysql_num_rows($result) == 0) {
  165.                     mysql_query("REPLACE INTO `failed_votes` (`ip`, `type`) VALUES ('".$_SERVER['REMOTE_ADDR']."','2')");
  166.                     $result = mysql_query("SELECT COUNT(*) FROM `failed_votes` WHERE `type`='2'");
  167.                     if ($row = mysql_fetch_assoc($result)) {
  168.                         if($row['COUNT(*)'] > 20){
  169.                             $totalvotes++;
  170.                             $this->setVotingVisted(102);
  171.                         }
  172.                     }
  173.                 }
  174.             }
  175.  
  176.             $callbacks++;
  177.             $result = mysql_query("SELECT * FROM `voting_verification` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' AND `type`='101'");
  178.             if(mysql_num_rows($result) == 0) {
  179.                 mysql_query("REPLACE INTO `failed_votes` (`ip`, `type`) VALUES ('".$_SERVER['REMOTE_ADDR']."','1')");
  180.                 $result = mysql_query("SELECT COUNT(*) FROM `failed_votes` WHERE `type`='1'");
  181.                 if ($row = mysql_fetch_assoc($result)) {
  182.                     if($row['COUNT(*)'] > 20){
  183.                         $totalvotes++;
  184.                         $this->setVotingVisted(101);
  185.                     }
  186.                 }
  187.             }
  188.  
  189.             $callbacks++;
  190.             $result = mysql_query("SELECT * FROM `voting_verification` WHERE `ip` = '" . $_SERVER['REMOTE_ADDR'] . "' AND `type`='100'");
  191.             if (mysql_num_rows($result) == 0) {
  192.                 mysql_query("REPLACE INTO `failed_votes` (`ip`, `type`) VALUES ('" . $_SERVER['REMOTE_ADDR'] . "','0')");
  193.                 $result = mysql_query("SELECT COUNT(*) FROM `failed_votes` WHERE `type`='0'");
  194.                 if ($row = mysql_fetch_assoc($result)) {
  195.                     if($row['COUNT(*)'] > 20){
  196.                         $totalvotes++;
  197.                         $this->setVotingVisted(100);
  198.                     }
  199.                 }
  200.             }
  201.            
  202.             return ($totalsites + $callbacks) <= $totalvotes ? true : false;
  203.         }
  204.        
  205.         public function showTimeLeft($time){
  206.             $seconds = $time+43200 - time();
  207.             $hours = floor($seconds / 3600);
  208.             $mins = floor(($seconds - ($hours*3600)) / 60);
  209.             echo '<p>You have already voted today, you will be able to vote in <b>'. $hours .'</b> hours and <b>'. $mins .'</b> minutes.</p>
  210.             <div id="cntdwn" style="text-align:center;"><input type="button" class="button" id="countdown" value="Show Count Down" OnClick="startCountDown('.$seconds.');" ></div>';
  211.         }
  212.        
  213.         public function setVotingVisted($type){
  214.             $type = mysql_real_escape_string($type);
  215.             $ip = $_SERVER['REMOTE_ADDR'];
  216.             $result = mysql_query("SELECT * FROM `voting_verification` WHERE `ip` = '".$ip."' AND `type`='".$type."'") or die(mysql_error());
  217.             if (mysql_num_rows($result) == 0) {
  218.                 mysql_query("INSERT INTO `voting_verification` (`ip`, `type`) VALUES ('".$ip."', '".$type."')");
  219.             }
  220.         }
  221.        
  222.         public function setSiteVoted($stringip, $type){
  223.             $type = mysql_real_escape_string($type);
  224.             if($type == 101) {
  225.                 $ip = $_SERVER['REMOTE_ADDR'];
  226.             } else {
  227.                 $ip = urldecode(base64_decode($stringip));
  228.             }
  229.             $query = "SELECT * FROM `voting_verification` WHERE `ip` = '".$ip."' AND `type`='".$type."'";
  230.             $result = mysql_query($query);
  231.             if (mysql_num_rows($result) == 0) {
  232.                 mysql_query("INSERT INTO `voting_verification` (`ip`, `type`) VALUES ('".$ip."', '".$type."')");
  233.             }
  234.         }
  235.        
  236.         public function getVotingLink($type){
  237.             $type = mysql_real_escape_string($type);
  238.             $result = mysql_query("SELECT `url` FROM `sites` WHERE `id`='".$type."'");
  239.             if ($row = mysql_fetch_assoc($result)) {
  240.                 return $row['url'] .  ((strpos($row['url'], "runetoplist") !== false || strpos($row['url'], "runelocus") !== false) ? urlencode(base64_encode($_SERVER['REMOTE_ADDR'])) : '');
  241.             }
  242.             return null;
  243.         }
  244.        
  245.         public function getRuneServerVotingCallback() {
  246.             $result = 0;
  247.             $serverIDQuery = mysql_query("SELECT `url` FROM `sites` WHERE `id`='3'") or die(mysql_error());
  248.             $serverIDArray = mysql_fetch_array($serverIDQuery);
  249.             $serverID = preg_match('/\d+$/', $serverIDArray[0], $m) ? reset($m) : null ;
  250.             $HasVoted = file_get_contents("http://www.rune-server.org/toplist.php?do=hasvoted&sid=".$serverID."&ip=".$_SERVER['REMOTE_ADDR']);
  251.                 if($HasVoted == "true")
  252.                     return 1;
  253.                 else
  254.                     return 0;
  255.         }
  256.  
  257.         public function ActiveCallback($site) {
  258.             $query = mysql_query("SELECT `callback` FROM `sites` WHERE `id`='".$site."'") or die(mysql_error());
  259.             $callback = mysql_fetch_array($query);
  260.  
  261.             if($callback[0] == 1)
  262.                 return true;
  263.             else
  264.                 return false;
  265.         }
  266.  
  267.         public function getTop100ArenaVotingCallback() {
  268.             $serverIDQuery = mysql_query("SELECT `url` FROM `sites` WHERE `id`='4'") or die(mysql_error());
  269.             $serverIDArray = mysql_fetch_array($serverIDQuery);
  270.             $serverID = preg_match('/\d+$/', $serverIDArray[0], $m) ? reset($m) : null ;
  271.             $HasVoted = file_get_contents("http://www.top100arena.com/check_ip.asp?id=".$serverID."&ip=".$_SERVER['REMOTE_ADDR']);
  272.             return $HasVoted;
  273.         }
  274.        
  275.         public function getGTLVotingCallback() {
  276.             $result = 0;
  277.             $GTLQ = mysql_query("SELECT `value` FROM `settings` WHERE `id`='3'") or die(mysql_error());
  278.             $serverIDQuery = mysql_query("SELECT `url` FROM `sites` WHERE `id`='1'") or die(mysql_error());
  279.             $GTL = mysql_fetch_array($GTLQ);
  280.             $serverIDArray = mysql_fetch_array($serverIDQuery);
  281.             $serverID = preg_match('/\d+$/', $serverIDArray[0], $m) ? reset($m) : null ;
  282.             $xmlFileLink = simplexml_load_file("http://gamingtoplist.net/resources/GTLVote/callback.php?server=".$serverID."&cp=".$GTL[0]);
  283.             if($xmlFileLink->error) {
  284.                 if($xmlFileLink->error == "Nobody has voted.") {
  285.                     $result = 0;
  286.                 } else {
  287.                     $result = $xmlFileLink->error;
  288.                 }
  289.             } else {
  290.                 $total = count($xmlFileLink->entry);
  291.                 for ($i = 0; $i < $total; $i++) {
  292.                     if($xmlFileLink->entry[$i]->ip == $_SERVER['REMOTE_ADDR']) {
  293.                         $result = 1;
  294.                     }
  295.                 }
  296.             }
  297.             return $result;
  298.         }
  299.        
  300.         public function echoVotingButtons(){
  301.             $result = mysql_query("SELECT * FROM `sites` ORDER BY `id` ASC");
  302.             $i = 0;
  303.             while ($row = mysql_fetch_assoc($result)) {
  304.                 $i++;
  305.                 echo '<li><a target="_blank" href="json/set.php?site='.$row["id"].'">'.$row["name"].'</a></li>';
  306.                 if($i==5) {
  307.                     echo '<br>';
  308.                 }
  309.             }
  310.         }
  311.        
  312.         public function echoRewards(){
  313.             $result = mysql_query("SELECT * FROM `rewards` ORDER BY `id` ASC");
  314.             while ($row = mysql_fetch_assoc($result)) {
  315.                 echo '<tr current="'.$row['id'].'">
  316.                         <td><input type="radio" name="rewards" value="'.$row['id'].'"></td>
  317.                         <td><img src="'.$row['url_to_image'].'" style="width: 32px;height: 32px;"></td>
  318.                         <td>'.$row['name'].'</td>
  319.                         <td>X '.$this->formatAmount($row['amount']).'</td>
  320.                     </tr>';
  321.             }
  322.         }
  323.        
  324.        
  325.        
  326.         public function getSetting($setting){
  327.             $setting = mysql_real_escape_string($setting);
  328.             $result = mysql_query("SELECT `value` FROM `settings` WHERE `setting`='".$setting."'") or die(mysql_error());
  329.             $ThemeResult = mysql_fetch_array(mysql_query("SELECT `value` FROM `settings` WHERE `setting`='theme'"));
  330.             if($setting == "theme") {
  331.                 if(empty($ThemeResult[0])) {
  332.                     return "default";
  333.                 } else {
  334.                     return $ThemeResult[0];
  335.                 }
  336.             } else
  337.             if($row = mysql_fetch_assoc($result)){
  338.                 return is_numeric($row['value']) ? (int)$row['value'] : $row['value'];
  339.             }
  340.             return null;
  341.         }
  342.        
  343.         public function formatAmount($n){
  344.             if($n < 100000){
  345.                 return '<span title="'.number_format($n).'">'. $n  . '</span>';
  346.             } else if($n < 1000000) {
  347.                 return '<span title="'.number_format($n).'">'. floor($n / 1000) . 'K</span>';
  348.             } else if($n < 1000000000) {
  349.                 return '<span title="'.number_format($n).'">'. floor($n / 1000000) . 'M</span>';
  350.             } else if($n < 1000000000000) {
  351.                 return '<span title="'.number_format($n).'">'. floor($n / 1000000000) . 'B</span>';
  352.             }
  353.         }
  354.     }
  355. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement