{ ^ LIBRARY ^ ] <===================>
// initialization set
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
// requirements
require_once("includes/db_config.php");
require_once("includes/functions.php");
$is_valid_input = false;
if (isset($_POST['email'])) {
$email_to = "wildrealinit@gmail.com";
$email_name = "wildREA";
$email_subject = "Hildebird: New message!";
if (
!isset($_POST['name']) ||
!isset($_POST['email']) ||
!isset($_POST['message'])
) {
die('It looks like there is a problem with your form data.');
}
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$error_message = "";
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error_message .= "Email address does not seem valid.
";
$is_valid_input = true;
}
$string_exp = "/^[A-Za-z .'-]+$/";
if (!preg_match($string_exp, $name)) {
$error_message .= 'Name does not seem valid.
';
$is_valid_input = true;
}
if (strlen($message) < 2) {
$error_message .= 'Message should not be less than 2 characters
';
$is_valid_input = true;
}
if (strlen($error_message) > 0) {
die($error_message);
}
// establishing connection to database
$mysqli = db_connect($db_host, $db_user, $db_password, $db_name);
$is_valid_input = true;
if ($is_valid_input) {
// save in database
$stmt = $mysqli->prepare("INSERT INTO hildebird_messages (name, email, message) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $name, $email, $message);
if ($stmt->execute()) {
if ($stmt->affected_rows > 0) {
//PHPMailer Object
$mail = new PHPMailer(true); //Argument true in constructor enables exceptions
// Configure an SMTP
$mail->isSMTP();
// $mail->SMTPDebug = 0; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Host = "smtp.gmail.com";
$mail->Username = "wildrealinit@gmail.com";
$mail->Password = "mcma flaz fapk ivlo"; // use app password | https://myaccount.google.com/apppasswords
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // TLS encryption
$mail->Port = 587; // TLS encryption
$mail->isHTML(false);
// sender information
$mail->setFrom($email, $name);
// primary recipients
$mail->addAddress($email_to, $email_name);
// address to which recipient will reply
$mail->Subject = $email_subject;
// email body construction
$email_message = "Form submission details:\n\n";
$email_message .= "Name: " . clean_string($name) . "\n";
$email_message .= "Email: " . clean_string($email) . "\n";
$email_message .= "Message: " . clean_string($message) . "\n";
$mail->Body = $email_message;
if (!$mail->Send()) {
$error = 'Mail error: ' . $mail->ErrorInfo;
$is_valid_input = false;
} else {
$error = 'Message sent!';
// closes prepare statement and database connection
$stmt->close();
$mysqli->close();
// redirect to contact page
header("Location: contact.php?status=success");
exit; // Make sure to call exit after redirect
}
} else {
// redirect to contact page by error
header("Location: contact.php?status=error");
exit; // Make sure to call exit after redirect
}
}
}
}