简单的PHP命令不起作用?

时间:2016-11-16 08:31:34

标签: php html

我在youtube上关注如何制作联系表单(https://www.youtube.com/watch?v=9KS2QuFXIs8)以及我的某些部分,因为我的某些PHP代码无法运行...

<?php else: ?>
<p>Thank you for your Message!</p>
<?php endif; ?>

<?php if($form_complete === FALSE): ?>

下面使用php的其余代码工作,所以我确定它不是服务器,但可能上面的代码有冒号的事实。这是代码的其余部分。

<?php

// Set email variables
$email_to = 'guomonster@gmail.com';
$email_subject = 'Form submission';

// Set required fields
$required_fields = array('fullname','email','comment');

// set error messages
$error_messages = array(
'fullname' => 'Please enter a Name to proceed.',
'email' => 'Please enter a valid Email Address to continue.',
'comment' => 'Please enter your Message to continue.'
);

// Set form status
$form_complete = FALSE;

// configure validation array
$validation = array();

// check form submittal
if(!empty($_POST)) {
// Sanitise POST array
foreach($_POST as $key => $value) $_POST[$key] = remove_email_injection(trim($value));

// Loop into required fields and make sure they match our needs
foreach($required_fields as $field) {
// the field has been submitted?
if(!array_key_exists($field, $_POST)) array_push($validation, $field);

// check there is information in the field?
if($_POST[$field] == '') array_push($validation, $field);

// validate the email address supplied
if($field == 'email') if(!validate_email_address($_POST[$field])) array_push($validation, $field);
}

// basic validation result
if(count($validation) == 0) {
// Prepare our content string
$email_content = 'New Website Comment: ' . "\n\n";

// simple email content
foreach($_POST as $key => $value) {
if($key != 'submit') $email_content .= $key . ': ' . $value . "\n";
}

// if validation passed ok then send the email
mail($email_to, $email_subject, $email_content);

// Update form switch
$form_complete = TRUE;
}
}

function validate_email_address($email = FALSE) {
return (preg_match('/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i', $email))? TRUE : FALSE;
}

function remove_email_injection($field = FALSE) {
return (str_ireplace(array("\r", "\n", "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:"), '', $field));
}

?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>

    <title>Contact Form</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <link href="css/contactform.css" rel="stylesheet" type="text/css" />

    <script type="text/javascript">
      var nameError = '<?php echo $error_messages['fullname']; ?>';
      var emailError = '<?php echo $error_messages['email']; ?>';
      var commentError = '<?php echo $error_messages['comment']; ?>';
    </script>

  </head>

  <body>
    <div id="formWrap">
      <div id="form">
        <?php if($form_complete === FALSE); ?>
        <form>
          <div class="row">
            <div class="label">
              Your Name
            </div>
            <div class="input">
              <input type="text" name="fullname" id="fullname" class="detail" value="<?php echo isset($_POST['fullname'])? $_POST['fullname'] : ''; ?>" />
              <?php if(in_array('fullname', $validation)): ?><span class="error"><?php echo $error_messages['fullname']; ?></span><?php endif; ?>
            </div>
            <div class="context">
              e.g. John Smith
            </div>
          </div>
          <div class="row">
            <div class="label">
              Your Email
            </div>
            <div class="input">
              <input type="text" name="email" id="email" class="detail" value="<?php echo isset($_POST['email'])? $_POST['email'] : ''; ?>" />
              <?php if(in_array('email', $validation)): ?><span class="error"><?php echo $error_messages['email']; ?></span><?php endif; ?>
            </div>
            <div class="context">
              We will not share your email.
            </div>
          </div>
          <div class="row">
            <div class="label">
              Your Message
            </div>
            <div class="input">
              <textarea name="comment" id="comment" class="mess"><?php echo isset($_POST['comment'])? $_POST['comment'] : ''; ?></textarea>
              <?php if(in_array('comment', $validation)): ?><span class="error"><?php echo $error_messages['comment']; ?></span><?php endif; ?>
            </div>
          </div>
          <div class="submit">
            <input type="submit" id="submit" name="submit" value="Send Message">
            </form>
          </div>
        <?php else: ?>
        <p>Thank you for your Message!</p>
        <?php endif; ?>
      </div>
    </div>
  </body>

</html>

1 个答案:

答案 0 :(得分:-3)

在PHP中你应该使用Brackets作为条件代码块。

<?php if ($form_complete === FALSE) { ?>
<p>if-branch</p>
<?php } else { ?>
<p>Thank you for your Message!</p>
<?php } ?>

但是在html中使用PHP代码可能会非常混乱。请尝试以下方法:

<?php
if ($form_complete === FALSE) {
  // do something
} else {
  echo '<p>Thank you for your Message!</p>'
}
?>