report.php 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. require_once "./SleekDB/SleekDB.php";
  3. require_once "./config.php";
  4. $store = \SleekDB\SleekDB::store('speedlogs', './',[
  5. 'auto_cache' => false,
  6. 'timeout' => 120
  7. ]);
  8. $reportData = [
  9. "ip" => filter_var($_POST['ip'], FILTER_SANITIZE_STRING),
  10. "isp" => filter_var($_POST['isp'], FILTER_SANITIZE_STRING),
  11. "addr" => filter_var($_POST['addr'], FILTER_SANITIZE_STRING),
  12. "dspeed" => filter_var($_POST['dspeed'], FILTER_SANITIZE_STRING),
  13. "uspeed" => filter_var($_POST['uspeed'], FILTER_SANITIZE_STRING),
  14. "ping" => filter_var($_POST['ping'], FILTER_SANITIZE_STRING),
  15. "jitter" => filter_var($_POST['jitter'], FILTER_SANITIZE_STRING),
  16. "created" => date('Y-m-d H:i:s', time()),
  17. ];
  18. $oldLog = $store->where('ip', '=', $reportData['ip'])->fetch();
  19. if (is_array($oldLog) && empty($oldLog)) {
  20. $results = $store->insert($reportData);
  21. if ($results['_id'] > MAX_LOG_COUNT) {
  22. $store->where('_id', '=', $results['_id'] - MAX_LOG_COUNT)->delete();
  23. }
  24. } else {
  25. $ip = $reportData['ip'];
  26. unset($reportData['ip']);
  27. $store->where('ip', '=', $ip)->update($reportData);
  28. }