Forms 联系人页面模板-重定向到';谢谢第'页;不起作用
我正试图通过自定义页面模板提交表单,但问题是它仅适用于Forms 联系人页面模板-重定向到';谢谢第'页;不起作用,forms,wordpress,email,contact,Forms,Wordpress,Email,Contact,我正试图通过自定义页面模板提交表单,但问题是它仅适用于表单操作=“”,我需要提交表单并将其重定向到类似以下内容表单操作=“/message sent?id=“ 完整代码: <?php $emailError = ''; if(isset($_POST['submitted'])) { $email = trim($_POST['email']); //setup self email address
表单操作=“
”,我需要提交表单并将其重定向到类似以下内容表单操作=“/message sent?id=“
完整代码:
<?php
$emailError = '';
if(isset($_POST['submitted'])) {
$email = trim($_POST['email']);
//setup self email address
$emailTo = $email;
$subject = "[reminder] Don't forget to download " . get_the_title();
$body = "Name: $name \n\nEmail: $email \n\nComments: $comments";
$headers = 'From: Myemail reminders <no-reply@xyz.com>' . "\r\n";
wp_mail($emailTo, $subject, $body, $headers);
$emailSent = true;
} ?>
<section class="box grid_9 list_posts">
<div class="inner">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<div class="entry-content">
<div class="contact-form clearfix">
<?php if(isset($emailSent) && $emailSent == true) { ?>
<div class="thanks">
<?php _e('Thanks, your email was sent successfully.', 'framework') ?>
</div>
<?php } else { ?>
<?php the_content(); ?>
<?php if(isset($hasError) || isset($captchaError)) { ?>
<p class="error"><?php _e('Sorry, an error occured.', 'framework') ?>
<?php } ?>
<form action="<?php the_permalink()?>" id="contactForm" method="post">
<ul class="contactform">
<li>
<input type="email" name="email" id="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" class="required requiredField email" required="required" />
</li>
<li class="buttons">
<input type="hidden" name="submitted" id="submitted" value="true" />
<input type="submit" value="Remind Me!"></input>
</li>
</ul></form>
<?php } ?></div>
</div>
</div>
<?php endwhile; else: ?>
<div id="post-0" <?php post_class() ?>>
<h1 class="entry-title"><?php _e('Error 404 - Not Found', 'framework') ?></h1>
</div>
<?php endif; ?></div>
</section>
可能您忘记在
/message sent?id=xxx
文件的末尾添加“.php”,即/message sent.php?id=xxx
另一个想法是:过滤用户输入总是一个好主意,因为您将收到大量垃圾邮件,放入某种验证码,并清理/验证整个用户输入文本,即来自表单输入字段的每个文本
电邮:
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
姓名和评论:
$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$comments = filter_var(strip_tags($_POST['comments']), FILTER_SANITIZE_STRING);
将表单数据提交到其他脚本时,请确保(验证输入和)发送电子邮件的代码就在该文件中
否则,您的URL/message sent
可能会重写为一个完全不同的脚本,一旦单击submit按钮,包含上述代码的脚本将完全不涉及
那是不是抓住你了?请随意提问,如果我的措辞不可理解,或者我的描述对您来说不清楚这不是问题,因为它是wordpress页面,所以它只能作为“/message sent?id=xxx”使用,这是我没有进行任何验证的原因(HTML5电子邮件字段除外)这将是一个提醒服务,它将向提供必要信息的地址发送电子邮件,这样人们就不会忘记稍后回来下载该文件。我不确定是否正确,但验证代码应该转到/message sent页?抱歉,我不理解我还在学习php语言。除了表单的操作
属性之外,提交表单后将访问URL。在您的情况下,这将是/messagesent
。这应该是验证输入和发送电子邮件的地方(脚本)。太棒了!感谢您快速、易懂的回复。现在一切都很好,但我会建议另一种方法。将表单发送到永久链接。这样你就可以把关于表单的任何东西放在一起,放在一个地方。然后,如果电子邮件发送成功,则执行HTTP重定向到/thank-you
页面。这样,您在浏览器刷新问题方面也会更加安全。