Php谢谢你在同一页面的消息

时间:2015-04-08 11:25:41

标签: php forms validation email

我必须验证表格并发送电子邮件..我从w3schools复制此表格并附上mailto功能。但我不知道如何显示"感谢您提交"表单处理完毕后。请帮助..感谢信息应显示在提交按钮下方的同一页面上。

这是我的代码..

<!DOCTYPE HTML> 
<html>
    <head>
        <style>
            .error {color: #FF0000;}
        </style>
    </head>
    <body> 

    <?php
    // define variables and set to empty values
    $nameErr = $emailErr = $genderErr = $websiteErr = "";
    $name = $email = $gender = $comment = $website = "";

    if ($_SERVER["REQUEST_METHOD"] == "POST") {
       if (empty($_POST["name"])) {
         $nameErr = "Name is required";
       } else {
         $name = test_input($_POST["name"]);
         // check if name only contains letters and whitespace
         if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
           $nameErr = "Only letters and white space allowed"; 
         }
       }

       if (empty($_POST["email"])) {
         $emailErr = "Email is required";
       } else {
         $email = test_input($_POST["email"]);
         // check if e-mail address is well-formed
         if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
           $emailErr = "Invalid email format"; 
         }
       }

       if (empty($_POST["website"])) {
         $website = "";
       } else {
         $website = test_input($_POST["website"]);
         // check if URL address syntax is valid (this regular expression also allows dashes in the URL)
         if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
           $websiteErr = "Invalid URL"; 
         }
       }

       if (empty($_POST["comment"])) {
         $comment = "";
       } else {
         $comment = test_input($_POST["comment"]);
       }

       if (empty($_POST["gender"])) {
         $genderErr = "Gender is required";
       } else {
         $gender = test_input($_POST["gender"]);
       }
    }

    function test_input($data) {
       $data = trim($data);
       $data = stripslashes($data);
       $data = htmlspecialchars($data);
       return $data;
    }


    ?>

    <h2>PHP Form Validation Example</h2>
    <p><span class="error">* required field.</span></p>
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
       Name: <input type="text" name="name" value="<?php echo $name;?>">
       <span class="error">* <?php echo $nameErr;?></span>
       <br><br>
       E-mail: <input type="text" name="email" value="<?php echo $email;?>">
       <span class="error">* <?php echo $emailErr;?></span>
       <br><br>
       Website: <input type="text" name="website" value="<?php echo $website;?>">
       <span class="error"><?php echo $websiteErr;?></span>
       <br><br>
       Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
       <br><br>
       Gender:
       <input type="radio" name="gender" <?php if (isset($gender) && $gender=="female") echo "checked";?>  value="female">Female
       <input type="radio" name="gender" <?php if (isset($gender) && $gender=="male") echo "checked";?>  value="male">Male
       <span class="error">* <?php echo $genderErr;?></span>
       <br><br>
       <input type="submit" name="submit" value="Submit"> 
    </form>


    <?php
    $to = "dheeraj.narayan1712@gmail.com";
    $subject = "My subject";
    $name = "Name: $name";
    $email = "$email";
    $headers = "From: webmaster@example.com" . "\r\n" .
    "CC: somebodyelse@example.com";

    mail($to,$subject,$name,$headers);
    ?>
    </body>
</html>

1 个答案:

答案 0 :(得分:1)

这很简单;

if(isset($email)){
   echo 'Success! Thanks for submitting';
}

然后将它放在邮件功能之后?请注意,您可以将$ email更改为您想要的任何POST变量,还可以更改echo内容。 (如果你想将它放在表单内部,请记住将其包装在

<?php ?>