From af0b1de88caa25c5dda36891942421af8b6bbac6 Mon Sep 17 00:00:00 2001 From: James Pattinson Date: Tue, 11 Feb 2025 16:14:49 +0000 Subject: [PATCH] first commit --- action.php | 148 ++++++++++++++++++++++++++++++++++ adduser.php | 18 +++++ arrivals.php | 146 ++++++++++++++++++++++++++++++++++ cancel-icon.webp | Bin 0 -> 2748 bytes functions.php | 74 +++++++++++++++++ input.html | 188 +++++++++++++++++++++++++++++++++++++++++++ land.webp | Bin 0 -> 5494 bytes lookup.php | 27 +++++++ newppr.php | 36 +++++++++ testhook.json | 79 ++++++++++++++++++ tower.php | 202 +++++++++++++++++++++++++++++++++++++++++++++++ webhook.php | 84 ++++++++++++++++++++ 12 files changed, 1002 insertions(+) create mode 100644 action.php create mode 100644 adduser.php create mode 100644 arrivals.php create mode 100644 cancel-icon.webp create mode 100644 functions.php create mode 100644 input.html create mode 100644 land.webp create mode 100644 lookup.php create mode 100644 newppr.php create mode 100644 testhook.json create mode 100644 tower.php create mode 100644 webhook.php diff --git a/action.php b/action.php new file mode 100644 index 0000000..1283c74 --- /dev/null +++ b/action.php @@ -0,0 +1,148 @@ + + + + + + + Row Details + + + + +query($sql); +} + +function opLanded() { + $conn = connectDb(); + $sql = "UPDATE submitted SET status = 'LANDED', landed_dt = NOW() where id = " . $_GET['id']; + $result = $conn->query($sql); +} + +function opDetail() { + $conn = connectDb(); + $sql = "SELECT * FROM submitted WHERE id = " . $_GET['id']; + $result = $conn->query($sql); + + if ($result->num_rows > 0) { + // Output data of the row + $row = $result->fetch_assoc(); + echo '
'; + echo '

Aircraft Reg: ' . $row['ac_reg'] . "

"; + echo "

Aircraft Type: " . $row['ac_type'] . "

"; + echo "

Callsign: " . $row['ac_call'] . "

"; + echo "

Captain's Name: " . $row['captain'] . "

"; + echo "

Arriving From: " . $row['in_from'] . "

"; + echo "

POB IN: " . $row['pob_in'] . "

"; + echo "

ETA: " . $row['eta'] . "

"; + + echo "

Fuel Required: " . $row['fuel'] . "

"; + + echo "

POB OUT: " . $row['pob_out'] . "

"; + echo "

Outbound To: " . $row['out_to'] . "

"; + echo "

ETD: " . $row['etd'] . "

"; + + + echo "

Email Address: " . $row['email'] . "

"; + echo "

Phone: " . $row['phone'] . "

"; + + + echo "

Notes: " . $row['notes'] . "

"; + echo "

PPR created at: " . $row['submitted_dt'] . " by " . $row['created_by'] . "

"; + + } else { + echo "No details found for the given ID."; + + } +} + +switch($_GET['op']) { + case "cancel": + opCancel(); + break; + case "landed": + opLanded(); + break; + case "detail": + opDetail(); + break; + + default: + +} + +?> +

+ diff --git a/adduser.php b/adduser.php new file mode 100644 index 0000000..d788006 --- /dev/null +++ b/adduser.php @@ -0,0 +1,18 @@ +prepare("INSERT INTO users (username, password) VALUES (?, ?)"); +$stmt->bind_param("ss", $username, $hashedPassword); +$stmt->execute(); +$stmt->close(); + +echo "User added successfully!"; +$conn->close(); +?> \ No newline at end of file diff --git a/arrivals.php b/arrivals.php new file mode 100644 index 0000000..cb06cb9 --- /dev/null +++ b/arrivals.php @@ -0,0 +1,146 @@ + + + + + + + + + + Swansea Daily PPR + + + + +

Swansea Inbound PPR

+ + 'Custom Heading 1', + 'column2' => 'Custom Heading 2', + 'column3' => 'Custom Heading 3' + // Add more custom headings as needed +]; + +// Define your SQL query +$sql = "SELECT ac_reg, ac_type, ac_call, TIME_FORMAT(eta,'%H:%i') AS ETA, fuel, in_from, pob_in FROM submitted WHERE DATE(eta) = CURDATE() AND status = 'NEW' ORDER BY eta ASC;"; // Replace with your table name + +// Execute the query +$result = $conn->query($sql); + +// Check if there are results +if ($result->num_rows > 0) { + // Start HTML table + echo ' + + '; + + // Output table headers (assuming column names are known) + $fields = $result->fetch_fields(); + foreach ($fields as $field) { + if ($field->name != 'ac_call') { + echo ''; + } + } + + echo ' + + '; + + // Output table rows + while ($row = $result->fetch_assoc()) { + echo ''; + foreach ($row as $key => $value) { + if ($key != 'id' && $key != 'ac_call') { + if ($key == 'ac_reg' && $row['ac_call'] != NULL) { + echo ''; + } else { + echo ''; + } + + } + } + echo ''; + } + + echo ' +
' . htmlspecialchars($field->name ?? '') . '
' . htmlspecialchars($row['ac_call'] ?? '') . "
" . $value . '
' . htmlspecialchars($value ?? '') . '
'; +} else { + echo "No results found."; +} + +// Close the database connection +$conn->close(); +?> diff --git a/cancel-icon.webp b/cancel-icon.webp new file mode 100644 index 0000000000000000000000000000000000000000..130f63b9b68514f37c2c9c214c3964dd6373fe30 GIT binary patch literal 2748 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 C;ebT| literal 0 HcmV?d00001 diff --git a/functions.php b/functions.php new file mode 100644 index 0000000..c078d2c --- /dev/null +++ b/functions.php @@ -0,0 +1,74 @@ +connect_error) { + die("Connection failed: " . $conn->connect_error); + } + + return $conn; + +} + +function require_db_auth() { + + if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) { + send_auth_headers(); + } + + $user = $_SERVER['PHP_AUTH_USER']; + $pass = $_SERVER['PHP_AUTH_PW']; + + $conn = connectDb(); + + $stmt = $conn->prepare("SELECT password FROM users WHERE username = ?"); + $stmt->bind_param("s", $user); + $stmt->execute(); + $stmt->store_result(); + $stmt->bind_result($stored_hash); + $stmt->fetch(); + + // Verify the password + if ($stmt->num_rows == 0 || !password_verify($pass, $stored_hash)) { + send_auth_headers(); + } + + // Close the connection + $stmt->close(); + $conn->close(); + +} + +function send_auth_headers() { + header('WWW-Authenticate: Basic realm="Restricted Area"'); + header('HTTP/1.0 401 Unauthorized'); + die("Authentication required."); +} + +function require_auth() { + $AUTH_USER = 'admin'; + $AUTH_PASS = 'admin'; + header('Cache-Control: no-cache, must-revalidate, max-age=0'); + $has_supplied_credentials = !(empty($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_PW'])); + $is_not_authenticated = ( + !$has_supplied_credentials || + $_SERVER['PHP_AUTH_USER'] != $AUTH_USER || + $_SERVER['PHP_AUTH_PW'] != $AUTH_PASS + ); + if ($is_not_authenticated) { + header('HTTP/1.1 401 Authorization Required'); + header('WWW-Authenticate: Basic realm="PPR"'); + echo 'Text to send if user hits Cancel button'; + exit; + } +} \ No newline at end of file diff --git a/input.html b/input.html new file mode 100644 index 0000000..6d999ed --- /dev/null +++ b/input.html @@ -0,0 +1,188 @@ + + + + + + + + Manual PPR + + + + +
+

Log new PPR

+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+
+ + +
+ +
+ + +
+ + + +
+ + + diff --git a/land.webp b/land.webp new file mode 100644 index 0000000000000000000000000000000000000000..e2b5aa60018c08cbacc7ba57015f734fa30ea90d GIT binary patch literal 5494 zcmeHKi(eC07QR75MG)WBTI)E{D%K&Bkc1=^$|E3Az!)Ba!pdZ35=QfKGCZ_yt&jCl z`>SH>17Ag?>I$vyE;OBwCMQoF>R8)UH+nfxw^@nlH)&W~O zV7i!hfQ<@lA{mDh_=EC%m=W-FAy1)*;5Bh-~AN*V|f+P?x_WbjaE6@2Wyb`vAsQw2wu8h)~2rgmxcpAG5&1 z*s~a+LFe5RPf2mQz-N%viqPF{2!-b()bBJxp;LXj!JIgcwwyyK8?;LQ5~0d<2)$|p z?tmpXnEm)nBvzwcF@px@ok4KfpM&a0`o^KIF<7Xck)ur)Tb2f4J z=G*c=t-|}Y>`sZgmp^ylc0=94osI!`!mwZ_r<*M_ue#S()gLN%O(;}-Jn7}X9qN7M zt~TlZ!B>ADHnZ}^%Y4=)+tZu1FJ2n-)wT_ve!Soxd}02gbD5(DExI`Hbkx<7p7FKU zo!{*qBD^_y;qkHiBF>v$4}SdR56X&OA=RbxzZjvMe7 zPwu_nrOcV#P%v*w&t7-ZV>jNpyY=G9;VYUH4f9)`=sqQv8kglpo~}K4^4%Ww$*(Q? zOjEl2>z6+G;#$hy{6eZO}iEJN&L5iHx-_mQ&bma9x-oEL~Mxn=>saXc4*qw*03iB8so{E6T9Vg z-I}D2IJDy1X+ur)>X15h!u0M-Trp;@;PAbpk9T#Ozy3lnxBT$bwO+#Q&#^d+Olu`DfCt{gY>p zytjSix|WgVF}4>{9ve1S=3@JHM%?UEvufJqs3*71jqY2QbAC{W<>yZ^^@Z2D3olJX zo8yS_w^whzczq8(a%+#z3f{Y1c5uo1h}I@oluc1g-}b)J6cjOO{dDrLM#Zwko8#`A zk6Rv@K5Y4D^^xAWOVZ5mO`51)a4lsDo-yn5^)-X^%N}^oPKa7|nP&0H4@wsf*0{`l zn#O-4Os-Env#e#?$|IN3U*A^2DV8);w0`m1^-Qhn z6W%8)a>lWxb&bt6u6<{Rp8L7LtUP8vNvalykft5elD0fO`J4B41^uvK`|+{0gix_% z`R3M$mbVak>OHovaIW_!WpiWerVS`!r`P*xw%8+5@{Fl3%iyhJ9F4>l&=WRvu=L6h zo4d@9-vJyX>ms$4m4JK6f<#Ls+Vq8SAdt=%WnHCf4crg$WAVi>%5NjKB?b6~!?hkx zCE)&W{WF~0Vqe^5z~a$e`pcqumUViHT>?V(5QK)pOyD}sm|?<{(F!s;Mg?4?QmrSI zdIgCoV)ZJmK1Pj#(V~^zP+#x~gA`>|?U@EuwO852kHsoG9__L7AW#D&J@$=qH$~52 z19N#o1Q&`)-m`S@z~gMeYwN!U* zci5dCeR&*CF)j>lw1r~Jx%Ps85lNhp5)06ZtD=oq z)W*g++!8rFgf>Efvp$DVocRSIxV7>9B6L6!F*4|;H@N5$F?FLM4i|&!85hkldI_q? zSVpN)kOZl;Y6z7&h9oGO(GjdxZ6PULETzZcTPdutEgbIGmGlm3jQ**+82mP@>|B*chFX)Ws@v zDp5GK-y)agePR6@AIHQ8riYqAc}iT^;3_GhPv%)laPiqLmpu+|YZkt_4A^!IB~S)R zU?H)#-jN;X9j}q3p7cEueTIwSth4@?skqUlb&$q+AnYvvrp;n!`jMT(q%EVTXkVTl zs+47L{~&yicG_5IC9p<)X52H@0jsp=6jq&zAZeN+RE#y2&}tY9p;FKmQms*GG_g>< z&)?&+3S|_}CfYz6Pym*s)Go16e$k@>mSx2($R?@)>yuEB0Tpz(9CDY7ox)d!{MQvq zOCra^^2siTxc2>}CfWlCiiU2Xw?lETnhA!rQYCf)k8f|TK7KnFh~)E?KZ99Hq(ch} rctBqiVOyJx$2yNr1v(YzRG?FVP6av@`2SO&{f8Rsgs)U(@H6Z`PG~`7 literal 0 HcmV?d00001 diff --git a/lookup.php b/lookup.php new file mode 100644 index 0000000..61aa740 --- /dev/null +++ b/lookup.php @@ -0,0 +1,27 @@ +query($sql); + +// Fetch data +$data = []; +if ($result->num_rows > 0) { + while ($row = $result->fetch_assoc()) { + $data[] = $row; + } +} + +// Close connection +$conn->close(); + +// Return JSON output +header('Content-Type: application/json'); +echo json_encode($data, JSON_PRETTY_PRINT); + +?> + diff --git a/newppr.php b/newppr.php new file mode 100644 index 0000000..b7eddae --- /dev/null +++ b/newppr.php @@ -0,0 +1,36 @@ +Received POST Data:"; + echo "
    "; + foreach ($_POST as $key => $value) { + $columns[] = "`" . $conn->real_escape_string($key) . "`"; + $values[] = "'" . $conn->real_escape_string($value) . "'"; + echo "
  • " . htmlspecialchars($key) . ": " . htmlspecialchars($value) . "
  • "; + } + if (!empty($columns)) { + $sql = "INSERT INTO submitted (created_by, " . implode(",", $columns) . ") VALUES ('" . $_SERVER['PHP_AUTH_USER'] . "'," . implode(",", $values) . ")"; + echo $sql; + + if ($conn->query($sql) === TRUE) { + echo "

    Data successfully inserted into database.

    "; + echo ''; + } else { + echo "

    Error inserting data: " . $conn->error . "

    "; + } + } + echo "
"; +} else { + echo "

No POST data received.

"; +} + +?> + diff --git a/testhook.json b/testhook.json new file mode 100644 index 0000000..0f4422d --- /dev/null +++ b/testhook.json @@ -0,0 +1,79 @@ +{ + "form_title": "PPR Request Form", + "form_slug": "ppr-request-form-joclld", + "submission": { + "Aircraft Registration": "G-BJAJ", + "Aircraft Type": "AA5", + "Callsign": "TEST1", + "Captain or PIC Name": "TESTY MCTESTFACE", + "Arriving From": "Wellesbourne", + "ETA": "11\/02\/2025 14:33", + "POB Inbound": "2", + "Fuel Required": "100LL", + "Departing To": "Pembrey", + "ETD": "12\/02\/2025 00:00", + "POB Outbound": "2", + "Email": "james@pattinson.org", + "Phone Number": "+441212121212", + "Additional Information": "Here are some notes man" + }, + "data": { + "617dd0cd-2d17-4d7f-826b-5348afdb30b3": { + "value": "G-BJAJ", + "name": "Aircraft Registration" + }, + "148a55d8-5357-49a3-b9aa-2a5d4dc64173": { + "value": "AA5", + "name": "Aircraft Type" + }, + "52d7bc90-9d26-48a1-82db-b91b4ccd2f92": { + "value": "TEST1", + "name": "Callsign" + }, + "49b2de0d-5bd6-4b0c-86dd-b18b85f8b8ff": { + "value": "TESTY MCTESTFACE", + "name": "Captain or PIC Name" + }, + "4b4f7ecd-f80c-4e86-a7ab-6fadb3220df8": { + "value": "Wellesbourne", + "name": "Arriving From" + }, + "ca4ac44f-0388-4a70-a072-38276ed2ac13": { + "value": "11\/02\/2025 14:33", + "name": "ETA" + }, + "6fc47c54-7383-48fd-93fc-d8080f5ed8f5": { + "value": "2", + "name": "POB Inbound" + }, + "d153c8a5-8345-4e6a-abfd-cf8adcc06f2d": { + "value": "100LL", + "name": "Fuel Required" + }, + "ba95fd3f-1ec0-4553-95d3-a0b6a850738d": { + "value": "Pembrey", + "name": "Departing To" + }, + "53d60abd-eb75-4b1f-92b6-5d47d26367ec": { + "value": "12\/02\/2025 00:00", + "name": "ETD" + }, + "d1ac0860-31f4-4914-9d0b-cae42dfc7eda": { + "value": "2", + "name": "POB Outbound" + }, + "0198c86c-edd1-4aaf-93a1-d68f8fc8c365": { + "value": "james@pattinson.org", + "name": "Email" + }, + "e40ebc2d-887b-42b3-931d-c981c76b0c20": { + "value": "+441212121212", + "name": "Phone Number" + }, + "73d26c2c-1d3d-44e2-82fc-3a1a2600c393": { + "value": "Here are some notes man", + "name": "Additional Information" + } + }, + "message": "Please do not use the `submission` field. It is deprecated and will be removed in the future." +} \ No newline at end of file diff --git a/tower.php b/tower.php new file mode 100644 index 0000000..2b13772 --- /dev/null +++ b/tower.php @@ -0,0 +1,202 @@ + + + + + + + + + + Swansea Daily PPR + + + + + +

Swansea Inbound PPR

+ +connect_error) { + die("Connection failed: " . $conn->connect_error); +} + +$custom_headings = [ + 'column1' => 'Custom Heading 1', + 'column2' => 'Custom Heading 2', + 'column3' => 'Custom Heading 3' + // Add more custom headings as needed +]; + +// Define your SQL query +$sql = "SELECT id, ac_reg, ac_type, ac_call, TIME_FORMAT(eta,'%H:%i') AS ETA, fuel, in_from, pob_in FROM submitted WHERE DATE(eta) = CURDATE() AND status = 'NEW' ORDER BY eta ASC;"; // Replace with your table name + +// Execute the query +$result = $conn->query($sql); + +// Check if there are results +if ($result->num_rows > 0) { + // Start HTML table + echo ' + + '; + + // Output table headers (assuming column names are known) + $fields = $result->fetch_fields(); + foreach ($fields as $field) { + if ($field->name != 'id' && $field->name != 'ac_call') { + echo ''; + } + + } + echo ''; + + echo ' + + '; + + // Output table rows + while ($row = $result->fetch_assoc()) { + echo ''; + foreach ($row as $key => $value) { + if ($key != 'id' && $key != 'ac_call') { + if ($key == 'ac_reg' && $row['ac_call'] != NULL) { + echo ''; + } else { + echo ''; + } + } + } + echo ''; + echo ''; + } + + echo '
' . htmlspecialchars($field->name ?? '') . 'actions
' . htmlspecialchars($row['ac_call'] ?? '') . "
" . $value . '
' . htmlspecialchars($value ?? '') . '
'; +} else { + echo "No results found."; +} + +// Close the database connection +$conn->close(); + +?> + +
+ + \ No newline at end of file diff --git a/webhook.php b/webhook.php new file mode 100644 index 0000000..52d6125 --- /dev/null +++ b/webhook.php @@ -0,0 +1,84 @@ +format('Y-m-d H:i:s'); +$pob_in = $json['data'][$fieldMap['pob_in']]['value']; + +if (array_key_exists($fieldMap['out_to'], $json['data'])) { + $date = DateTime::createFromFormat('d/m/Y H:i', $json['data'][$fieldMap['etd']]['value']); + $etd = $date->format('Y-m-d H:i:s'); + $pob_out = $json['data'][$fieldMap['pob_out']]['value']; + $out_to = $json['data'][$fieldMap['out_to']]['value']; +} + +$email = $json['data'][$fieldMap['email']]['value']; +$phone = $json['data'][$fieldMap['phone']]['value']; +$notes = $json['data'][$fieldMap['notes']]['value']; + +mysqli_stmt_bind_param($stmt, "ssssssisissss", $ac_reg, $ac_type, $captain, $fuel, $in_from, $eta, $pob_in, $etd, $pob_out, $email, $phone, $notes, $created_by); + +// Execute the statement +if (mysqli_stmt_execute($stmt)) { + error_log("Record inserted for " . $ac_reg); +} else { + error_log("Error: " . mysqli_stmt_error($stmt)); +} + +// Close the statement and connection +mysqli_stmt_close($stmt); +mysqli_close($mysqli); +?>