如何在表单提交后永久重定向到另一个页面

How to Redirect permantly to another page after form submission

本文关键字:重定向 另一个 表单提交      更新时间:2023-09-26

你好,我想知道如何在表单提交后保护页面并重定向到其他页面。http://ranksurveys.com/users/signup在你提交表单后,他们在这里做什么,你不能再次访问该页面。您将自动重定向到http://ranksurveys.com/surveys我真的很好奇,希望有人能帮助我!

您可以使用cookie。是否可以作为服务器端或客户端使用。这可以很容易地通过Jquery cookie实现。

步骤1:添加脚本文件

<head>
 <script src="path/to/jquery.js"></script>
 <script src="path/to/jquery.cookie.js"></script>
</head>

步骤2:在受保护的表单页面添加这个脚本

var isProtected = $.cookie('page-protected');
if(isProtected == 'YES'){
  // We dont need to stay them on current page if they have already submitted the form
  window.location = "http://yoursite.com/your-thanking-page";
}
$.cookie('page-protected', 'NO');

步骤3:在感谢页面中,如果相关表单提交成功,您应该设置cookie YES

if(formSubmitComplete){
  $.cookie('page-protected', 'YES');
}

当用户提交表单时,您只需将表单提交的信息放入cookie会话中。在呈现表单之前,您只需检查cookie'session中的值,如果您发现表单已经提交,只需通过PHP发送位置和重定向状态码。你应该避免在JS中实现这个,因为任何人都可以很容易地在浏览器中禁用Javascript。

下面是一些丑陋但快速的代码示例,只是为了解释这个概念1. 检索表单
    /* These are our valid username and passwords */
$user = 'jonny4';
$pass = 'delafoo';
if (isset($_POST['username']) && isset($_POST['password')) {
    if (($_POST['username'] == $user) && ($_POST['password'] == $pass)) {    
        if (isset($_POST['rememberme'])) {
            /* Set cookie to last 1 year */
            setcookie('username', $_POST['username'], time()+60*60*24*365, '/account', 'www.example.com');
            setcookie('password', md5($_POST['password']), time()+60*60*24*365, '/account', 'www.example.com');
        } else {
            /* Cookie expires when browser closes */
            setcookie('username', $_POST['username'], false, '/account', 'www.example.com');
            setcookie('password', md5($_POST['password']), false, '/account', 'www.example.com');
        }
        header('Location: index.php');
    } else {
        echo 'Username/Password Invalid';
    }
} else {
    echo 'You must supply a username and password.';
}
  • 访问cookie并在未登录时重定向到登录。我希望你能理解如何实现一个相反的情况;)

    /*这些是我们有效的用户名和密码*/$user = 'jonny4';$pass = 'delafoo';

    if ($_COOKIE[['username']) &&收取($ _COOKIE['密码')){

    if (($_POST['username'] != $user) || ($_POST['password'] != md5($pass))) {    
        header('Location: login.html');
    } else {
        echo 'Welcome back ' . $_COOKIE['username'];
    }
    

    } else {头(地点:login.html);}