2013-02-14 97 views
0

我决定硬编码我的Wordpress博客联系表格。我创建了一个模板,如下所示。尽管花了一些时间看,我仍然无法看清问题。任何帮助将不胜感激。另外,我还没有忘记清理输入。当我在这里看到问题时,我会添加该功能。提前致谢...wordpress硬编码联系表格失败

顺便提一句,我得到这个消息:解析错误:语法错误,在F:\ xampp \ htdocs \ new_theme \ wp-content \ themes \ twentytwelve_child \ contact中意外的'else'(T_ELSE)。 PHP的线路54上

<?php /* Template Name: contact */?> 

<?php get_header(); ?> 

<?php 

if(isset($_POST["submitted"])){ 

    if($_POST["contactName"] === ""){ 
    $nameError = "Please enter your name."; 
    $hasError = true; 
    } 

    else $name = $_POST['contactName']; 
if($_POST["email"] === ""){ 
    $emailError = "Please enter your email address."; 
    $hasError = true; 
    } 

    else if (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", $_POST['email'])) { 
    $emailError = "You entered an invalid email address."; 
    $hasError = true; 
} 

else $email = $_POST['email']; 

if($_POST['comments'] === ""){ 
    $commentError = "Please enter a message."; 
    $hasError = true; 
} 

else $comments = $_POST["comments"]; 

}

if(!isset($hasError)) { 
    $emailTo = "[email protected]"; 
    $subject = "From Android Scoop - From: $name"; 
    $body = "Name: $name \n Email: $email \n Comments: $comments"; 
    $headers = "From: $name <$emailTo> \n Reply-To: $email"; 

    wp_mail($emailTo, $subject, $body, $headers); 
    $emailSent = true; 
} 

?>

<?php if(isset($emailSent) && $emailSent == true){ ?> 
     <div class="thanks"> 
     <p>Thanks, your email was sent successfully.</p> 
    </div> 
<?php } ?> 

<?php else{?> 
     <?php if(isset($hasError){?> <p class="error">Sorry, an error occured.<p> 

      <div class="form_left">  
    <form action="<?php the_permalink();?>" method="post"> 
     <label><span class="requiring">*</span>Name:</label> 
     <input type="text" name="contactName"/> 
     <?php if($nameError)?> <span class="error"><?=$nameError;?></span> 

       <label><span class="requiring">*</span>Email</label> 
     <input type="text" name="email"/> 
     <?php if($emailError)?><span class="error"><?=$emailError;?></span> 

     <label>Phone</label><input type="text" name="phone"/> 
     <input type="submit" value="Send your message"/> 
     <input type="hidden" name="submitted" value="true" /> 
    </div> 

    <div class="form_right">   
     <label><span class="requiring">*</span>Message:</label> 
     <textarea name="comments" rows="20" cols="30" class="required requiredField"></textarea> 
     <?php if($commentError)?><span class="error"><?=$commentError;?></span> 
</form> 
      </div> 

<?php }} ?>  

回答

0

有两种语法错误:

<?php }else{ 
     if(isset($hasError)){?> 

1,

<?php } ?> 

<?php else{?> 

您不能关闭PHP标签,然后打开它使用支架时else重新开始。如果您使用替代的if/then语句,那么这是可能的

2,

if(isset($hasError)

你缺少右括号的if语句

全:

<?php 
if(isset($emailSent) && $emailSent == true){ 
    echo '<div class="thanks"><p>Thanks, your email was sent successfully.</p></div>'; 
}else{ 
    if(isset($hasError)){?> 
     <p class="error">Sorry, an error occured.<p> 
      <div class="form_left">  
      <form action="<?php the_permalink();?>" method="post"> 
       <label><span class="requiring">*</span>Name:</label> 
       <input type="text" name="contactName"/> 
       <?php if($nameError)?> <span class="error"><?=$nameError;?></span> 

         <label><span class="requiring">*</span>Email</label> 
       <input type="text" name="email"/> 
       <?php if($emailError)?><span class="error"><?=$emailError;?></span> 

       <label>Phone</label><input type="text" name="phone"/> 
       <input type="submit" value="Send your message"/> 
       <input type="hidden" name="submitted" value="true" /> 
      </div> 

      <div class="form_right">   
       <label><span class="requiring">*</span>Message:</label> 
       <textarea name="comments" rows="20" cols="30" class="required requiredField"></textarea> 
       <?php if($commentError)?><span class="error"><?=$commentError;?></span> 
     </form> 
     </div> 
    <?php 
    } 
} ?> 
+0

如果其他人在我的代码底部关闭 – 2013-02-14 18:09:57

+0

当然,但你不能用'else {'这个只能用于替代if像这样的陈述:'else:' – 2013-02-14 18:12:08

+0

好的。我刚刚检查并使用了呈现页面的片段,好像评论已提交 – 2013-02-14 18:24:02