0

http://www.dorsetdesigns.co.uk/contact.html

try the form it wont send a email to me. i am using a mail account associated with the domain

<?php

// Clean up the input values
foreach($_POST as $key => $value) {
if(ini_get('magic_quotes_gpc'))
$_POST[$key] = stripslashes($_POST[$key]);

$_POST[$key] = htmlspecialchars(strip_tags($_POST[$key]));
}

// Assign the input values to variables for easy reference
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];

// Test input values for errors
$errors = array();
if(strlen($name) < 2) {
if(!$name) {
$errors[] = "You must enter a name.";
} else {
$errors[] = "Name must be at least 2 characters.";
}
}
if(!$email) {
$errors[] = "You must enter an email.";
} else if(!validEmail($email)) {
$errors[] = "You must enter a valid email.";
}
if(strlen($message) < 10) {
if(!$message) {
$errors[] = "You must enter a message.";
} else {
$errors[] = "Message must be at least 10 characters.";
}
}

if($errors) {
// Output errors and die with a failure message
$errortext = "";
foreach($errors as $error) {
$errortext .= "<li>".$error."</li>";
}
die("<span class='failure'>The following errors occured:<ul>". $errortext ."</ul>
</span>");
}

// Send the email
$to = "[email protected]";
$subject = "Contact Form: $name";
$message = "$message";
$headers = "From: $email";

mail($to, $subject, $message, $headers);

// Die with a success message
die("<span class='success'>Success! Your message has been sent.</span>");

// A function that checks to see if
// an email is valid
function validEmail($email)
{
$isValid = true;
$atIndex = strrpos($email, "@");
if (is_bool($atIndex) && !$atIndex)
{
  $isValid = false;
}
else
{
  $domain = substr($email, $atIndex+1);
  $local = substr($email, 0, $atIndex);
  $localLen = strlen($local);
  $domainLen = strlen($domain);
  if ($localLen < 1 || $localLen > 64)
  {
     // local part length exceeded
     $isValid = false;
  }
  else if ($domainLen < 1 || $domainLen > 255)
  {
     // domain part length exceeded
     $isValid = false;
  }
  else if ($local[0] == '.' || $local[$localLen-1] == '.')
  {
     // local part starts or ends with '.'
     $isValid = false;
  }
  else if (preg_match('/\\.\\./', $local))
  {
     // local part has two consecutive dots
     $isValid = false;
  }
  else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
  {
     // character not valid in domain part
     $isValid = false;
  }
  else if (preg_match('/\\.\\./', $domain))
  {
     // domain part has two consecutive dots
     $isValid = false;
  }
  else if(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',
             str_replace("\\\\","",$local)))
  {
     // character not valid in local part unless
     // local part is quoted
     if (!preg_match('/^"(\\\\"|[^"])+"$/',
         str_replace("\\\\","",$local)))
     {
        $isValid = false;
     }
  }
  if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A")))
  {
     // domain not found in DNS
     $isValid = false;
  }
  }
  return $isValid;
  }

  ?>

This code submits the form and the code below is the form the reason there is so much code is to make the php safe. i think there shouldn't be any errors in the code but that could be the problem

    <form id="contactform" action="processForm.php" method="post">
    <table>
      <tr>
        <td><label for="name">Name:</label></td>
        <td><input type="text" id="name" name="name" /></td>
      </tr>
      <tr>
        <td><label for="email">Email:</label></td>
        <td><input type="text" id="email" name="email" /></td>
      </tr>
      <tr>
        <td><label for="message">Message:</label></td>
        <td><textarea id="message" name="message" rows="5" cols="20"></textarea></td>
      </tr>
      <tr>
        <td></td>
        <td><input type="submit" value="Send!" id="send" /></td>
      </tr>
    </table>
  </form>
7
  • you mind showing us some code ? Commented Jul 2, 2012 at 13:35
  • 1
    There are many similar questions on SO (and other forums). Have you consulted those? Commented Jul 2, 2012 at 13:45
  • Have you tried REDUCING your code to a small piece of code that exhibits the issue? Commented Jul 2, 2012 at 13:46
  • Now that you've posted the code, can you dump the values submitted from the form? Try print_r( $_POST ); at the top of the receiving script. Commented Jul 2, 2012 at 13:46
  • Are there any messages in php error log? Commented Jul 2, 2012 at 13:50

1 Answer 1

2

It seems that the file processForm.php is not there where it should be.

When clicking on send it tries to submit the form by calling the url: http://www.dorsetdesigns.co.uk/processForm.php

And the response is like:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /processForm.php was not found on this server.</p>
</body></html>

So check the file paths, it will surely work.

Sign up to request clarification or add additional context in comments.

1 Comment

IT WORKS NOW THANKS and due to such a simple mistake

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.