I can't get my form to submit. in IE clicking "send" goes to index.html. Fire fox and Chrome takes you to the "Thank you" text, but I'm not getting the form in my inbox. Can anyone tell me what I'm missing?:
Mailhandler.php:
<?php
$owner_email = $_POST["owner_email"];
$headers = 'From:' . $_POST["email"];
$subject = 'A message from your site visitor ' . $_POST["name"];
$messageBody = "";
$messageBody .= '<p>Visitor: ' . $_POST["name"] . '</p>' . "\n";
$messageBody .= '<br>' . "\n";
$messageBody .= '<p>Email Address: ' . $_POST['email'] . '</p>' . "\n";
$messageBody .= '<br>' . "\n";
$messageBody .= '<p>Phone Number: ' . $_POST['phone'] . '</p>' . "\n";
$messageBody .= '<br>' . "\n";
$messageBody .= '<p>Message: ' . $_POST['message'] . '</p>' . "\n";
if($_POST["stripHTML"] == 'true'){
$messageBody = strip_tags($messageBody);
}
try{
if(!mail($owner_email, $subject, $messageBody, $headers)){
throw new Exception('mail failed');
}else{
echo 'mail sent';
}
}catch(Exception $e){
echo $e->getMessage() ."\n";
}
?>
Mailhandler.ashx:
<%@ WebHandler Language="C#" Class="Handler" Debug="true" %>
using System;
using System.Web;
using System.Net.Mail;
using System.Text.RegularExpressions;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
SmtpClient mailClient = new SmtpClient(context.Request.Form.Get("smtpMailServer"));
string owner_email = context.Request.Form.Get("owner_email");
string subject = "A message from your site visitor " + context.Request.Form.Get("name");
string email = context.Request.Form.Get("email");
string messageBody = "";
messageBody += "<p>Visitor: " + context.Request.Form.Get("name") + "</p>\n";
messageBody += "<br>\n";
messageBody += "<p>Email Address: " + context.Request.Form.Get("email") + "</p>\n";
messageBody += "<br>\n";
messageBody += "<p>Phone Number: " + context.Request.Form.Get("phone") + "</p>\n";
messageBody += "<br>\n";
messageBody += "<p>Message: " + context.Request.Form.Get("message") + "</p>\n";
MailMessage message = new MailMessage();
try{
message.From = new MailAddress(email.ToString());
}catch (FormatException e) {
context.Response.Write(e.Message);
}
message.To.Add(owner_email);
message.Subject = subject;
if(context.Request.Form.Get("stripHTML") == "true"){
message.IsBodyHtml = false;
messageBody = Regex.Replace(messageBody, "<.*?>", string.Empty);
}else{
message.IsBodyHtml = true;
}
message.Body = messageBody;
try{
mailClient.Send(message);
}catch (SmtpException e) {
context.Response.Write("mail failed");
}
context.Response.Write("mail sent");
}
public bool IsReusable {
get {
return false;
}
}
}
Contact HTML:
<form id="contact_form">
<input type="hidden" name="owner_email" id="owner_email" value="info@monicawerner.com" />
<input type="hidden" name="serverProcessorType" id="serverProcessorType" value="php" />
<input type="hidden" name="smtpMailServer" id="smtpMailServer" value="localhost" />
<input type="hidden" name="stripHTML" id="stripHTML" value="true" />
<div class="clearfix">
<input type="text" name="name" id="name" value="Name:" onFocus="if(this.value=='Name:'){this.value=''}" onBlur="if(this.value==''){this.value='Name:'}" />
<label class="error" for="name" id="name_error">*This field is required.</label>
<label class="error" for="name" id="name_error2">*This is not a valid name.</label>
<div class="clear"></div>
</div>
<div class="clearfix">
<input type="tel" name="phone" id="phone" value="Phone:" onFocus="if(this.value=='Phone:'){this.value=''}" onBlur="if(this.value==''){this.value='Phone:'}" />
<label class="error" for="phone" id="phone_error">*This field is required.</label>
<label class="error" for="phone" id="phone_error2">*This is not a valid phone number.</label>
<div class="clear"></div>
</div>
<div class="clearfix">
<input type="email" name="email" id="email" value="Email:" onFocus="if(this.value=='Email:'){this.value=''}" onBlur="if(this.value==''){this.value='Email:'}" />
<label class="error" for="email" id="email_error">*This field is required.</label>
<label class="error" for="email" id="email_error2">*This is not a valid email address.</label>
<div class="clear"></div>
</div>
<div class="clearfix">
<textarea name="message" id="message" onFocus="if(this.value=='Message:'){this.value=''}" onBlur="if(this.value==''){this.value='Message:'}" cols="1" rows="1">Message:</textarea>
<div class="clear"></div>
</div>
<div class="buttons"><a href="#" id="clear" class="more1 fleft">clear</a> <a href="#" id="submit" class="more1 fright">send</a></div>
</form>
There's also this in the contact form js code (but I dont think it relates to my issue?):
var owner_email = $("input#owner_email").val();
if(!isValidEmailAddress(owner_email)){
$('#contact_wrapper').html("<label class='error'>*Owner email is not valid</label>")
}
I apologize ahead of time if I added this thread in the wrong forum. Thanks for any help! You can view the form here:
http://monicawerner.com/#contact.html
MOD EDIT: [noparse]
, [code=html], and [code][/noparse] bbcode tags added where appropriate. Please use these tags in the future when posting PHP/HTML/other code (respectively) as they make your code much easier to read and analyze.