2016-11-16 2 views
0
私は私のPHPコードの一部が原因で実行されません一部のお問い合わせフォーム( 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 = '[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

関連する問題