html form in php not sending to email from server - php

i have a form in my php page like the following:
<form action="" method="post">
<h1>Sign Up Now!
<!-- <span>Sign up and tell us what you think of the site!</span> --></h1>
<div class="inner-wrap">
<label>Your Full Name <input type="text" name="field1" /></label>
<label>Address <textarea name="field2"></textarea></label>
</div>
<div class="button-section">
<input type="submit" value="Submit" name="Sign Up" />
</div>
</form>
the code for it is below:
<?php
if(isset($_POST['submit'])){
$to = "zubairking#gmail.com"; // this is your Email address
$from = $_POST['field1']; // this is the sender's Email address
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$subject = "Form submission";
$subject2 = "Copy of your form submission";
$message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
// You can also use header('Location: thank_you.php'); to redirect to another page.
}
?>
my server is also mail enabled, but this code of mine is not sending values to my mail, all the code is in one page, can anyone please tell me whats wrong with my code? thanks in advance

You need the submit button to have name="submit" for the condition if(isset($_POST['submit'])) to be met. You also need to add elements with names='first_name', 'last_name' and 'message' in the form to apply them in your email messages as you are trying to do.
You also need your <input type="text" name="field1" /> to be an email instead a name, given that you are using it to set the sender of the email.

Related

contact form won't send

I found this code here on Stackoverlow but I can't get it to work. It reacts fine when I hit the Submit, but I don't recieve any mails.
<?php
if(isset($_POST['submit'])){
$to = "email#example.com"; // this is your Email address
$from = $_POST['email']; // this is the sender's Email address
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$subject = "Form submission";
$subject2 = "Copy of your form submission";
$message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
// You can also use header('Location: thank_you.php'); to redirect to another page.
}
?>
<!DOCTYPE html>
<head>
<title>Form submission</title>
</head>
<body>
<form action="" method="post">
First Name: <input type="text" name="first_name"><br>
Last Name: <input type="text" name="last_name"><br>
Email: <input type="text" name="email"><br>
Message:<br><textarea rows="5" name="message" cols="30"></textarea><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
Anyone who can help me. I should maybe say I use Joomla, if that has something to do with it? .. and of course I changed the $to to my email ;)
I have check your code, it looks good.
If you check your code on Localhost, you have to use SMTP to send an emails or enable SMTP in JOOMLA
If you are try this code on server, please check that your service provider support PHP mail in order to send an emails. if they are not allow you have to contact host service provider and/ or use SMTP mail server

mail sending issue in PHP

I just tried mail sending in php. There is no error messages and also show sucess message.but no mail should be get in receipts mail.
Here is the code:
<?php
if(isset($_POST['submit'])){
$to = "xxxxxxxxxx#gmail.com"; // this is your Email address
$from = $_POST['email']; // this is the sender's Email address
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$subject = "Form submission";
$subject2 = "Copy of your form submission";
$message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
// You can also use header('Location: thank_you.php'); to redirect to another page.
}
?>
<!DOCTYPE html>
<head>
<title>Form submission</title>
</head>
<body>
<form action="" method="post">
First Name: <input type="text" name="first_name"><br>
Last Name: <input type="text" name="last_name"><br>
Email: <input type="text" name="email"><br>
Message:<br><textarea rows="5" name="message" cols="30"></textarea><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
Well,I run it in localhost
With Your Email have you check the Junk/Spam Folder as you are sending the mail from an unregistered domain name (localhost) which my trigger the Gmail spam filters. Also try and send a CC to a temperary mail address.
Can you also provide what smtp server you are using or package such as xamp or wamp etc...
Do you have a Mail Transport Agent (MTA), or if you like, a SMTP service installed/configured? Otherwise you can't send e-mails from your localhost.

how to send a form to an email [duplicate]

This question already has answers here:
PHP mail function doesn't complete sending of e-mail
(31 answers)
Closed 7 years ago.
hey guys i'm trying to send a form to an email and that's my form :
<?php
error_reporting(0);
if(isset($_POST['submit'])){
$to = "elbiheiry2#gmail.com"; // this is your Email address
$from = $_POST['email']; // this is the sender's Email address
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$subject = "Form submission";
$subject2 = "Copy of your form submission";
$message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
// You can also use header('Location: thank_you.php'); to redirect to another page.
}
?>
<!DOCTYPE html>
<head>
<title>Form submission</title>
</head>
<body>
<form action="form.php" method="post">
First Name: <input type="text" name="first_name"><br>
Last Name: <input type="text" name="last_name"><br>
Email: <input type="text" name="email"><br>
Image: <input type="file" name="image_name"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
every time i click submit it tells me the mail is sent but when i check my inbox i find nothing can anyone help ???
I would suggest you switch to PHPMailer, it will take care of email configurations for you.

Adding captcha to a form is not working correct

I try to add a captcha to this form check the link if you like.
This is the link from Stackoverflow
But i can't make it work correctly when i type the captcha wrong nothing happen, and i still receive the mail.
<?php
session_start();
$cap = 'notEq';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_POST['captcha'] == $_SESSION['cap_code']) {
// Captcha verification is Correct. Do something here!
$cap = 'Eq';
} else {
// Captcha verification is wrong. Take other action
$cap = '';
}
$to = "exmaple#mail.com"; // this is your Email address
$from = $_POST['email']; // this is the sender's Email address
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$ip = $_POST['ip'];
$subject = "Form submission";
$subject2 = "Copy of your form submission";
$message = $first_name . " " . $last_name . " wrote the following:" . " " . $_POST['message'];
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
// You can also use header('Location: thank_you.php'); to redirect to another page.
}
?>
And here below is the captcha and the submit button.
<!-- Captcha -->
<input type="text" name="captcha" id="captcha" maxlength="6" size="6"/>
<!-- Submit Button -->
<input type="submit" id="captcha" name="captcha" value="Submit">
So what am i doing wrong in here ?
Thanks for any help.
Both your input fields have the same name, so likely the contents of the text field are being overwritten by the value of the submit button.
Change the submit buttons name.
<input type="text" name="captcha" id="captcha" maxlength="6" size="6"/>
<!-- Submit Button -->
<input type="submit" id="captchaBut" name="captchaBut" value="Submit">

send-mail.php only send field if the field exists

I have a form being posted to send-mail.php The form field is generated dynamically, sometimes it will exist, sometimes it will not exist. I want the email received to only contain the form field if it exists, if the form field does not exist there should be nothing in the email about. The code below always indicates "null" whether the field exists or not. Any ideas?
$myBlueTextArea = isset($_POST['sender_BlueText']);
if($myBlueTextArea) print 'not null';
if(!$myBlueTextArea) print 'null';
How I usually do this is with a generic processor for forms. Basically, name the form fields what you would like them to display as in the email and then create an email based on that. Usually I separate words with dashes so I use something like the following:
$body = 'You got a form submission! <br />';
foreach($_POST as $name => $value)
{
$name = preg_replace('/[^a-zA-z0-9]/', '', $name);
$body .= "<strong> $name </strong>: $value <br />";
}
This way all posted fields are stored in the $body variable in a somewhat formatted way, change the markup to suit your needs.
The code below is how I solved the problem. You can test it by filling out the form as-is and sending/emailing it to yourself, then comment out the Message textarea field and re-submit the form. When that field does not exist, the email that the form sends will omit that field instead of sending the message field as null or empty, etc.
<?php
if(isset($_POST['submit'])){
$to = "johndoe#xmail.com"; // this is your Email address
$from = $_POST['email']; // this is the sender's Email address
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$subject = "Form submission";
$subject2 = "Copy of your form submission";
if(isset($_POST['message'])){
$message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];
}
$message2 = "Here is a copy of your message " . $first_name . "\n\n" . $_POST['message'];
$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly.";
}
?>
<!DOCTYPE html>
<head>
<title>Form submission</title>
</head>
<body>
<form action="" method="post">
First Name: <input type="text" name="first_name"><br>
Last Name: <input type="text" name="last_name"><br>
Email: <input type="text" name="email"><br>
Message:<br><textarea rows="5" name="message" cols="30"></textarea><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>

Categories