-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinsert.php
88 lines (68 loc) · 2.29 KB
/
insert.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
require_once("paranoid.inc");
if (!isset($_GET['action'])) {
die('Invalid action');
}
$action = $_GET['action'];
if (!in_array($action, ["insert"])) {
die('Invalid action');
}
if (!isset($_GET['date'])) {
die('Invalid date');
}
$eventDate = extractDate($_GET['date']);
if (!isset($_GET['service'])) {
die('Invalid service');
}
$service = $_GET['service'];
if (!isset($_GET['status'])) {
die('Invalid status');
}
$status = $_GET['status'];
if (!isset($_GET['message'])) {
die('Invalid message');
}
$message = $_GET['message'];
$messsageID = md5($message);
function extractDate($date)
{
$date_string = str_replace("_", " ", $date);
echo $date_string;
$year = date("Y");
$dateTime = DateTime::createFromFormat("M j H:i:s Y", $date_string . " " . $year);
if ($dateTime === false) {
die("Invalid date format");
} else {
return $dateTime->format("Y-m-d H:i:s");
}
}
function extract_IP($message)
{
$ipv4Regex = '/\b(?:\d{1,3}\.){3}\d{1,3}\b/';
if (preg_match($ipv4Regex, $message, $matches)) {
return $matches[0];
} else {
return "";
}
}
if (!file_exists(LOGS_DATABASE)) {
initiate_db();
}
$db = new SQLite3(LOGS_DATABASE);
// Insert the log entry in the SQLITE3 database
if ($db) {
$query = $db->prepare('INSERT INTO logs (date, service, status, ip, message, messageID) VALUES (:date, :service, :status, :ip, :message, :messageID)');
$query->bindValue(':date', $eventDate, SQLITE3_TEXT);
$query->bindValue(':service', $service, SQLITE3_TEXT);
$query->bindValue(':status', $status, SQLITE3_TEXT);
$query->bindValue(':ip', extract_IP($message), SQLITE3_TEXT);
$query->bindValue(':message', $message, SQLITE3_TEXT);
$query->bindValue(':messageID', $messsageID, SQLITE3_TEXT);
if ($query->execute() === false) {
die("Error in executing the insert query or Entry already present");
} else {
// Send a notification
notify_user($eventDate, $message, extract_IP($message));
}
$db->close();
}