以下是该网站的链接 - 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本身。
答案 0 :(得分:1)
如果您只想将表单提交到当前页面,请将您的方法设置为空字符串:
<form action="" method="POST">
就个人而言,我将您的header.php
逻辑分离为一个单独的文件,以便更清晰地代码组织。在单独的文件中,您可以使用
header('location: http://whatever.com/contact');
完成处理表单数据后重定向。
答案 1 :(得分:1)
$ _ SERVER ['PHP_SELF']是指当前正在执行的脚本的文件名。在这种情况下,当前正在执行的脚本是您的自定义页面(联系页面)。如果这与您提到的header.php不是同一个文件,则表单不会提交到您想要的位置。
我建议只显示header.php作为表单目标,如果这是您希望数据提交的位置,然后在成功提交表单后重定向到您想要去的位置。