将页面重定向到另一页面10秒钟,然后再次重定向回原始URL

时间:2019-07-11 12:39:44

标签: javascript php redirect phpinfo

我想暂时将用户重定向到广告页面,然后在10秒后再次将他们返回到所需的页面。

我不知道该怎么做,因为我不太了解PHP或Java。因此,请向我提供完整的重定向代码,并指导我将代码放在何处。

我在第一页上使用$_GET参数,所以可以说我的网址如下:

mydomain.net/games/?game=PUBG+Mobile&Rating=5
mydomain.net/games/?game=Apex+Legends&Rating=4
mydomain.net/games/?game=GTA+5&Rating=4.5

我希望每个URL都重定向到ads.php页面,然后在10秒后重定向回原始URL,并且再也不会重定向。

2 个答案:

答案 0 :(得分:2)

首先: Java!== Javascript

  

Java和Javascript相似,例如Car和Carpet相似。

来源:https://stackoverflow.com/a/245068/3119231

-

要将用户重定向到另一个位置,您可以使用:

// Simulate a mouse click:
setTimeout(function() { // timer
    window.location.href = url;
}, 10000); // 10000 ms = 10 seconds

// Simulate an HTTP redirect:
setTimeout(function() { // timer
    window.location.replace(url);
}, 10000); // 10000 ms = 10 seconds

将其放在您喜欢的文档中。

来源:https://www.w3schools.com/howto/howto_js_redirect_webpage.asp

奖金(CaitLAN Jenner):您需要防止文档在无限循环中重定向。您的访问者每10秒就会从一个站点被推送到另一个站点。

答案 1 :(得分:1)

@Maurice提到了如何在JavaScript中执行HTTP重定向。但是,如果在两个页面上都执行此操作,则会发现自己处于无限重定向循环中,这非常糟糕。为了扩展该答案,这里有一些PHP通过使用查询字符串参数来动态禁用从原始页面进行的第二次重定向(请参见https://en.wikipedia.org/wiki/Query_string)。

首先,您需要在文档顶部包含以下PHP代码。如果您还有其他PHP代码,只需将其内部放置在其下方。这将接受重定向查询字符串。

<?php

$redirect = 1

if (isset($_GET['redirect'])) {
    $redirect = htmlspecialchars($_GET["redirect"]);
}

?>

现在,在文档的后面(最好在正文末尾或头部内),您需要使用PHP这样的动态生成JavaScript。

<?php
if ($redirect == 1)
{
    echo "<script>";
    echo "// Simulate an HTTP redirect:";
    echo "setTimeout(function() { // timer";
    echo "window.location.replace(url);";
    echo "}, 10000); // 10000 ms = 10 seconds";
    echo "</script";
}
?>

请注意,您需要在此处用适当的网址替换“ url”,这可能需要正确转义引号(请参见https://www.php.net/manual/en/function.addslashes.php

最后一点,您需要在重定向回原始页面的页面上适当设置“重定向”查询字符串。您可以通过以下方式进行操作:

mydomain.net/games/?game=PUBG+Mobile&Rating=5&redirect=0

按请求更新 在第二页上,您不需要上面提到的PHP逻辑。您只需要JavaScript 10秒重定向即可。这样的事情应该起作用。

<script>
url = "mydomain.net/games/?game=PUBG+Mobile&Rating=5&redirect=0";

// Simulate an HTTP redirect:
setTimeout(function() { // timer
window.location.replace(url);
}, 10000); // 10000 ms = 10 seconds
</script>

请注意,这里我使用了静态URL。如果您希望此URL是动态的,则可以使用与我提到的完全相同的方法来解决无限重定向。换句话说,将原始URL作为查询字符串参数传递到广告页面,通过PHP在广告页面上对其进行解析,然后使用PHP在上面的代码中动态创建URL。