如何防止/阻止直接访问”谢谢”页面, 仅在重定向而不是替代表单(在另一个页面中)时才能访问?
我应该在下一个链接的哪里插入此方法提及
https://wordpress.stackexchange.com/questions/290234/prevent-block-direct-access-to-a-thank-you-page/290237
add_action('template_redirect', function(){
if ( ! is_page(12345)) {// ID of the thank you page
return;
}
if (wp_get_referer() == 'URL_OF_FORM') {// coming from the form, so all is fine
return;
}
// we are on thank you page
// visitor is not coming from form
// so redirect to home
wp_redirect( get_home_url() );
}
非常感谢!
#1
假设你的第一页是page1.php, 其中包含以下代码
<form action="page2.php" method="post">
<input type="text" name="blabla">
<input type="submit">
</form>
现在, 当用户输入表单值时, 它将重定向到page2.php, 在这里你将转到下面的代码, 以查看用户是否已通过表单或输入了链接。你可以通过php中的isset()实现此目的
<?php
if(isset($_POST['blabla']))
{
//process your code
}
else
{
echo "Session Expired<br>";
echo "Click <a href='./page1.php'>here</a> to fill the form";
}
?>
#2
只需在”谢谢”页面的顶部添加以下代码即可。这是满足你要求的最高效, 最紧凑的代码。
<?php
if(empty($_POST)):
wp_redirect( home_url() );
exit;
endif;
?>
注意:wp_redirect()不会自动退出。始终使用出口;在wp_redirect()函数之后。
评论前必须登录!
注册