Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class CounterHandler
- {
- public $mysqli;
- public $timestamp;
- public $OnlineTimestamp;
- const DayInterval = 86400; // 24 hours * 60 min * 60 sec = 86400 = 1 day
- const MinuteInterval = 900; // 15 Minutes
- function __construct($automatic = false)
- {
- $this->timestamp = time();
- $this->OnlineTimestamp = $this->timestamp - self::MinuteInterval;
- /* Create new MySQLi session*/
- $configPath = $_SERVER['DOCUMENT_ROOT'] . "/connect/config.php";
- require_once($configPath);
- $this->mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
- mysqli_set_charset($this->mysqli, DB_CHARSET);
- if($this->mysqli->connect_errno)
- {
- die("Connection refused: " . $this->mysqli->connect_error);
- }
- else
- {
- if(!$automatic)
- {
- $this->InsertGuestIntoDatabase();
- }
- else
- {
- echo $this->DeleteGuestsFromDatabase();
- }
- }
- }
- /* function ShowDates()
- {
- $todayTimestamp = mktime(0,0,0, date("m"), date("d") , date("Y"));
- $yesterdayTimestamp = $todayTimestamp - self::DayInterval;
- $dateToday = date("d.m.Y - H:i",$todayTimestamp);
- $dateYesterday = date("d.m.Y - H:i", $yesterdayTimestamp);
- echo $yesterdayTimestamp . "<br>";
- echo $dateYesterday . "<br>";
- echo $todayTimestamp . "<br>";
- echo $dateToday . "<br>";
- echo time() . "<br>";
- echo time() - 900;
- } */
- function InsertGuestIntoDatabase()
- {
- // ** Headers **//
- $position = $_SERVER["REQUEST_URI"];
- $fromWhere = $_SERVER["HTTP_REFERER"];
- $browser = $_SERVER["HTTP_USER_AGENT"];
- $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
- $sql = "SELECT * from `counter` WHERE `ip`='$ip'";
- $query = $this->mysqli->query($sql);
- $result = $query->num_rows;
- //Insert new guest
- if($result == 0)
- {
- $sql_insert = "INSERT INTO `counter`(`ip`,`browser`,`woher`,`ort`,`timed`) VALUES ('$ip','$browser','$fromWhere','$position','$this->timestamp')";
- if(!mysqli_query($this->mysqli, $sql_insert))
- {
- die("Cannot add guest to database. " . $this->mysqli->error);
- }
- }
- //Update existing guest data
- else
- {
- $sql_update = "UPDATE `counter` SET `timed`='$this->timestamp', `ort`='$position', `browser`='$browser' WHERE `ip`='$ip'";
- if(!mysqli_query($this->mysqli, $sql_update))
- {
- die("Cannot guest data in database counter. " . $this->mysqli->error);
- }
- }
- echo $this->ReadGuestsFromDatabase();
- }
- function ReadGuestsFromDatabase()
- {
- $value = "";
- $sql_today = "SELECT * FROM `counter` ORDER BY `id` DESC";
- $sql_yesterday = "SELECT * FROM `counter_stats` ORDER BY `id` DESC";
- $sql_online = "SELECT * FROM `counter` WHERE `timed` > '$this->OnlineTimestamp'";
- $query_today = $this->mysqli->query($sql_today);
- $today = $query_today->num_rows;
- $total = mysqli_fetch_array($query_today);
- $total = $total['id'];
- $query_online = $this->mysqli->query($sql_online);
- $online = $query_online->num_rows;
- $query_yesterday = $this->mysqli->query($sql_yesterday);
- $yesterday = mysqli_fetch_array($query_yesterday);
- $yesterday = $yesterday['guests'];
- $value = "Today: $today | Total: $total | Online: $online | Yesterday: $yesterday ";
- return $value;
- }
- function DeleteGuestsFromDatabase()
- {
- $value = "";
- $todayTimestamp = mktime(0,0,0, date("m"), date("d") , date("Y"));
- $yesterdayTimestamp = $todayTimestamp - self::DayInterval;
- $dateToday = date("d.m.Y - H:i",$todayTimestamp);
- $dateYesterday = date("d.m.Y - H:i", $yesterdayTimestamp);
- $sql_guests_read = "SELECT * FROM `counter` WHERE `timed` < '$todayTimestamp' ORDER BY `id` DESC";
- $sql_guests_delete = "DELETE FROM `counter` WHERE `timed` < '$todayTimestamp'";
- $query_guests = $this->mysqli->query($sql_guests_read);
- $guests_yesterday = $query_guests->num_rows;
- $guests_yesterday_total = mysqli_fetch_array($query_guests);
- $guests_yesterday_total = $guests_yesterday_total['id'];
- if($guests_yesterday > 0)
- {
- $sql_guests_insert = "INSERT INTO `counter_stats` (`date`,`guests`,`total`) VALUES ('$dateYesterday', '$guests_yesterday', '$guests_yesterday_total')";
- if(mysqli_query($this->mysqli, $sql_guests_insert))
- {
- $this->mysqli->query($sql_guests_delete);
- $value = "Guest database was successfully updated.";
- }
- else
- {
- die("Cannot delete insert into counter_stats database. Guests were not deleted.");
- }
- }
- else
- {
- $value = "No entires in guests database.";
- }
- return $value;
- }
- }
- $action = $_GET['action'];
- $code = $_GET['code'];
- //Automatic Cronjob
- if($action == "delete" AND $code == "geheim")
- {
- $object = new CounterHandler(true);
- }
- //User
- else
- {
- $object = new CounterHandler();
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement