I have a problem with the form I'm trying to create. Basically, it does not allow me to send the email to the recipient, even though the PHP code is correct. Could it be the problem with TRIM PHP code?
<?php
if ($_POST['submit']) {
if (empty($_Post['name']) ||
empty($_POST['email']) ||
empty($_POST['comments'])) {
$error = true;
}
else {
$to = "[email protected]";
$name = trim($_POST['name']);
$email = trim($_POST['email']);
$comments = trim($_POST['comments']);
$subject = "Contact Form";
$messages = "Name: $name \r\n Email: $email \r\n Comments: $comments";
$headers = "From:" . $name;
$mailsent = mail($to, $subject, $message, $headers);
if ($mailsent) {
$sent = true;
}
}
}
?>
My HTML is:
<?php if($error == true){ ?>
<p class="error">Text</p>
<?php } if($sent == true) { ?>
<p class="sent">Text</p>
<?php } ?>
<div id="form">
<form name="contact" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset>
<h4>Contact Me!</h4>
<label for="name">Name:</label>
<input type="text" name="name" id="name"/>
<label for="email"/>Email:</label>
<input type="text" name="email" id="email"/>
<label for="comments" id="comments">Comments:</label>
<textarea name="comments" id=""></textarea>
<fieldset>
<input class="btn" type="submit" name="submit" class="submit" value="Send email"/>
<input class="btn" type="reset" value="Reset"/>
</fieldset>
</fieldset>
</form>
Peter Mortensen
31.3k22 gold badges110 silver badges134 bronze badges
asked Aug 28, 2012 at 11:24
Linards Berzins
834 gold badges7 silver badges20 bronze badges
2 Answers 2
Try this (I had to fix a number of things):
<?php
$error = false;
$sent = false;
if(isset($_POST['submit'])) {
if(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['comments'])) {
$error = true;
}
else {
$to = "[email protected]";
$name = trim($_POST['name']);
$email = trim($_POST['email']);
$comments = trim($_POST['comments']);
$subject = "Contact Form";
$message = "Name: $name \r\n Email: $email \r\n Comments: $comments";
$headers = "From:" . $name;
$mailsent = mail($to, $subject, $message, $headers);
if($mailsent) {
$sent = true;
}
}
}
?>
<?php if($error == true){ ?>
<p class="error">Text</p>
<?php } if($sent == true) { ?>
<p class="sent">Text</p>
<?php } ?>
<div id="form">
<form name="contact" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset>
<h4>Contact Me!</h4>
<label for="name">Name:</label>
<input type="text" name="name" id="name"/>
<label for="email"/>Email:</label>
<input type="text" name="email" id="email"/>
<label for="comments" id="comments">Comments:</label>
<textarea name="comments" id=""></textarea>
<fieldset>
<input class="btn" type="submit" name="submit" class="submit" value="Send email"/>
<input class="btn" type="reset" value="Reset"/>
</fieldset>
</fieldset>
</form>
</div>
Peter Mortensen
31.3k22 gold badges110 silver badges134 bronze badges
answered Aug 28, 2012 at 11:32
user399666
20k7 gold badges49 silver badges68 bronze badges
Sign up to request clarification or add additional context in comments.
1 Comment
Linards Berzins
Thank you for the effort
<script>
window.scroll(0,0);
$('#table_content').dataTable( {
"bJQueryUI": true,
"bProcessing": true,
"sPaginationType": "full_numbers",
"sAjaxSource": "../gym_facility_v0/load_facility.php"
});
$("#men a").click( function (){
var link = $(this);
$.ajax({ url: "../"+link.attr("href"),
dataType: 'html',
data: {post_loader: 1},
success: function(data){
$("#content").html(data);
}});
return false;
});
</script>
<div class="title"><h5> Gym Facility</h5></div>
<div class="table">
<div class="head" id="men"><h5 class="iAdd"><a class="open-add-client-dialog" href="gym_facility_v0/form_facility.php"><i class="icon-plus"></i>Add Facility</a></h5></div>
<div class="dataTables_wrapper" id="example_wrapper">
<div class="">
<div class="dataTables_filter" id="example_filter">
<!--<label>Search: <input type="text" placeholder="type here...">
<div class="srch">
</div>
</label>-->
</div>
</div>
<table cellpadding="0" cellspacing="0" border="0" class="display" id="table_content">
<thead>
<tr>
<th class="ui-state-default" rowspan="1" colspan="1" style="width: 2%;">
<div class="DataTables_sort_wrapper">S.No
</div></th>
<th class="ui-state-default" rowspan="1" colspan="1" style="width: 227px;">
<div class="DataTables_sort_wrapper">Gym Facility</div></th><th class="ui-state-default" rowspan="1" colspan="1" style="width: 130px;">
<div class="DataTables_sort_wrapper"> Action</div></th></tr>
</thead>
<tbody><tr class="gradeA odd">
<td colspan="5" class="gradeA">Loading data from server</td>
</tr>
</tbody>
</table>
</div><!-- End of .content -->
Peter Mortensen
31.3k22 gold badges110 silver badges134 bronze badges
2 Comments
lang-php
$messagesbut are passing$messageinto the mail function. Is this how it is in your code or is that a typo only in the question?<input type="submit">will not submit itself even if you give it aname. So your$_POST["submit"]will always be empty.