diff options
Diffstat (limited to 'app/controllers/contact.controller.php')
-rw-r--r-- | app/controllers/contact.controller.php | 56 |
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'; |