aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/contact.controller.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/contact.controller.php')
-rw-r--r--app/controllers/contact.controller.php56
1 files changed, 56 insertions, 0 deletions
diff --git a/app/controllers/contact.controller.php b/app/controllers/contact.controller.php
new file mode 100644
index 0000000..78d5c18
--- /dev/null
+++ b/app/controllers/contact.controller.php
@@ -0,0 +1,56 @@
+<?php
+
+use PHPMailer\PHPMailer\PHPMailer;
+use PHPMailer\PHPMailer\Exception;
+
+if ($_SERVER['REQUEST_METHOD'] === 'POST') {
+
+ $submit = new Form();
+
+ $submit->name = $name = $_POST['26471'] ?? null;
+ $submit->email = $email = $_POST['26472'] ?? null;
+ $submit->message = $message = $_POST['26473'] ?? null;
+ $submit->spam = $spam = $_POST['agree'] ?? false;
+
+ $validEmail = PHPMailer::validateAddress($submit->email, 'auto');
+
+ if ((bool) empty($submit->email) == true
+ || (bool) empty($submit->message) == true
+ ) {
+ include '../app/views/contact.view.php';
+ return;
+ }
+
+ if ((bool) $spam == true) {
+ error_log('Contact Form Spam: Error 403');
+ return http_response_code(403);
+ }
+
+ if ($validEmail === false ) {
+ $emailError = 'Invalid email: ' . "\r" . '<b>'. $submit->email . '</b>';
+ include '../app/views/contact.view.php';
+ return;
+ }
+
+ $formSuccess = true;
+
+ $name = null;
+ $email = null;
+ $message = null;
+ $spam = false;
+
+ include '../app/views/contact.view.php';
+ fastcgi_finish_request();
+
+ $contact['database']->insert(
+ 'contactform', [
+ 'name' => $submit->name,
+ 'email' => $submit->email,
+ 'message' => $submit->message,
+ ]
+ );
+
+ return sendMail($submit->name, $submit->email, $submit->message);
+}
+
+require '../app/views/contact.view.php';