How to notification show after Form successful submit - html

I change my website template. i change Contact Form also previous contact form work correctly, when i change contact form template than submit form successful notification dont show under submit button. i checked all details but i can not find any error. help me this form.
form code
<form class="contact-form" id="contact-form" method="post" action="sendemail.php">
<div class="form-group tiple">
<input type="text" class="contact-box" name="name" value="" placeholder="Enter Your Name">
</div>
<div class="form-group tiple">
<input type="email" class="contact-box" name="email" value="" placeholder="Enter Your Email">
</div>
<div class="form-group tiple">
<input type="text" pattern="[6|7|8|9][0-9]{9}" class="contact-box" name="phone" value="" placeholder="10 Digit Mobile No.">
</div>
<div class="form-group">
<label>Subject</label>
<select name="subject" class="form-control">
<option value="Demo Registraion">Demo Registraion</option>
<option value="Contact Us">Contact Us</option>
<option value="Feedback">Feedback</option>
<option value="Other">Other</option>
</select>
</div>
<div class="form-group">
<textarea name="message" class="contact-box" placeholder="Your Message" rows="10"></textarea>
</div>
<button type="submit" class="short-line margin-top-10">Submit now</button>
</form>
sendmail.php code
<?php
// Define some constants
define( "RECIPIENT_NAME", "NAME" );
define( "RECIPIENT_EMAIL", "mail#email.com " );
// Read the form values
$success = false;
$senderName = isset( $_POST['name'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['name'] ) : "";
$senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^\.\-\_\#a-zA-Z0-9]/", "", $_POST['email'] ) : "";
$senderPhone = isset( $_POST['phone'] ) ? preg_replace( "/[6|7|8][0-9][9]/", "", $_POST['phone'] ) : "";
$subject = isset( $_POST['subject'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['subject'] ) : "";
$message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : "";
// If all values exist, send the email
if ( $senderName && $senderEmail && $message ) {
$recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
$headers = "From: " . $senderName . " <" . $senderEmail . ">";
$mailBody = 'Sender Name: ' . $senderName. "\r\n" . 'Sender Email: ' . $senderEmail . "\r\n" .'Sender Phone: '. $senderPhone . "\r\n" . 'Subject: ' . $subject . "\r\n" . 'Message: ' . $message;
$success = mail( $recipient, $subject, $mailBody, $headers );
echo 'Your Request Send Successful';
echo "<p class='success'>Thanks for contacting us. We will contact you ASAP!</p>";
?>
i want an notification under the submit button
msg submit successfull or failed

You can follow PRG pattern and use RedirectAttributes to add flash attributes.
For example:
#RequestMapping(value = "/contractor", method = RequestMethod.POST)
public String handle(#Valid #ModelAttribute Contractor contractor,
BindingResult result,
RedirectAttributes redirectAttributes) {
// Save contactor ...
redirectAttributes.addFlashAttribute("message", "Successful!");
return "redirect:/someGetUrl";
}
And just show this message in the view rendered by /someGetUrl handler.

Related

Email send with "mailto" not showing in my gmail inbox HTML

I made a form where you could fill out some details and when you clicked "send" it sent to your email, It worked fine for me but people told me they clicked send but i didn't see anything in my inbox, I hope someone got a solution, Thanks
<form action="MAILTO:myemail#gmail.com?subject= Intro request" method="post" enctype="text/plain">
Just use PHP to send email:
HTML form for email input:
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php">
<input type="text" name="name" class="form-control" required="required" placeholder="Name">
<input type="email" name="email" class="form-control" required="required" placeholder="Email address">
<textarea name="message" id="message" required="required" class="form- control" rows="8" placeholder="Message"></textarea>
<button type="submit" id="submit" class="btn btn-danger btn-lg">Send Message</button>
</form>
When the submit button is clicked, the form will be sent to the server to be processed by php script below.
sendEmail.php:
$name = $_POST['name'];
$email = $_POST['email'];
$subject = 'query';
$message = $_POST['message'];
$email_from = $email;
$email_to = 'myemail#gmail.com';
$body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message;
$success = mail($email_to, $subject, $body, 'From: visitor');
Hope this helps

Send completed form information to an email

Hey guys I'm just starting to learn some php and I was wondering how I could send information from a completed form to an email. I have the code I have listed on the bottom but I know it's not right, any help will be appreciated thanks!
PHP:
<?php
$email = $_REQUEST['clientEmail'] ;
$subject = "New Order";
$name = $_REQUEST['clientName'] ;
$articleAmount = $_REQUEST['articleNum'];
$wordAmount = $_REQUEST['wordNum'];
$topic = $_REQUEST['topic'];
$info = $_REQUEST['addInfo'];
mail("kevin.duan996#gmail.com", $subject,
"Name:" . $name . "<br/>" . "Amount of Articles:" . $articleAmount . "<br/>" . "Amount of Words:" . $wordAmount . "<br/>" . "Topic:" . $topic . "<br/>" . "Additional Information:" . $info, "From:" . $email);
echo "Thank you for ordering!";
?>
html:
<form action="order.php">
<fieldset id="client" >
<legend>Client Information</legend>
<label for="clientName">Name:</label><input type="text" name="clientName" id="clientName" tabindex="1"/>
<label for="clientEmail">Email:</label><input type="email" name="clientEmail" id="clientEmail" tabindex="2"/>
</fieldset>
<fieldset id="order">
<legend>Order Information</legend>
<label for="articleNum">Number of Articles</label><input type="text" name="articleNum" id="articleNum" tabindex="3"/>
<label for="wordNum">Words per Article</label><input type="text" name="wordNum" id="wordNum" tabindex="4"/>
<label for="topic">Topics</label><input type="text" name="topic" id="topic" tabindex="5"/>
<label for="addInfo">Additional Info</label><input type="text" name="addInfo" id="addInfo" tabindex="6"/>
</fieldset>
<fieldset>
<button type="submit">Submit!</button>
</fieldset>
</form>
Use PHP mail or PHPMailer (works pretty well) ?
Using the PHPMailer library: https://github.com/PHPMailer/PHPMailer
define('PROJECT_ROOT', '/path/to/your/root/'); //Different for different webhosts or self hosted environments
require (PROJECT_ROOT . 'PHPMailer-master/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$to = $_POST['clientEmail']; //Email dervied from POST data.
$mail->Host = "mail.example.com"; //If you haven't got an SMTP server, use Gmail's free one.
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->Port = 25;
$mail->Username = "someEmail#example.com";
$mail->Password = "somePass";
$mail->From = 'someEmail#example.com';
$mail->FromName = 'My Website';
$mail->WordWrap = 50;
$mail->isHTML(true); // Or false
$mail->addReplyTo('support#example.com', 'Support');
$mail->Subject = 'Message subject here';
$mail->addAddress($to);
$mail->Body = ""; // Message body using HTML here. (Remove if $mail->isHTML(); is false)
$mail->AltBody = "
Client: " . $_POST['clientName'] . " //Again: derived from POST data.
Email: " . $to . " //We defined this variable before as clientEmail
Number of Articles: " . $_POST['articleNum'] . "
Words per Article: " . $_POST['wordNum'] . "
Topics: " . $_POST['topic'] . "
Additional Info: " . $_POST['addInfo'] . "
";
if(!$mail->send()) {
echo 'Message could not be sent.';
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
} else {
echo "Mail sent!";
}
I noticed that your form is missing a method of sending this information that the users type in.
<form action="order.php">
It should be:
<form action="order.php" method="POST">
Hope that you get it working!

Call PHP form from HTML

contact-form.html
<form method="POST" name="contactform" action="contact-form-handler.php">
<p>
<label for='name'>Your Name:</label> <br>
<input type="text" name="name">
</p>
<p>
<label for='email'>Email Address:</label> <br>
<input type="text" name="email"> <br>
</p>
<p>
<label for='message'>Message:</label> <br>
<textarea name="message"></textarea>
</p>
<input type="submit" value="Submit"><br>
</form>
contact-form-handler.php
<?php
$errors = '';
$myemail = 'net.dev#spikyarc.net';
if(empty($_POST['name']) ||
empty($_POST['email']) ||
empty($_POST['message']))
{
$errors .= "\n Error: all fields are required";
}
$name = $_POST['name'];
$email_address = $_POST['email'];
$message = $_POST['message'];
if (!preg_match(
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*#[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i",
$email_address))
{
$errors .= "\n Error: Invalid email address";
}
if( empty($errors))
{
$to = $myemail;
$email_subject = "Contact form submission: $name";
$email_body = "You have received a new message. ".
$headers = "From: $myemail\n";
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
//redirect to the 'thank you' page
header('Location: contact-form-thank-you.html');
}
?>
This both file i have put in wwwroot folder but when i submit html form it gives error The page cannot be displayed. I cannot find problem. Thanks for helping me.
set the action in the HTML form to:
contact-form-handler.php
like:
<form method="POST" name="contactform" action="contact-form-handler.php">
UPDATE 1: And check this:
Change
$email_subject = "Contact form submission: $name";
to
$email_subject = "Contact form submission:" . $name;
UPDATE 2: And this also:
$headers = "From: $myemail\n";
$headers .= "Reply-To: $email_address";
to:
$headers = "From: " . $myemail . "\n";
$headers .= "Reply-To:" . $email_address;
UPDATE 3:
You validate the E-mail address $email_address but never use it.
Be sure to check the filename with that in the action!!

Basic PHP/MySQL INSERT INTO Multiple Tables from Forms

I am trying to make a simple PHP form submission and insert some data to MySQL, my tables are:
category: id, category_name
table1: category_id(FK), title,description
table2: table1_id(FK), filetype, filesize, filedate, filename
Form: Date, Title, description, category(drop down), upload file (get the file info like type, ext, size, filename)
Here is the code:
Form:
<strong>Fill up the form:</strong><br /><br>
<form enctype="multipart/form-data" action="upfileone.php" method="POST">
Date: <?php echo date("d-M-Y") ?>
<p>Title:
<input type="text" name="title" value="<?php echo $sel_filepage['file_title']; ?>" id="file_title" />
</p>
<p>Description:<br>
<textarea name="description" rows="4" cols="24">
<?php echo $sel_filepage['content']; ?></textarea>
</p>
Category:
<select name="select_cat">
<?php $cat_set = get_all_categs();
while($category = mysql_fetch_array($cat_set)){
$catname = $category['cat_name'];
echo '<option value="'.$catname.'">'.$catname.'</option>';
}
?>
</select>
<br><br>
<label for="file">Choose File to Upload:</label>
<input type="file" name="upfile" id="upfile" > <br /><br />
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<input type="hidden" name="filepage" value="<?php echo $_GET['filepage']?>">
<input type="submit" name="upload" value="Add" class="pure-button pure-button-success">
Cancel
</form> <!-- END FORM -->
Action file:
<?php
require_once("includes/functions.php");
// directory to be saved
$target = "server/php/files/";
$target = $target . basename($_FILES['upfile']['name']);
// gets info from FORM
$currentDate = date("Y-m-d");
$file_title = $_POST['title'];
$content = $_POST['description'];
$category = $_POST['select_cat'];
$upfile = ($_FILES['upfile']['name']);
// connects to db
$con = mysqli_connect("localhost", "root", "password", "database");
if(mysqli_connect_errno())
{
echo "error connection" . mysqli_connect_error();
}
// insert to database
$sql = "INSERT INTO filepages (category_id,file_title,content)
VALUES ('$category','$file_title','$content')";
/*$sql2 = "BEGIN
INSERT INTO filepages (category_id, file_title, content)
VALUES ('$category','$file_title','$content')
INSERT INTO fileserv (file_date)
VALUES ($currentDate)
COMMIT";*/
if(!mysqli_query($con, $sql))
{
die('Error ' . mysqli_error());
}
echo "1 File Added <br>";
if (file_exists("server/php/files/" . $_FILES["upfile"]["name"]))
{
echo $_FILES["upfile"]["name"] . " already exists. ";
}
else
{
insertFile( $_POST['filepage'],
$_FILES["upfile"]["type"],
($_FILES["upfile"]["size"] / 1024),
$_FILES["upfile"]["name"]);
move_uploaded_file($_FILES["upfile"]["tmp_name"],"server/php/files/" . $_FILES["upfile"]["name"]);
echo "The FILE " . basename($_FILES['upfile']['name']) . " has been uploaded.<br>";
echo "Stored in: " . "server/php/files/" . $_FILES["upfile"]["name"] . "<br>";
echo "Upload: " . $_FILES["upfile"]["name"] . "<br>";
echo "Type: " . $_FILES["upfile"]["type"] . "<br>";
echo "Size: " . ($_FILES["upfile"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["upfile"]["tmp_name"] . "<br>";
}
?>
It does insert to both tables, now my main problem is how to get the ID from drop down menu of category and insert to Filepages.category_id.
How can I get the Filepages.ID data and insert it to Fileserve?
So you want the ID of the inserted row.
You can simply use the following php function http://www.php.net/manual/en/mysqli.insert-id.php
This question should nonetheless be moved to stackoverflow

AJAX PHP form can't resend data / always stops at phone num. field

I'm trying to make a simple contact form for my website, so I bought one from Code Canyon. After not receiving slow and scarce help from the author, I'm asking you guys for help.
Basically it's a very simple contact form but I'm not too good with coding so it bothers me regardless. This is the HTML code;
<div id="contact" class="clearfix"><!-- contact -->
<h1><img name="logo" src="" width="300" height="50" alt="" style="background-color: #3366FF" /></h1><p class="txn">Lorem ipsum dim sum sum.</p>
<div id="message"></div>
<form method="post" action="contact.php" name="contactform" id="contactform">
<fieldset>
<legend>Please fill in the following form to contact us</legend>
<label for=name accesskey=U><span class="required">*</span> Your Name</label>
<input name="name" type="text" id="name" size="30" value="" />
<br />
<label for=email accesskey=E><span class="required">*</span> Email</label>
<input name="email" type="text" id="email" size="30" value="" />
<br />
<label for=phone accesskey=P><span class="required">*</span> Phone</label>
<input name="phone" type="text" id="phone" size="30" value="" />
<br />
<label for=subject accesskey=S>Subject</label>
<select name="subject" type="text" id="subject">
<option value="Support">Support</option>
<option value="a Sale">Sales</option>
<option value="a Bug fix">Report a bug</option>
</select>
<br />
<label for=comments accesskey=C><span class="required">*</span> Your comments</label>
<textarea name="comments" cols="40" rows="3" id="comments" style="width: 350px;"></textarea>
<p><span class="required">*</span> Are you human?</p>
<label for=verify accesskey=V> 3 + 1 =</label>
<input name="verify" type="text" id="verify" size="4" value="" style="width: 30px;" /><br /><br />
<input type="submit" class="submit" id="submit" value="Submit" />
</fieldset>
</form>
The JavaScript file I was given in the template...practically unchanged
jQuery(document).ready(function(){
$('#contactform').submit(function(){
var action = $(this).attr('action');
$("#message").slideUp(450,function() {
$('#message').hide();
$('#submit')
.after('<img src="assets/ajax-loader.gif" class="loader" />')
.attr('disabled','disabled');
$.post(action, {
name: $('#name').val(),
email: $('#email').val(),
phone: $('#telephone').val(),
subject: $('#enquiry').val(),
comments: $('#message').val(),
},
function(data){
document.getElementById('message').innerHTML = data;
$('#message').slideDown('fast');
$('#contactform img.loader').fadeOut('slow',function(){$(this).remove()});
$('#contactform #submit').attr('disabled','');
if(data.match('success') != null) $('#contactform').slideUp('slow');
}
);
});
return false;
});
});
And then there is the contact-php file I got
<?php
if(!$_POST) exit;
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$subject = $_POST['subject'];
$comments = $_POST['comments'];
$verify = $_POST['verify'];
if(trim($name) == '') {
echo '<div class="error_message">Attention! You must enter your name.</div>';
exit();
} else if(trim($email) == '') {
echo '<div class="error_message">Attention! Please enter a valid email address.</div>';
exit();
} else if(trim($phone) == '') {
echo '<div class="error_message">Attention! Please enter a valid phone number.</div>';
exit();
} else if(!is_numeric($phone)) {
echo '<div class="error_message">Attention! Phone number can only contain digits.</div>';
exit();
} else if(!isEmail($email)) {
echo '<div class="error_message">Attention! You have enter an invalid e-mail address, try again.</div>';
exit();
}
if(trim($subject) == '') {
echo '<div class="error_message">Attention! Please enter a subject.</div>';
exit();
} else if(trim($comments) == '') {
echo '<div class="error_message">Attention! Please enter your message.</div>';
exit();
} else if(trim($verify) == '') {
echo '<div class="error_message">Attention! Please enter the verification number.</div>';
exit();
} else if(trim($verify) != '4') {
echo '<div class="error_message">Attention! The verification number you entered is incorrect.</div>';
exit();
}
if($error == '') {
if(get_magic_quotes_gpc()) {
$comments = stripslashes($comments);
}
// Configuration option.
// Enter the email address that you want to emails to be sent to.
// Example $address = "joe.doe#yourdomain.com";
//$address = "example#themeforest.net";
$address = "mylerworks#gmail.com";
// Configuration option.
// i.e. The standard subject will appear as, "You've been contacted by John Doe."
// Example, $e_subject = '$name . ' has contacted you via Your Website.';
$e_subject = 'You\'ve been contacted by ' . $name . '.';
// Configuration option.
// You can change this if you feel that you need to.
// Developers, you may wish to add more fields to the form, in which case you must be sure to add them here.
$e_body = "You have been contacted by $name with regards to $subject, their additional message is as follows.\r\n\n";
$e_content = "\"$comments\"\r\n\n";
$e_reply = "You can contact $name via email, $email or via phone $phone";
$msg = $e_body . $e_content . $e_reply;
if(mail($address, $e_subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")) {
// Email has sent successfully, echo a success page.
echo "<fieldset>";
echo "<div id='success_page'>";
echo "<h1>Email Sent Successfully.</h1>";
echo "<p>Thank you <strong>$name</strong>, your message has been submitted to us.</p>";
echo "</div>";
echo "</fieldset>";
} else {
echo 'ERROR!';
}
}
function isEmail($email) { // Email address verification, do not edit.
return(preg_match("/^[-_.[:alnum:]]+#((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
}
?>
Problem is: let's say I fill up the form but forget to put my name in. The form will notify me I forgot it but I will not be able to post it, I will need to refresh the page. Also, it keeps giving me the "please enter a valid phone number" error even when I fill the form completely.
So how do I get it to work?
In case I didn't post something correctly here, check how the form looks here - You can view the form here
Your submit button is disabled after posting data . That is why you are not able to re-post it
$('#contactform #submit').attr('disabled','');
Use correct id of input field.
phone: $('#telephone').val(),
this will be always null as there is no component with this id
Its same kind of error. There is no element with id enquiry or message.
subject: $('#enquiry').val(),
comments: $('#message').val(),
Please be sure about name and id of your html components while retrieving values
Thanks