The Web Design Group

... Making the Web accessible to all.

Welcome Guest ( Log In | Register )

> Need Confirmation Message to Remain on Page
chome4
post Aug 22 2019, 09:03 AM
Post #1


Newbie
*

Group: Members
Posts: 19
Joined: 6-April 16
Member No.: 24,129



I have a working php contact form:

<?php
$msg = "";
use PHPMailer\PHPMailer\PHPMailer;
include_once "PHPMailer/PHPMailer.php";
include_once "PHPMailer/Exception.php";
include_once "PHPMailer/SMTP.php";

if (isset($_POST['submit'])) {
$subject = $_POST['subject'];
$email = $_POST['email'];
$message = $_POST['message'];

$mail = new PHPMailer();

//if we want to send via SMTP
$mail->Host = "smtp.34sp.com";
//$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Username = "email";
$mail->Password = "password";
$mail->SMTPSecure = "ssl"; //TLS
$mail->Port = 465; //587

$mail->addAddress('email');
$mail->setFrom($email);
$mail->Subject = $subject;
$mail->isHTML(true);
$mail->Body = $message;
//$mail->addAttachment($file);

if ($mail->send())
echo "<h1>Sent Successfully! Thank you"." ".$name.", We will contact you shortly!</h1></br>
Use the 'back' arrow to go back to the main page...";
else
echo "Something went wrong!";
}
?>

The confirmation message is echoed out to a new, white page. Still getting to grips with php, but I cannot work out how to get the confirmation message to appear above the form instead of appearing on a new page.

This is the form's code

<form method="post" action="contact.php" enctype="multipart/form-data">
<input name="subject" placeholder="Subject..."><br>
<input name="email" type="email" placeholder="Email..."><br>
<textarea placeholder="Message..." name="message"></textarea><br>
<input name="submit" type="submit" value="Send Email">
</form>



Any ideas?

Hope someone can help.
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
 
Reply to this topicStart new topic
Replies
CharlesEF
post Aug 27 2019, 11:51 AM
Post #2


Programming Fanatic
********

Group: Members
Posts: 1,981
Joined: 27-April 13
From: Edinburg, Texas
Member No.: 19,088



The logic error was because I used an 'else' in the 2nd validation 'if' test. Instead of the 'else' I should have used the 'if(!count($errors))'. Left as it was the validation would fail if you typed in a message but left the e-mail blank. The correction will prevent this from happening.

Yes, after a submit the new page (or same page) will load at the top. And yes, AJAX can bypass this.
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post

Posts in this topic


Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



- Lo-Fi Version Time is now: 28th March 2024 - 05:16 AM