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
页面。这样,您在浏览器刷新问题方面也会更加安全。