javascript JS / PHP:在浏览器历史中重定向

g6baxovj  于 2023-05-21  发布在  Java
关注(0)|答案(1)|浏览(151)

我正在尝试做以下事情:用户与页面test.php交互,单击按钮并被重定向到redirect.php。在重定向他之前,我将最后一个页面(page.php)存储在cookie中。
在redirect.php上,如果用户是第一次通过,我会在xx ms后将他重定向到page.php,我会读取cookie以了解用户必须重定向到哪个页面。我希望redirect.php在浏览器历史记录中可见,这样当用户单击返回时,我可以在他离开之前做一些事情,他不应该被重定向到page.php
要将用户从redirect.php重定向到pages.php,我使用以下脚本:

<!DOCTYPE html>
<html>
<head>
<?php
if ((isset($_COOKIE["redirect_count"])) && ($_COOKIE["redirect_count"]==0))
    {
        setcookie("redirect_count",1,time()+84600);
        setcookie("redirect_passed",1,time()+84600);
        $redirect_url = $_COOKIE["redirect_url"];
?>
<script>
setTimeout(function()
    {   

        window.location.assign("<?PHP echo $redirect_url; ?>");
    }, 100);
</script>
<?PHP       
    }   
else
    {

// do something else
    }
?>

</head>
<body>

</body>
</html>

简而言之,第一次访问:test.php => click on button => redirect.php => page.php任何其他访问或返回历史记录page.php => redirect.php =>其他操作
如果我手动创建redirect_url cookie并在浏览器中访问redirect.php,我会被正确地重定向到page.php,并在浏览器历史记录中看到redirect.php。当点击返回时,我可以做一些其他的事情,而不是将用户重定向到page.php。我使用redirect_count来确保用户不会回到page.php,以防他回到历史记录中。
如果我从另一个页面访问redirect.php,并将其加载到我的浏览器中,并使用JS中的window.open,重定向到page.php可以工作,但我在浏览器中看不到redirect.php。当然,cookie redirect_url是在点击test.php上的按钮之前创建的。
为什么重定向行为有所不同?我如何确保我在www.example.com上有相同的行为window.open?,或者有其他方法可以做到这一点?
谢谢
洛朗

rkkpypqq

rkkpypqq1#

嘿..我希望这将为您的关注工作..

echo "<script>
        setTimeout(function()
        {   
    
            window.location.assign("$redirect_url");
        }, 100);
    </script>";

相关问题