Advertisement
Guest User

counterClass.php

a guest
Aug 10th, 2017
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.68 KB | None | 0 0
  1. <?php
  2. class CounterHandler
  3. {
  4.     public $mysqli;
  5.     public $timestamp;
  6.     public $OnlineTimestamp;
  7.     const DayInterval = 86400; // 24 hours * 60 min * 60 sec = 86400 = 1 day
  8.     const MinuteInterval = 900; // 15 Minutes  
  9.     function __construct($automatic = false)
  10.     {
  11.         $this->timestamp = time();
  12.         $this->OnlineTimestamp = $this->timestamp - self::MinuteInterval;
  13.         /* Create new MySQLi session*/
  14.         $configPath = $_SERVER['DOCUMENT_ROOT'] . "/connect/config.php";
  15.         require_once($configPath);
  16.         $this->mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  17.         mysqli_set_charset($this->mysqli, DB_CHARSET);
  18.         if($this->mysqli->connect_errno)
  19.         {
  20.             die("Connection refused: " . $this->mysqli->connect_error);    
  21.         }
  22.         else
  23.         {
  24.             if(!$automatic)
  25.             {
  26.                 $this->InsertGuestIntoDatabase();
  27.             }
  28.             else
  29.             {
  30.                 echo $this->DeleteGuestsFromDatabase();
  31.             }  
  32.         }
  33.     }
  34.    
  35.     /* function ShowDates()
  36.     {          
  37.         $todayTimestamp = mktime(0,0,0, date("m"), date("d") , date("Y"));
  38.         $yesterdayTimestamp = $todayTimestamp - self::DayInterval;
  39.         $dateToday = date("d.m.Y - H:i",$todayTimestamp);
  40.         $dateYesterday = date("d.m.Y - H:i", $yesterdayTimestamp);
  41.         echo $yesterdayTimestamp . "<br>";
  42.         echo $dateYesterday . "<br>";
  43.         echo $todayTimestamp . "<br>";
  44.         echo $dateToday . "<br>";
  45.         echo time() . "<br>";
  46.         echo time() - 900;
  47.     } */
  48.    
  49.     function InsertGuestIntoDatabase()
  50.     {
  51.         // ** Headers **//
  52.         $position    = $_SERVER["REQUEST_URI"];
  53.         $fromWhere   = $_SERVER["HTTP_REFERER"];
  54.         $browser     = $_SERVER["HTTP_USER_AGENT"];
  55.         $ip          = $_SERVER['HTTP_X_FORWARDED_FOR'];
  56.        
  57.         $sql = "SELECT * from `counter` WHERE `ip`='$ip'";
  58.         $query = $this->mysqli->query($sql);
  59.         $result = $query->num_rows;
  60.         //Insert new guest
  61.         if($result == 0)
  62.         {          
  63.             $sql_insert = "INSERT INTO `counter`(`ip`,`browser`,`woher`,`ort`,`timed`) VALUES ('$ip','$browser','$fromWhere','$position','$this->timestamp')";
  64.             if(!mysqli_query($this->mysqli, $sql_insert))
  65.             {      
  66.                 die("Cannot add guest to database. " . $this->mysqli->error);
  67.             }
  68.            
  69.         }
  70.         //Update existing guest data
  71.         else
  72.         {
  73.             $sql_update = "UPDATE `counter` SET `timed`='$this->timestamp', `ort`='$position', `browser`='$browser' WHERE `ip`='$ip'";
  74.             if(!mysqli_query($this->mysqli, $sql_update))
  75.             {      
  76.                 die("Cannot guest data in database counter. " . $this->mysqli->error);
  77.             }
  78.         }
  79.         echo $this->ReadGuestsFromDatabase();
  80.     }
  81.    
  82.     function ReadGuestsFromDatabase()
  83.     {
  84.         $value = "";
  85.         $sql_today = "SELECT * FROM `counter` ORDER BY `id` DESC";
  86.         $sql_yesterday = "SELECT * FROM `counter_stats` ORDER BY `id` DESC";
  87.         $sql_online = "SELECT * FROM `counter` WHERE `timed` > '$this->OnlineTimestamp'";
  88.        
  89.         $query_today = $this->mysqli->query($sql_today);
  90.         $today = $query_today->num_rows;
  91.         $total = mysqli_fetch_array($query_today);
  92.         $total = $total['id'];
  93.        
  94.         $query_online = $this->mysqli->query($sql_online);
  95.         $online = $query_online->num_rows;
  96.        
  97.         $query_yesterday = $this->mysqli->query($sql_yesterday);
  98.         $yesterday = mysqli_fetch_array($query_yesterday);
  99.         $yesterday = $yesterday['guests'];
  100.        
  101.         $value = "Today: $today | Total: $total | Online: $online | Yesterday: $yesterday ";
  102.         return $value;
  103.     }
  104.  
  105.     function DeleteGuestsFromDatabase()
  106.     {
  107.         $value = "";
  108.         $todayTimestamp = mktime(0,0,0, date("m"), date("d") , date("Y"));
  109.         $yesterdayTimestamp = $todayTimestamp - self::DayInterval;
  110.         $dateToday = date("d.m.Y - H:i",$todayTimestamp);
  111.         $dateYesterday = date("d.m.Y - H:i", $yesterdayTimestamp);
  112.        
  113.         $sql_guests_read = "SELECT * FROM `counter` WHERE `timed` < '$todayTimestamp' ORDER BY `id` DESC";     
  114.         $sql_guests_delete = "DELETE FROM `counter` WHERE `timed` < '$todayTimestamp'";
  115.        
  116.         $query_guests = $this->mysqli->query($sql_guests_read);
  117.         $guests_yesterday = $query_guests->num_rows;
  118.         $guests_yesterday_total = mysqli_fetch_array($query_guests);
  119.         $guests_yesterday_total = $guests_yesterday_total['id'];
  120.        
  121.         if($guests_yesterday > 0)
  122.         {
  123.             $sql_guests_insert = "INSERT INTO `counter_stats` (`date`,`guests`,`total`) VALUES ('$dateYesterday', '$guests_yesterday', '$guests_yesterday_total')";
  124.             if(mysqli_query($this->mysqli, $sql_guests_insert))
  125.             {
  126.                 $this->mysqli->query($sql_guests_delete);
  127.                 $value = "Guest database was successfully updated.";
  128.             }
  129.             else
  130.             {
  131.                 die("Cannot delete insert into counter_stats database. Guests were not deleted.");
  132.             }
  133.         }
  134.         else
  135.         {
  136.             $value = "No entires in guests database.";
  137.         }
  138.        
  139.         return $value;
  140.        
  141.     }  
  142. }
  143.  
  144. $action = $_GET['action'];
  145. $code = $_GET['code'];
  146.  
  147. //Automatic Cronjob
  148. if($action == "delete" AND $code == "geheim")
  149. {
  150.     $object = new CounterHandler(true);
  151. }
  152. //User
  153. else
  154. {
  155.     $object = new CounterHandler();
  156. }
  157.  
  158.  
  159.  
  160. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement