0

Well I'm working on my first PHP code, in the way of a simple form mailer. I can't seem to see why its generating the error

We are very sorry, but there were error(s) found with the form you submitted. These errors appear below.

We are sorry, but there appears to be a problem with the form you submitted.

Please go back and fix these errors.

If anyone well versed in PHP sees the issue, I'd appreciate any guidance you can give.

The HTML

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>untitled</title>
</head>

<body>
<form action="send_form_email.php" method="post">
<fieldset>
<legend> Error Report:</legend>
<p><input name="name" type="text" placeholder="Your Name" autofocus></p>
<p><input name="email" type="text" placeholder="email@domain.com"></p>
<p><textarea name="descpirtion" placeholder="Give a description of the error."></textarea></p>
<p><label>What internet browser were you using when the error occured?</label></p>
<p><select name="browser"><option>Internet Explorer</option><option>Chrome</option><option>Safari</option><option>Firefox</option></select></p>
<p><input type="submit" value="Submit"> <input type="reset" value="Cancel"></p>
</fieldset>
</form>

</body>
</html>

the CSS

body {background: #222; padding: 1em; margin: 0; font-size: 16px; color: #777;}
     body * {margin: 0; padding: 0; font-family: helvetica, sans-serif;}
     p {margin: 0 0 1em; font-size: 14px;}

    input, textarea, select {
     border: 1px solid #111;
     border-radius: 5px;
     padding: 0.5em;
     font-size: 15px;
     line-height: 1.2em;
     width: 80%;
     background: #444;
     color: #999;
     font-family: helvetica, sans-serif;
     background: -webkit-gradient(linear, left top, left bottom, from(#222), to(#444));
     -webkit-appearance: none;
       -webkit-box-shadow: 1px 1px 1px #333;
     }

     input:focus, textarea:focus, select:focus {outline-color: #FC0;}

   textarea {
       color: #999;
       border-radius: 5px;
       height: 55px;
       background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #222), color-stop(0.05, #333));
   }

   select {
       color: #999;
       border-radius: 5px;
       padding: 0.5em 1em 0.5em 0.75em;
       background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #222), color-stop(0.05, #333));
}


     input[type=text] {
     color: #999;
     border-radius: 5px;
     background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #222), color-stop(0.12, #333));
   }

   input[type=submit] {
     color:#FFF;
     border-radius: 5px;
     width: auto;
     padding: 0.25em 1em;
     line-height: 1.5em;
     background: -webkit-gradient(linear, left top, left bottom, from(#FC0), to(#FF0));
     border: 2px solid #FC0;
     text-shadow: 0 0 2px #300;
     font-weight: bold;
     -webkit-box-shadow: 1px 1px 3px #000;
     margin-right: 0.5em;
   }

   input[type=reset] {
      border-radius: 5px;
      width: auto;
      padding: 0.25em 1em;
      line-height: 1.5em;
      background: -webkit-gradient(linear, left top, left bottom, from(#333), to(#222));
      border: 2px solid #444;
      text-shadow: 0 0 2px #300;
      font-weight: bold;
      color: #999;
      -webkit-box-shadow: 1px 1px 3px #000;
    }
label{
    color: #999;
}

leged{
    padding: 5px;
    margin: 5px;
}

the PHP

<?php
if(isset($_POST['email'])) {

    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "webmaster@canyonlakemma.com";
    $email_subject = "Website Error Report";


    function died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form you submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }

    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['email']) ||
        !isset($_POST['description']) ||
        !isset($_POST['browser'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');       
    }

    $name = $_POST['name']; // required
    $email_from = $_POST['email']; // required
    $description = $_POST['description']; // required
    $browser = $_POST['browser']; // required

    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }
    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$name)) {
    $error_message .= 'Be sure to include your name.<br />';
  }
  if(strlen($description) < 2) {
    $error_message .= 'Please include a description of the error.<br />';
  }
  if(strlen($browser) < 2) {
    $error_message .= 'Please select your browser.<br />';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "Form details below.\n\n";

    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }

    $email_message .= "Name: ".clean_string($first_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Description: ".clean_string($description)."\n";
    $email_message .= "Browser: ".clean_string($broswer)."\n";


// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);  
?>

<!-- include your own success html here -->

Thank you for contacting us. We will be in touch with you very soon.

<?php
}
?>
4

2 回答 2

1

!isset($_POST['description'])不使用相同的 id<textarea name="descpirtion"

描述 ;)

于 2012-06-02T23:46:12.003 回答
1

上面的答案是正确的,但更具体地说,您在此处的 HTML textarea 表单字段的“名称”值中拼错了“描述”:

<p><textarea name="***descpirtion***" placeholder="....

它需要在这里匹配脚本中的行:

$description = $_POST['description']; // required
!isset($_POST['description']) ||

昨天我自己做了同样的事情,当它是一个简单的错字时,我花了一个小时或更长时间调试我的 PHP。

于 2012-06-03T00:45:53.950 回答