The contact form will only send an email will the words name email and message. I have been going over it for a few hours but nothing seems to be working.
Here is the contact php file (email is edited)
<?php
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$field_message = $_POST['cf_message'];
$mail_to = 'outlook.com';
$subject = 'Message about Tejano Fest '.$field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('Thank you for the message. We will contact you shortly.');
window.location = 'index.html';
</script>
<?php
Here is the html segment it's related to:
<form method="post" name="contact" action="#contact">
<div class="left">
<label for="author">Name:</label>
<input name="author" type="text" class="input_field" id="author" maxlength="40" />
</div>
<div class="right">
<label for="email">Email:</label>
<input name="email" type="text" class="input_field" id="email" maxlength="80" />
</div>
<div class="clear"></div>
<label for="text">Message:</label> <textarea id="text" name="text" rows="0" cols="0"></textarea>
<input type="submit" class="submit_btn float_l" name="submit" id="submit" value="Send" />
</form>
Thank you in advance for any assistance.
change it (there are the name of input):
$field_name = $_POST['author'];
$field_email = $_POST['email'];
$field_message = $_POST['text'];
Enjoy your code!
Use this... your POST array values does not matching with your form field names .
<form method="post" name="contact" action="#contact">
<div class="left">
<label for="author">Name:</label>
<input name="cf_name" type="text" class="input_field" id="author" maxlength="40" />
</div>
<div class="right">
<label for="email">Email:</label>
<input name="cf_email" type="text" class="input_field" id="email" maxlength="80" />
</div>
<div class="clear"></div>
<label for="text">Message:</label> <textarea id="text" name="cf_message" rows="0" cols="0"></textarea>
<input type="submit" class="submit_btn float_l" name="submit" id="submit" value="Send" />
<?php
if(isset($_POST['submit'])){
$field_name = $_POST['author'];
$field_email = $_POST['email'];
$field_message = $_POST['text'];
$mail_to = 'test#outlook.com';
$subject = 'Message about Tejano Fest '.$field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('Thank you for the message. We will contact you shortly.');
window.location = 'index.html';
</script>
<?php
} }?>
Some other option to consider(of course after changing the values of the POST arrays), you may want to try using PhpMailer-http://phpmailer.worxware.com/?pg=examplebsendmail as maybe your hosting solution requires Smtp authourisation.
Related
I don't know any PHP at all so I researched a couple hours to try and get my contact form to actually save and send the inputs to my email. As of right now, I'm getting an error Failed to load resource: the server responded with a status of 405 (). Here is the contact form code and also PHP file code. They are located in the root directory, named index.html and contact.php. I'm using the template html5up.net/strata.
<form method="post" action="contact.php" id="form" class="contact-form">
<div class="row uniform 50%">
<div class="6u 12u$(xsmall)"><input type="text" name="cf_name" id="name" placeholder="Name" /></div>
<div class="6u$ 12u$(xsmall)"><input type="email" name="cf_email" id="email" placeholder="Email" /></div>
<div class="12u$"><textarea name="cf_message" id="message" placeholder="Message" rows="4"></textarea></div>
</div>
<ul class="actions">
<li><input type="submit" value="Send Message" class="special"/></li>
</ul>
</form>
contact.php
<?php
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$field_message = $_POST['cf_message'];
$mail_to = 'simonchangwong#gmail.com';
$subject = 'Message from a site visitor '.$field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('Thank you for the message. We will contact you shortly.');
window.location = 'contact_page.html';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
alert('Message failed. Please, send an email to gordon#template-help.com');
window.location = 'contact_page.html';
</script>
<?php
}
?>
I am having trouble with my PHP code for my website. The email is being sent but has no messages.
This is the email I get when it sends. It's empty.
Data I input in my contact form
I tested my php code without the css files and bootstrap, and received the email perfectly with the messages. But when I included everything, from css and bootstrap codes, I receive the email without any messages.
HTML CODE:
<div class="contact-form bottom">
<h2> We want to hear from you . Send us a message!</h2>
<form id="main-contact-form" name="contact-form" method="post" action="send_email_test.php">
<div class="form-group">
<input type="text" name="userName" class="form-control" required="required" placeholder="Name">
</div>
<div class="form-group">
<input type="email" name="userEmail" class="form-control" required="required" placeholder="Email Id">
</div>
<div class="form-group">
<textarea name="userMessage" id="message" required class="form-control" rows="8" placeholder="Your text here"></textarea>
</div>
<div class="form-group">
<input type="submit" name="submit" class="btn btn-submit" value="Submit">
</div>
</form>
</div>
This is my PHP code:
<?php
$field_name = $_POST['userName'];
$field_email = $_POST['userEmail'];
$field_subject = $_POST['userSubject'];
$field_message = $_POST['userMessage'];
$mail_to = 'info#mariamulan.com'; /* Add your email address here */
$subject = 'Message from website'.$field_name; /* Create your own subject */
$body_message .= 'From: '.$field_name."\n";
$body_message .= 'Email: '.$field_email."\n";
$body_message .= 'Subject: '.$field_subject."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('Hey! Thanks for the message! We will try to reply to you as soon as possible!');
window.location = 'index.html'; /* Where you want to get directed */
</script>
<?php
} else { ?>
<script language="javascript" type="text/javascript">
alert('Sorry, your message was not sent! Please send an email to
hello.mariamulan#gmail.com instead.');
window.location = 'index.html'; /* Where you want to get directed
*/
</script>
<?php
}
?>
Verify that your form has the correct "name" attributes.
Your code is pretty dirty tho.
I got a email.php from a website. How do you add an extra field to it, like phone number?
The original one I downloaded works fine.
Email comes as>>
From: Nuski
E-mail: my#email.com
Subject: Test
Message: Test mail
But when I add $field_phone = $_POST['cf_phone']; and $body_message = "Phone: ".$field_phone."\n";
The email comes without the Name of the sender. Like>>
Phone: 5559
E-mail: flex#f.com
Subject: reCaptcha test
Message: Email Test
Here is my HTML form
<form action="email.php" method="post">
<div class="col-sm-6">
<div class="form-group">
<input class="form-control" name="cf_name" type="text" id="name" placeholder="Your Name" required>
</div>
<div class="form-group">
<input class="form-control" name="cf_phone" type="text" id="phone" placeholder="Phone" >
</div>
<div class="form-group">
<input class="form-control" name="cf_email" type="email" id="email" placeholder="Your Email" required>
</div>
<div class="form-group">
<input class="form-control" name="cf_subject" type="text" id="subject" placeholder="Subject" required>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<textarea class="form-control btn-block" name="cf_message" id="comments" placeholder="Please include your address and item code for delivery" required></textarea><br>
</div>
<div class="form-group">
<input type="submit" class="btn btn-block" id="submit" value="Send Message">
</div>
</div>
<div class="col-sm-12">
<p class="contact-success">Your Message has been Successfully Sent!</p>
<p class="contact-error">Error! Something went wrong!</p>
</div>
</form>
Here is my email.php
<?php
$field_name = $_POST['cf_name'];
$field_phone = $_POST['cf_phone']; //added by me
$field_email = $_POST['cf_email'];
$field_subject = $_POST['cf_subject'];
$field_message = $_POST['cf_message'];
$mail_to = 'ask#aki.co';
$subject = 'Message from AkiYTeeS - '.$field_subject;
$body_message = "From: ".$field_name."\n";
$body_message = "Phone: ".$field_phone."\n"; //added by me
$body_message .= "E-mail: ".$field_email."\n";
$body_message .= "Subject: ".$field_subject."\n";
$body_message .= "Message: ".$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('Thank you for the message. We will contact you shortly.');
window.location = 'index.html';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
alert('Message failed. Please, send an email to ');
window.location = 'index.html';
</script>
<?php
}
?>
Replace:
$body_message = "Phone: ".$field_phone."\n"; //added by me
With:
$body_message .= "Phone: ".$field_phone."\n"; //added by me // You forgot a "." here
Also note that it's better to use \r\n unstead of just \r or \n as windows mac and linux each need a different of the 2 so by adding both it should always work
$body_message = "Phone: ".$field_phone."\n";
You have forgotten the concatenation operator in the above line.
use "." (dot)
$body_message .= "Phone: ".$field_phone."\n";
would you please take a look at my code and answer the question: why am I getting empty e-mails? I've tried doing a lot of things, but nothing seems to have helped :)
<?php
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
mb_language('uni');
mb_regex_encoding('UTF-8');
ob_start('mb_output_handler');
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$field_message = $_POST['cf_message'];
$mail_to = 'radik.mcphilimy#gmail.com';
$subject = 'Сообщение от посетителя сайта '.$field_name;
$body_message = 'От: '.$field_name."\n";
$body_message .= 'Электронный ящик: '.$field_email."\n";
$body_message .= 'Сообщение: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">
alert('the message was sent.');
window.location = 'contact.html';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
alert('the message was not sent.');
window.location = 'contact.html';
</script>
<?php
}
?>
and here's the html:
<form action="contact.php" method="post">
<div class="templatemo_form">
<input name="cf_name" type="text" class="form-control" id="cf_name" placeholder="your name" maxlength="40">
</div>
<div class="templatemo_form">
<input name="field_email" type="text" class="form-control" id="field_email" placeholder="your e-mail" maxlength="40">
</div>
<div class="templatemo_form">
<textarea name="field_message" rows="10" class="form-control" id="field_message" placeholder="Message"></textarea>
</div>
<div class="templatemo_form"><button type="submit" value="Send" class="btn btn-primary">Send</button></div>
Thanks a lot.
Radik
Your HTML says:
name="field_message"
Your PHP says:
$_POST['cf_message'];
It doesn't work if you read from a different name then you send.
I have created a contact form using requires attribute. Now i want to submit this email form without refreshing the page. When i googled it, I got with the validation code, i don't need validation because i used required attribute in my html. I just want that function which i can add so that the page wont be refreshed after submitting and email should go..
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HTML5 Contact Form</title>
<link rel="stylesheet" media="screen" href="styles.css">
</head>
<body>
<div id="contact">
<form class="contact_form" action="contact.php" method="post" name="contact_form">
<ul>
<li>
<h2>Contact Us</h2>
<span class="required_notification">* Denotes Required Field</span>
</li>
<li>
<label for="name">Name:</label>
<input type="text" id="name" name="name" placeholder="John Doe" required />
</li>
<li>
<label for="email">Email:</label>
<input type="email" name="email" id="email" placeholder="john_doe#example.com" required /> <span class="form_hint">Proper format "name#something.com"</span>
</li>
<li>
<label for="message">Message:</label>
<textarea name="message" id="message" cols="40" rows="6" required></textarea>
</li>
<li>
<button class="submit" id="submit_btn" type="submit">Submit Form</button>
</li>
</ul>
</form>
</div>
</body>
</html>
contact.php
<?php
$field_name = $_POST['name'];
$field_email = $_POST['email'];
$field_message = $_POST['message'];
$mail_to = 'babloopuneeth#gmail.com';
$subject = 'Message from a site visitor '.$field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) {
?>
</script>
<?php
} else { ?>
<?php
}
?>
I dont know what to add inside if and else cases to achieve my objective? Please help me out..
You would have to use jQuery's ajax function to send a form without refreshing the page, here's the official documentation: http://api.jquery.com/jQuery.ajax/
Hope it helps!
Just use this as contact.php
<?php
$field_name = $_POST['name'];
$field_email = $_POST['email'];
$field_message = $_POST['message'];
$mail_to = 'babloopuneeth#gmail.com';
$subject = 'Message from a site visitor '.$field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
?>