个性化阅读
专注于IT技术分析

阻止/阻塞直接访问”谢谢”页面

如何防止/阻止直接访问”谢谢”页面, 仅在重定向而不是替代表单(在另一个页面中)时才能访问?

我应该在下一个链接的哪里插入此方法提及

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()函数之后。

赞(0)
未经允许不得转载:srcmini » 阻止/阻塞直接访问”谢谢”页面

评论 抢沙发

评论前必须登录!