'mysql', 'host' => DB_HOST, 'port' => DB_PORT, 'database' => DB_NAME, 'username' => DB_USER, 'password' => DB_PASSWORD, 'charset' => 'utf8mb4' ]); if ($db->error) dieWithCode(404, "db connect error"); $db->query("CREATE TABLE IF NOT EXISTS stat ( id INT(11) AUTO_INCREMENT PRIMARY KEY, action VARCHAR(255), date DATETIME, ip VARCHAR(255), useragent VARCHAR(512) )"); function visitor($action = "Visit") { global $db; $ip = $_SERVER["REMOTE_ADDR"]; if (empty($ip)) $ip = "127.0.01"; $useragent = $_SERVER["HTTP_USER_AGENT"]; $data = [ 'action' => $action, 'date' => Medoo::raw('NOW()'), 'ip' => $ip, 'useragent' => $useragent ]; $existing = $db->select("stat", [ "id", "action", "useragent" ], [ "ip" => $ip, ]); if ($existing) { foreach($existing as $item) { if ($item["action"] != "Download") { $item["action"] = $action; $item["date"] = $data["date"]; $item["useragent"] = $data["useragent"]; } else { $item["date"] = $data["date"]; $item["useragent"] = $data["useragent"]; } $db->update('stat', [ 'action' => $item["action"], 'date' => $item["date"], 'useragent' => $item['useragent'] ], [ 'id[=]' => $item["id"] ]); } } else { $db->insert('stat', $data); } return $db->count("stat"); } if(isset($_GET["action"])) { visitor(); }