提交按钮返回索引页而不是发送数据

时间:2013-07-18 03:18:03

标签: php html wordpress forms

以下是该网站的链接 - 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本身。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

答案 1 :(得分:1)

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

我建议只显示header.php作为表单目标,如果这是您希望数据提交的位置,然后在成功提交表单后重定向到您想要去的位置。