<?php
include("db.class.php");
class VoteClass extends Database {
function __construct() {
parent::__construct();
}
public function table_exists($table, $db) {
$tables = mysql_list_tables($db);
while (list ($temp) = mysql_fetch_array ($tables)) {
if ($temp == $table) {
return 1;
}
}
}
public function isInstalled() {
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) {
return 0;
} else {
return 1;
}
}
public function hasVotedInLast12() {
$ip = gethostbyname($_SERVER['REMOTE_ADDR']);
$query = "SELECT UNIX_TIMESTAMP(time) as time FROM `votes` WHERE UNIX_TIMESTAMP(NOW()) < UNIX_TIMESTAMP(time)+43200 AND `ip` = '".$ip."'";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
$result = mysql_fetch_assoc($result);
return $result["time"];
} else {
return -1;
}
}
public function hasVoted() {
$ip = gethostbyname($_SERVER['REMOTE_ADDR']);
$query = "SELECT UNIX_TIMESTAMP(time) as time FROM `votes` WHERE UNIX_TIMESTAMP(NOW()) < UNIX_TIMESTAMP(time)+43200 AND `ip` = '".$ip."'";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
$result = mysql_fetch_assoc($result);
return $result["time"];
} else {
return -1;
}
}
function createCId($length) {
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i < $length) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
public function getHeader($sn){
echo '<!-- Powered by GamingToplist.net -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>'. $sn .' - Voting</title>
<link rel="stylesheet" type="text/css" href="css/theme.php" />
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="css/jquery.noty.css"/>
<link rel="stylesheet" type="text/css" href="css/noty_theme_default.css"/>
</head>
<body>
<div id="page-wrap">
<header>
<h1>'.$sn.' Voting</h1>
</header>';
}
public function getUserDetails(){
$arr = array('timeLastVoted' => 0, 'hasVotedOnAllLinks' => 0);
$query = "SELECT `time` FROM `has_voted` WHERE `ip` = '" . $_SERVER['REMOTE_ADDR'] . "' ORDER BY time ASC LIMIT 1";
$result = mysql_query($query);
if ($row = mysql_fetch_assoc($result)) {
$arr["timeLastVoted"] = $row['time'];
}
$arr["hasVotedOnAllLinks"] = $this->hasVotedAllLinks() ? 1 : 0;
echo json_encode($arr);
}
public function getVoteTime(){
$ip = $_SERVER['REMOTE_ADDR'];
$result = mysql_query("SELECT UNIX_TIMESTAMP(time) as time FROM `has_voted` WHERE UNIX_TIMESTAMP(NOW()) < UNIX_TIMESTAMP(time)+43200 AND `ip` = '".$ip."'");
if ($row = mysql_fetch_assoc($result)) {
return $row['time'];
}
return -1;
}
public function setAsVoted($reward,$username){
$ip = $_SERVER['REMOTE_ADDR'];
$reward = mysql_real_escape_string($reward);
$username = mysql_real_escape_string($username);
mysql_query("INSERT INTO `has_voted` (`ip`, `rewardid`, `username`) VALUES ('".$ip."', '".$reward."', '".$username."')");
mysql_query("DELETE FROM `voting_verification` WHERE `ip`='".$ip."'");
}
public function hasVotedAllLinks(){
$totalsites = 0; $totalvotes = 0;
$result = mysql_query("SELECT COUNT(*) FROM `sites`");
if ($row = mysql_fetch_assoc($result)){
$totalsites = $row['COUNT(*)'];
}
$result = mysql_query("SELECT COUNT(*) FROM `voting_verification` WHERE `ip` = '" . $_SERVER['REMOTE_ADDR'] . "'");
if ($row = mysql_fetch_assoc($result)) {
$totalvotes = $row['COUNT(*)'];
}
$callbacks = 0;
if($this->ActiveCallback(4)) {
$callbacks++;
$result = mysql_query("SELECT * FROM `voting_verification` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' AND `type`='104'");
if(mysql_num_rows($result) == 0) {
mysql_query("REPLACE INTO `failed_votes` (`ip`, `type`) VALUES ('".$_SERVER['REMOTE_ADDR']."','4')");
$result = mysql_query("SELECT COUNT(*) FROM `failed_votes` WHERE `type`='4'");
if ($row = mysql_fetch_assoc($result)) {
if($row['COUNT(*)'] > 20){
$totalvotes++;
$this->setVotingVisted(104);
}
}
}
}
if($this->ActiveCallback(3)) {
$callbacks++;
$result = mysql_query("SELECT * FROM `voting_verification` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' AND `type`='103'");
if(mysql_num_rows($result) == 0) {
mysql_query("REPLACE INTO `failed_votes` (`ip`, `type`) VALUES ('".$_SERVER['REMOTE_ADDR']."','3')");
$result = mysql_query("SELECT COUNT(*) FROM `failed_votes` WHERE `type`='3'");
if ($row = mysql_fetch_assoc($result)) {
if($row['COUNT(*)'] > 20){
$totalvotes++;
$this->setVotingVisted(103);
}
}
}
}
if($this->ActiveCallback(2)) {
$callbacks++;
$result = mysql_query("SELECT * FROM `voting_verification` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' AND `type`='102'");
if(mysql_num_rows($result) == 0) {
mysql_query("REPLACE INTO `failed_votes` (`ip`, `type`) VALUES ('".$_SERVER['REMOTE_ADDR']."','2')");
$result = mysql_query("SELECT COUNT(*) FROM `failed_votes` WHERE `type`='2'");
if ($row = mysql_fetch_assoc($result)) {
if($row['COUNT(*)'] > 20){
$totalvotes++;
$this->setVotingVisted(102);
}
}
}
}
$callbacks++;
$result = mysql_query("SELECT * FROM `voting_verification` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' AND `type`='101'");
if(mysql_num_rows($result) == 0) {
mysql_query("REPLACE INTO `failed_votes` (`ip`, `type`) VALUES ('".$_SERVER['REMOTE_ADDR']."','1')");
$result = mysql_query("SELECT COUNT(*) FROM `failed_votes` WHERE `type`='1'");
if ($row = mysql_fetch_assoc($result)) {
if($row['COUNT(*)'] > 20){
$totalvotes++;
$this->setVotingVisted(101);
}
}
}
$callbacks++;
$result = mysql_query("SELECT * FROM `voting_verification` WHERE `ip` = '" . $_SERVER['REMOTE_ADDR'] . "' AND `type`='100'");
if (mysql_num_rows($result) == 0) {
mysql_query("REPLACE INTO `failed_votes` (`ip`, `type`) VALUES ('" . $_SERVER['REMOTE_ADDR'] . "','0')");
$result = mysql_query("SELECT COUNT(*) FROM `failed_votes` WHERE `type`='0'");
if ($row = mysql_fetch_assoc($result)) {
if($row['COUNT(*)'] > 20){
$totalvotes++;
$this->setVotingVisted(100);
}
}
}
return ($totalsites + $callbacks) <= $totalvotes ? true : false;
}
public function showTimeLeft($time){
$seconds = $time+43200 - time();
$hours = floor($seconds / 3600);
$mins = floor(($seconds - ($hours*3600)) / 60);
echo '<p>You have already voted today, you will be able to vote in <b>'. $hours .'</b> hours and <b>'. $mins .'</b> minutes.</p>
<div id="cntdwn" style="text-align:center;"><input type="button" class="button" id="countdown" value="Show Count Down" OnClick="startCountDown('.$seconds.');" ></div>';
}
public function setVotingVisted($type){
$type = mysql_real_escape_string($type);
$ip = $_SERVER['REMOTE_ADDR'];
$result = mysql_query("SELECT * FROM `voting_verification` WHERE `ip` = '".$ip."' AND `type`='".$type."'") or die(mysql_error());
if (mysql_num_rows($result) == 0) {
mysql_query("INSERT INTO `voting_verification` (`ip`, `type`) VALUES ('".$ip."', '".$type."')");
}
}
public function setSiteVoted($stringip, $type){
$type = mysql_real_escape_string($type);
if($type == 101) {
$ip = $_SERVER['REMOTE_ADDR'];
} else {
$ip = urldecode(base64_decode($stringip));
}
$query = "SELECT * FROM `voting_verification` WHERE `ip` = '".$ip."' AND `type`='".$type."'";
$result = mysql_query($query);
if (mysql_num_rows($result) == 0) {
mysql_query("INSERT INTO `voting_verification` (`ip`, `type`) VALUES ('".$ip."', '".$type."')");
}
}
public function getVotingLink($type){
$type = mysql_real_escape_string($type);
$result = mysql_query("SELECT `url` FROM `sites` WHERE `id`='".$type."'");
if ($row = mysql_fetch_assoc($result)) {
return $row['url'] . ((strpos($row['url'], "runetoplist") !== false || strpos($row['url'], "runelocus") !== false) ? urlencode(base64_encode($_SERVER['REMOTE_ADDR'])) : '');
}
return null;
}
public function getRuneServerVotingCallback() {
$result = 0;
$serverIDQuery = mysql_query("SELECT `url` FROM `sites` WHERE `id`='3'") or die(mysql_error());
$serverIDArray = mysql_fetch_array($serverIDQuery);
$serverID = preg_match('/\d+$/', $serverIDArray[0], $m) ? reset($m) : null ;
$HasVoted = file_get_contents("http://www.rune-server.org/toplist.php?do=hasvoted&sid=".$serverID."&ip=".$_SERVER['REMOTE_ADDR']);
if($HasVoted == "true")
return 1;
else
return 0;
}
public function ActiveCallback($site) {
$query = mysql_query("SELECT `callback` FROM `sites` WHERE `id`='".$site."'") or die(mysql_error());
$callback = mysql_fetch_array($query);
if($callback[0] == 1)
return true;
else
return false;
}
public function getTop100ArenaVotingCallback() {
$serverIDQuery = mysql_query("SELECT `url` FROM `sites` WHERE `id`='4'") or die(mysql_error());
$serverIDArray = mysql_fetch_array($serverIDQuery);
$serverID = preg_match('/\d+$/', $serverIDArray[0], $m) ? reset($m) : null ;
$HasVoted = file_get_contents("http://www.top100arena.com/check_ip.asp?id=".$serverID."&ip=".$_SERVER['REMOTE_ADDR']);
return $HasVoted;
}
public function getGTLVotingCallback() {
$result = 0;
$GTLQ = mysql_query("SELECT `value` FROM `settings` WHERE `id`='3'") or die(mysql_error());
$serverIDQuery = mysql_query("SELECT `url` FROM `sites` WHERE `id`='1'") or die(mysql_error());
$GTL = mysql_fetch_array($GTLQ);
$serverIDArray = mysql_fetch_array($serverIDQuery);
$serverID = preg_match('/\d+$/', $serverIDArray[0], $m) ? reset($m) : null ;
$xmlFileLink = simplexml_load_file("http://gamingtoplist.net/resources/GTLVote/callback.php?server=".$serverID."&cp=".$GTL[0]);
if($xmlFileLink->error) {
if($xmlFileLink->error == "Nobody has voted.") {
$result = 0;
} else {
$result = $xmlFileLink->error;
}
} else {
$total = count($xmlFileLink->entry);
for ($i = 0; $i < $total; $i++) {
if($xmlFileLink->entry[$i]->ip == $_SERVER['REMOTE_ADDR']) {
$result = 1;
}
}
}
return $result;
}
public function echoVotingButtons(){
$result = mysql_query("SELECT * FROM `sites` ORDER BY `id` ASC");
$i = 0;
while ($row = mysql_fetch_assoc($result)) {
$i++;
echo '<li><a target="_blank" href="json/set.php?site='.$row["id"].'">'.$row["name"].'</a></li>';
if($i==5) {
echo '<br>';
}
}
}
public function echoRewards(){
$result = mysql_query("SELECT * FROM `rewards` ORDER BY `id` ASC");
while ($row = mysql_fetch_assoc($result)) {
echo '<tr current="'.$row['id'].'">
<td><input type="radio" name="rewards" value="'.$row['id'].'"></td>
<td><img src="'.$row['url_to_image'].'" style="width: 32px;height: 32px;"></td>
<td>'.$row['name'].'</td>
<td>X '.$this->formatAmount($row['amount']).'</td>
</tr>';
}
}
public function getSetting($setting){
$setting = mysql_real_escape_string($setting);
$result = mysql_query("SELECT `value` FROM `settings` WHERE `setting`='".$setting."'") or die(mysql_error());
$ThemeResult = mysql_fetch_array(mysql_query("SELECT `value` FROM `settings` WHERE `setting`='theme'"));
if($setting == "theme") {
if(empty($ThemeResult[0])) {
return "default";
} else {
return $ThemeResult[0];
}
} else
if($row = mysql_fetch_assoc($result)){
return is_numeric($row['value']) ? (int)$row['value'] : $row['value'];
}
return null;
}
public function formatAmount($n){
if($n < 100000){
return '<span title="'.number_format($n).'">'. $n . '</span>';
} else if($n < 1000000) {
return '<span title="'.number_format($n).'">'. floor($n / 1000) . 'K</span>';
} else if($n < 1000000000) {
return '<span title="'.number_format($n).'">'. floor($n / 1000000) . 'M</span>';
} else if($n < 1000000000000) {
return '<span title="'.number_format($n).'">'. floor($n / 1000000000) . 'B</span>';
}
}
}
?>