2016-11-16 119 views
0

我就如何使一个接触的形式(https://www.youtube.com/watch?v=9KS2QuFXIs8)和IM在那里我的一些PHP代码不会因为运行部分在YouTube上按照本教程...简单的PHP命令不工作?

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

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

下面的其他代码使用PHP的作品,所以我确信它不是服务器,但也许事实上面的代码有一个冒号。这是代码的其余部分。

<?php 
 

 
// Set email variables 
 
$email_to = '[email protected]'; 
 
$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][email protected]([-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>

+2

'if($ form_complete === FALSE);'< - 不应该是':'? –

+1

您运行的是哪个版本的PHP? – RamRaider

+0

是的是的我正在测试它,它的工作,但idk,如果冒号使不同的代码或不 –

回答

-3

在PHP您应该使用条件代码块支架。

<?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>' 
} 
?> 
+0

它更好(imo)这样做,但这决不是它要做的方式。 –

+1

好吧,我改变了我的表述,但我仍然认为它不好,学习if():版本。在一个大项目中,没有人使用这个,它更令人困惑。不习惯它。只要学习括号,代码清晰度是非常必要的 – jenald

+0

我使用了第一个代码,并且必须编辑出第一个p,它没有给我一个错误,但是如果idk工作或没有。 <?PHP的,如果($ form_complete === FALSE){?> \t \t \t \t <?PHP}其他{?> \t \t

感谢您的留言!

\t \t