0

这是该网站的链接 - http://zigzagadvertising.com.ph/aleemguiapal/page/2/

我在 wordpress 中的表单有问题。每当我单击提交按钮时,它都会返回索引页面,而不是将数据发送到电子邮件地址

这是我放置在 Header.php 之上的 PHP 代码。这段代码放在标签之前

<?php 
$error=false;
$sent=false;
if(isset($_POST['submit'])) {
if(empty($_POST['firstname']) || empty($_POST['email']) || empty($_POST['message'])) {
$error = true;
} else {

 $to = "clestcruz@gmail.com";

 $name = trim($_POST['firstname']);
 $email = trim($_POST['email']);
 $comments = trim($_POST['message']);

 $subject = "Contact Form";

 $messages = "Name: $firstname \r\n Email: $email \r\n Comments: $message";
 $headers = "From:" . $name;
 $mailsent = mail($to, $subject, $messages, $headers);

 if($mailsent){
     $sent= true;
}
}
}
?>

这是我的自定义页面(联系页面)

<!--CONTACT-->
<div  class="container">
<div  class="eleven columns contact">
     <div id="contact-container" class="eleven columns alpha omega contact">
         <h2>contact us</h2>
         <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras non lacus vel nulla molestie cursus quis a urna. Donec sodales venenatis consequat. Sed tristique elit nec diam rhoncus adipiscing</p>
     </div>

     <div id="note-container" class="eleven columns alpha omega note">
         <p>All fields marked with an asterisk(<span class="asterisk">*</span>) are required</p>
     </div>

     <div class="contactform">
     <form id="register-form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">


     <?php if($error == true) { ?>
     <p class="error"> There are some misisng fields.</p>
     <?php } if($sent == true) { ?>
     <p class="sent">Thank you for sending your message</p><?php } ?>


         <div class="four columns alpha contact-form">

         <label>prefix</label>
         <input type="text"  />
         <label><span class="asterisk">*</span>first name</label>
         <input type="text" name="firstname"/>
         <label><span class="asterisk"></span>middle name</label>
         <input type="text" name="middlename"/>
         <label><span class="asterisk"></span>last name</label>
         <input type="text" name="lastname"/>
         <label><span class="asterisk">*</span>email address</label>
         <input type="text" name="email"/>

        </div>

        <div class="four columns contact-form">

         <label>phone</label>
         <input type="text" />
         <label>street</label>
         <input type="text" />
         <label><span class="asterisk"></span>zip</label>
         <input type="text" name="zip" />
         <label><span class="asterisk"></span>city</label>
         <input type="text" name="city" />


        </div>

        <div class="clearfix"></div>

        <div class="eleven columns contact-form alpha omega">

        <label><span class="asterisk"></span>subject</label>
        <input type="text" name="subject"/>
        <label><span class="asterisk">*</span>message</label>
        <textarea name="message"></textarea>


        <input class="contact-button" type="submit" name="submit" value="submit" />
        <input class="contact-button" type="reset" value="reset" />

        </div>

     </form>
     </div>

<div class="four columns">
</div>

</div>



 <?php get_sidebar(); ?>
</div>   


<?php get_footer(); ?>



</body>
</html>

我尝试制作一个联系页面并将其上传到一个免费的托管站点,它似乎工作正常。我什至得到了表格中的数据或值。不确定我的表单无法正常工作的原因是否是因为 wordpress 本身。

4

2 回答 2

1

如果您只想让表单提交到当前页面,请将您的方法设置为空字符串:

<form action="" method="POST">

就个人而言,我会将您的逻辑header.php分离到一个单独的文件中,以便更清晰地组织代码。在单独的文件中,您可以使用

header('location: http://whatever.com/contact');

处理完表单数据后重定向。

于 2013-07-18T03:27:36.257 回答
1

$_SERVER['PHP_SELF'] 指的是当前执行脚本的文件名。在这种情况下,当前执行的脚本是您的自定义页面(联系页面)。如果这与您提到的 header.php 文件不同,则该表单未提交到您想要的位置。

如果您希望数据提交到那里,我建议只将 header.php 明确指定为表单目标,然后在表单成功提交后重定向到您想要去的地方。

于 2013-07-18T03:27:41.783 回答