Message not showing on PHP form when email received - php

I tested to receive to my own email, for some reason I get everything but its not showing the content of what I type. It doesnt show the actual message when I receive it. Can anyone help? Thanks!
<div class="contact-heading">
</div>
<form role="form" class="contact-form" action="contact-us.php" method="post">
<div class="form-group">
<label class="" for="exampleInputPassword1">Name</label>
<input type="text" name="name" class="form-control" id="exampleInputPassword1" placeholder="Name:" required >
</div>
<div class="form-group">
<label class="" for="exampleInputEmail2">Email address</label>
<input type="email" name="email" class="form-control" id="exampleInputEmail2" placeholder="E-Mail:" required >
</div>
<div class="form-group">
<label class="" for="exampleInputEmail3">Company</label>
<input type="text" name="company" class="form-control" id="exampleInputEmail3" placeholder="Company:" required >
</div>
<div class="form-group">
<label class="" for="exampleInputEmail4">Message</label>
<textarea class="form-control textarea" name="message" rows="8" id="exampleInputEmail4" placeholder="Message:"></textarea>
</div>
<button type="submit" class="btn btn-submit">Submit</button>
</form>
</div>
<?php
$to = 'emailsample#yahoo.com';
$subject = "Contact us";
$name = stripslashes($_REQUEST['name']);
$email = stripslashes($_REQUEST['email']);
$company = stripslashes($_REQUEST['company']);
$message = stripslashes($_REQUEST['message']);
$msg .= "Name: ".$name."\r\n";
$msg .= "E-mail: ".$email."\r\n";
$msg .= "Company: ".$company."\r\n";
$message .= "Topicjk: ".$message."\r\n";
$msg .= "Subject: ".$subject."\r\n\n";
$msg .= "---Message--- \r\n";
$msg .= "\r\n\n";
$mail = #mail($to, $subject, $msg, "From:".$email);
if($mail) {
header("Location:contact-us.html");
} else {
echo 'Message could not be sent! Please try again.';
}
?>

Because you are not passing $message (which has content) to mail in this line.
Change from
$mail = #mail($to, $subject, $msg, "From:".$email);
To
$mail = #mail($to, $subject, $message, "From:".$email);
or
Change from
$message .= "Topicjk: ".$message."\r\n";
To
$msg .= "Topicjk: ".$message."\r\n";

Related

Unable to send mail via PHP mail function

I've been trying to send mail through the contact form on my website. I've used the POST method and that has seemed to work for another one of my projects, but now I'm puzzled as to what the problem is within the code. I've literally copy-pasted the code and still seem to come across the error. Also is there a way in which the name of the sender is displayed rather than the gibberish that actually ends up showing?
//PHP CODE
<?php
function has_header_injection($str){
return preg_match("/[\r\n]", $str);
}
if(isset ($_POST['submit'])){
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$msg = $_POST['msg'];
if(has_header_injection($name) || has_header_injection($email)){
die();
}
if(!$fname || !$lname || !$email || $msg){
echo '<h4> All fields required!</h4>';
exit;
}
$to = 'mymail8#gmail.com'; //FOR ELUCIDATION
$subject = $fname . $lname ."sent you via your contact form";
$message = "Name: ". $fname . $lname;
$message .= "Email: $email\r\n";
$message .= "Message:\r\n$msg";
$message = wordwrap($message, 100);
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: $lname <$email>\r\n";
$headers .= "X-Priority: 1\r\n";
$headers .= "X-MSMail-Priority: High\r\n\r\n";
mail($to, $subject, $message, $headers);
}
else{
echo "failed to send mail!";
}
?>
//FORM (HTML)
<form action="mail-handler.php" class="msg" method="POST">
<div class="name">
<div class="fname">
<div>FIRST NAME</div>
<input type="text" placeholder="Enter your first name" id="fname" name="fname">
</div>
<div class="lname">
<div>LAST NAME</div>
<input type="text" placeholder="Enter your last name" id="lname" name="lname">
</div>
</div>
<div class="add-info">
<div class="mail">
<div>E-MAIL</div>
<input type="text" placeholder="Enter your email" id="mail" name="email">
</div>
<div class="phn">
<div>PHONE NUMBER</div>
<input type="text" placeholder="Enter your phone number" id="phn" name="phn">
</div>
</div>
<div class="msg-box">
<div>MESSAGE</div>
<input type="text" placeholder="Enter your Message" id="msg" name="msg" >
</div>
<button type="submit" id="sub" name="aubmit">Submit</button>
</form>

How can i solve the issue with mail [duplicate]

This question already has answers here:
PHP mail function doesn't complete sending of e-mail
(31 answers)
Closed 3 years ago.
Im trying to fix this issue for the past 3 days, but nothing is working..
I have a contact form and I wrote a php code to get the messages to my email.
Here is my contact form? [ I use bootstrap ]
<form class="col-lg-6" action="kontakt-confirmation.php" method="POST">
<div class="form-group">
<label>Namn <span id="mustdo">*</span></label>
<input id="namn" name="namn" class="form-control" type="text" aria-describedby="nameHint"
placeholder="Namn" required>
<small id="nameHint" class="form-text text-muted">Fyll i formuläret nedan så kontaktar vi
dig!!</small>
</div>
<div class="form-group">
<label>E-postadress <span id="mustdo">*</span></label>
<input id="email" name="email" class="form-control" type="email" placeholder="Din e-post" required>
</div>
<div class="form-group">
<label>Subject <span id="mustdo">*</span></label>
<input id="subject" class="form-control" type="text" placeholder="Your subject.." required>
</div>
<div class="form-group">
<label for="message">Meddelande <span id="mustdo">*</span></label>
<textarea id="message" name="message" class="form-control" rows="5" required></textarea>
</div>
<button type="submit" name="submit" class="btn btn-lg btn-outline-primary">Skicka</button>
</form>
Here is my PHP code:
<?php
if(isset($_POST)) {
$namn = $_POST['namn'];
$email = $_POST['email'];
$message = $_POST['message'];
$to = '??????????';
$subject = 'Ticket!';
$message = "Namn: ".$namn."\n"."Email ".$email."\n"."Problem / Question: "."\n\n".$message;
$headers = "From: ".$email;
if(mail($to, $subject, $message, $headers)) {
echo "Thanks for contacting us!";
} else {
echo "Problem!";
}
}
?>
when I press on submit, i get the Problem message. What can i change to fix this?
thanks
Hope this resolves your answer to the question :)
if(isset($_POST)) {
$namn = $_POST['namn'];
$email = $_POST['email'];
$message = $_POST['message'];
$to = '??????????';
$subject = 'Ticket!';
$message = "Namn: ".$namn."\n"."Email ".$email."\n"."Problem / Question: "."\n\n".$message;
$headers = "From: ".$email;
// Always set content-type when sending HTML email
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
if(mail($to, $subject, $message, $headers)) {
echo "Thanks for contacting us!";
} else {
echo "Problem!";
}
}

Undefined error in contact Form [duplicate]

This question already has answers here:
PHP mail function doesn't complete sending of e-mail
(31 answers)
Closed 5 years ago.
I recently created a contact form with php as well but everytime I click submit, I only get an undefined error, nothing else. Can anyone please give an insight into what I missed?
HTML
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="contactengine.php">
<div class="col-sm-5 col-sm-offset-1">
<div class="form-group">
<label>Name *</label>
<input type="text" name="Name" class="form-control" required="required">
</div>
<div class="form-group">
<label>Email *</label>
<input type="email" name="Email" class="form-control" required="required">
</div>
<div class="form-group">
<label>Phone *</label>
<input type="number" name="Phone" class="form-control">
</div>
<div class="form-group">
<label>Company Name</label>
<input type="text" class="form-control">
</div>
</div>
<div class="col-sm-5">
<div class="form-group">
<label>Subject *</label>
<input type="text" name="subject" class="form-control" required="required">
</div>
<div class="form-group">
<label>Message *</label>
<textarea name="message" id="Message" required="required" class="form-control" rows="8"></textarea>
</div>
<div class="form-group">
<button type="submit" name="submit" class="btn btn-primary btn-lg" required="required">Submit Message</button>
</div>
</div>
</form>
PHP
<?php
if (isset($_POST["submit"])){
$EmailFrom = "$Email";
$EmailTo = "ben.afunsho#gmail.com";
$Subject = "New Message from Your Message";
$Name = trim(stripslashes($_POST['Name']));
$Phone = trim(stripslashes($_POST['Phone']));
$Email = trim(stripslashes($_POST['Email']));
$Subject = trim(stripslashes($_POST['Subject']));
$Message = trim(stripslashes($_POST['Message']));
// validation
$validationOK = true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}
// prepare email body text
$Body = "You have received a new email from";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Phone: ";
$Body .= $Phone;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Subject: ";
$Body .= "$Subject: ";
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message; $Body .= "\n";
// send email $success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// redirect to success page
if ($success) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}else {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
}
?>
I only get an undefined error on the html nothing else
There were some case sensitivity issues in your post and I corrected it and commented at corresponding lines.
Check it
<?php
if (isset($_POST["submit"]))
{ $EmailFrom = "$Email";
$EmailTo = "ben.afunsho#gmail.com";
$Subject = "New Message from Your Message";
$Name = trim(stripslashes($_POST['Name']));
$Phone = trim(stripslashes($_POST['Phone']));
$Email = trim(stripslashes($_POST['Email']));
$Subject = trim(stripslashes($_POST['subject'])); //s should be small
$Message = trim(stripslashes($_POST['message'])); // m should be small
// validation
$validationOK = true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; exit;
}
// prepare email body text
$Body = "You have received a new email from";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Phone: ";
$Body .= $Phone;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Subject: ";
$Body .= $Subject; // copy paste is very bad
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";
// send email $success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// redirect to success page i
if ($success) { print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">"; }
else { print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; }}?>
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="contactengine.php">
<div class="col-sm-5 col-sm-offset-1">
<div class="form-group">
<label>Name *</label>
<input type="text" name="Name" class="form-control" required="required">
</div>
<div class="form-group">
<label>Email *</label>
<input type="email" name="Email" class="form-control" required="required">
</div>
<div class="form-group">
<label>Phone *</label>
<input type="number" name="Phone" class="form-control">
</div>
<div class="form-group">
<label>Company Name</label>
<input type="text" class="form-control">
</div>
</div>
<div class="col-sm-5">
<div class="form-group">
<label>Subject *</label>
<input type="text" name="subject" class="form-control" required="required">
</div>
<div class="form-group">
<label>Message *</label>
<textarea name="message" id="Message" required="required" class="form-control" rows="8"></textarea>
</div>
<div class="form-group">
<input type="submit" name="submit" class="btn btn-primary btn-lg" value="Submit" />
</div>
</div>
</form>

Is there anything wrong with the code in my form?

I'm using this tutorial to create a contact form for my site and it doesn't seem to be working. After I fill in my form and press submit, nothing happens. I would like to know whats wrong with it and how I can fix it.
This is my code:
HTML:
<form action="mail/contact.php" method="post">
<div class="row control-group">
<div class="form-group col-xs-12 floating-label-form-group controls">
<label>Name:</label><br />
<input type="text" name="name" id="name" class="form-control" placeholder="Name"/>
</div></div>
<br />
<div class="row control-group">
<div class="form-group col-xs-12 floating-label-form-group controls">
<label>Email:</label><br />
<input type="text" name="email" id="email" class="form-control" placeholder="Email"/>
</div></div>
<br />
<div class="row control-group">
<div class="form-group col-xs-12 floating-label-form-group controls">
<label>Message:</label>
<textarea name="message" rows="5" id="message" class="form-control" placeholder="Message"></textarea>
</div></div>
<br />
<input type="submit" name="submit" value="Submit" class="btn btn-success btn-lg"/>
</form>
PHP:
<?php
// from the form
$name = trim(strip_tags($_POST['name']));
$email = trim(strip_tags($_POST['email']));
$message = htmlentities($_POST['message']);
// set here
$subject = "Contact form submitted!";
$to = 'name#mail.com';
$body = <<<HTML
$message
HTML;
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
// send the email
mail($to, $subject, $body, $headers);
// popup success
echo '<script language="javascript">';
echo 'alert("Your message has been sent!")';
echo '</script>';
?>
It's not a problem actually, you hace to change $to to $email in the email() method because the variable that has the email you want to send to is $email.
Your contact.php code will be:
<?php
// from the form
$name = trim(strip_tags($_POST['name']));
$email = trim(strip_tags($_POST['email']));
$message = htmlentities($_POST['message']);
// set here
$subject = "Contact form submitted!";
$body = <<<HTML
$message
HTML;
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
// send the email
mail($email, $subject, $body, $headers);
// popup success
echo '<script language="javascript">';
echo 'alert("Your message has been sent!")';
echo '</script>';
?>
Another recommendation is to check this tutorial for a secure contact form.
Also you should check out this two php frameworks:
Symfony 2 Mail
Zend 2 Mail

My PHP/HTML form doesn't work

I have a contact form in my website and it doesn't work properly. I get the email but the email it's empty, I don't get the information from the form.
the part of the html in my index.html
<form role="form" form name="contactform" method="post" action="send_form_email.php">
<div class="form-group">
<label>Nombre</label> <input type="text" name="nombre" class="form-control" placeholder="Introduce tu nombre" >
</div>
<div class="form-group">
<label>Apellidos</label> <input type="text" name="apellidos" class="form-control" placeholder="Introduce tus apellidos" >
</div>
<div class="form-group">
<label>Email</label> <input type="emal" name="email" class="form-control" placeholder="Introduce tu email" >
</div>
<div class="form-group">
<label>Telefono</label> <input type="text" name="telefono" class="form-control" placeholder="Introduce tu telefono" >
</div>
<div class="form-group">
<label>Mensaje</label> <textarea name="mensaje" class="form-control" rows="7"></textarea>
</div>
<button type="submit" class="btn btn-default" value="Submit"> Enviar
</form>
</div>
the part of the php file called "send_form_email.php"
<?php
$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$telefono = $_POST['telefono'];
$email = $_POST['email'];
$mensaje = $_POST['mensaje'];
$formcontent=" $nombre $apellidos $email $telefono $mensaje";
$recipient = "deniz946#gmail.com";
$subject = "Subject from $nombre";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You! We will get back to you as soon as possible!" . " -" . "<a href='./index.php'> Back to site</a>";
?>
<input type="emal" name="email" class="form-control" placeholder="Introduce tu email" > change to
<input type="email" name="email" class="form-control" placeholder="Introduce tu email" >
you have typo in type attribute.
Try this
<?php
$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$telefono = $_POST['telefono'];
$email = $_POST['email'];
$mensaje = $_POST['mensaje'];
$formcontent = "{$nombre} {$apellidos} {$email} {$telefono} {$mensaje}";
$recipient = "deniz946#gmail.com";
$subject = "Subject from $nombre";
if(PHP_OS == "Linux" || PHP_OS == "Darwin") $new_line = "\n"; /* if Linux or Mac */
elseif(PHP_OS == "WINNT") $new_line = "\r\n"; /* if Windows */
$mailheader = "MIME-Version: 1.1" . $new_line;
$mailheader .= "Content-type: text/html; charset=utf-8" . $new_line;
$mailheader .= "From: ".$recipient.$new_line;
$mailheader .= "Return-Path: " . $recipient . $new_line;
$mailheader .= "Reply-To: " . $recipient . $new_line;
mail($recipient, $subject, $formcontent, $mailheader, "-r" . $recipient) or die("Error!");
echo "Thank You! We will get back to you as soon as possible!" . " -" . "<a href='./index.php'> Back to site</a>";
?>
Perhaps I can help you with an example I used myself:
The HTML contact Form:
<div class="row">
<!-- Content -->
<div id="content" class="8u skel-cell-mainContent">
<section class="12u">
<header>
<h2>Contact</h2>
</header>
<form method="post" action="mail.php">
<div class="row half">
<div class="6u">
<input name="subject" placeholder="Name" type="text" class="text" />
</div>
<div class="6u">
<input name='email' placeholder="Email" type="text" class="text" />
</div>
</div>
<div class="row half">
<div class="12u">
<textarea name="message" placeholder="Message"></textarea>
</div>
</div>
<div class="row half">
<div class="12u">
<!--a href="mail.php" class="button">Submit</a-->
<input type="submit" class="button" value="Submit">
</div>
</div>
</form>
</section>
</div>
The PHP processing of the form:
<?php
//mail(to,subject,message,headers,parameters)
// Check if the "from" input field is filled out
//if (isset($_POST['from']))
//{}
$to = 'mail#xxxxxx.com'; // my email address
$subject = $_POST['subject']; //name client
$feedback = 'thank you, we will reply soon.';
$header = $_POST['email']; //Email client
$message = $_POST['message'];
$message = wordwrap($message, 70);
$message = <<<EMAIL
Dear (YOUR WEBSITE NAME HERE),
My name is: $subject
$message
Email Client: $header
EMAIL;
// send mail
if($_POST){
mail($to, $subject, $message, $header);
echo $feedback;
}
?>
Remember very carefully, the part from Dear... to EMAIL has to be against the left side of the screen, without any tabs or spaces. Else it won't work!
Hopefully you can use this to your success :)

Categories