HTML页面中的PHP回显

I have a contact.html page I have a form on. The form action goes to .php page to handle the email, nothing special. On that page I have:

<?php
function check_input($data)
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}

$FirstName = check_input($_REQUEST['FirstName']);
$LastName = check_input($_REQUEST['LastName']);
$email = check_input($_REQUEST['email']);
$phone = check_input($_REQUEST['phone']);
$message = check_input($_REQUEST['message']);
$human = check_input($_REQUEST['human']);
$webpackage = check_input($_REQUEST['webpackage']);
$webdesign = check_input($_REQUEST['webdesign']);
$customdesign = check_input($_REQUEST['customdesign']);

if ($human == 5) {

$to = "****.com";
$subject = "From ****";

$body = " From: $FirstName  $LastName

 E-Mail: $email

 Phone:     $phone

 Message:

 $message

 Web Package:$webpackage

 Web     Design:$webdesign

 Custom Design:$customdesign";


mail ($to, $subject, $body);
header('location: index.html');
}
else {
$result="<div class=\"alert alert-danger\">Sorry there was an error sending     your message. Please go back and check your anti-spam answer</div>";
}

?>

I have a simple box that equals 5 that I am checking value for. This works and email sent with all info. BUT if not equal to 5 is where the problem starts. The page goes to my action.php page and is blank.

My html on the contact.html page is:

    <div class="form-group">
                <div class="col-sm-10 col-sm-offset-2">
                    <?php echo($result); ?>
                </div>
            </div>

Using this to get to my action.php page through form. Everything else is .html:

 <form class="form-horizontal" id="contact-form" method="post" action="/action.php">

Is there a way to do this? I have a work around where I just echo the error from the .php page. This works if !=5 but not exactly what I want to do. As you may tell, I am not PHP literate.

You can set a variable in the $_SESSION[] array, and in your "else" section use Header() to redirect to a page where you display the value you stored.

See example in this other answered question:

displaying a message after redirecting the user to another web page

  1. Update your else part with following code :

     } else {
         header('location: contact.html?status=error');
     }
    
  2. Now check if get method is set on your contact.html page. if yes than set and display your $result value.

    <?php 
      if(isset($_GET['status']) && $_GET['status']=='error' ) { 
    
      $result="<div class=\"alert alert-danger\">Sorry there was an error sending     your message. Please go back and check your anti-spam answer</div>";           
    
    } ?>
    
  3. on contact.html check if $result has value and print it :)

Add a redirect towards contact.html in your action.php like this

else {
$result="Sorry there was an error sending your message. Please go back and check your anti-spam answer"; 
$result=str_replace(" ","%20",$result);
header('location: contact.html?result=$result'); 
} 

And then get the result in contact.html with GET

$result= $_GET['result'];

Ideally do the html mark up for result in the destination Contact.html page after you receive the result. That eliminates the nuances of passing html over http