【问题标题】:Wait-time before redirect in PHPPHP中重定向前的等待时间
【发布时间】:2012-05-29 23:18:00
【问题描述】:

这是我在 page1 上的代码:

session_start();
if(isset($_SESSION[$login])){
    header("Refresh: 5; location:page2.php");
    echo "Welcome back!";
}

我认为这是在暂停 5 秒后在 page2 上进行重定向的方法,其中用户可以看到“欢迎回来”消息。我错了吗?

我的代码的结果是登录的正确识别,随后显示 echo "Welcome Back",但没有发生重定向。我永远留在 page1。

哪里出错了?

ps:我搜索了类似的帖子,但我无法解决问题,所以我在这里发布,谢谢!

【问题讨论】:

  • 不要使用延迟重定向。一条消息要么足够重要,可以在用户阅读并点击之前显示给用户,要么它不够重要,无法延迟用户 X 秒(在此期间他们可能会或可能不会看屏幕)。
  • 我明白你的意思,但是我把“刷新”关了也不管用。这意味着我在使用 header 函数时犯了一个错误,但我不知道在哪里......
  • 大家好,我发现了错误!我是一头驴 -.- 它是 !isset ,带有“!”因为它是否定的。全部完成,非常感谢大家!

标签: php redirect refresh


【解决方案1】:

使用php的sleep函数。这应该可以完成工作:

session_start();
if(isset($_SESSION[$login])){
sleep(5);
header("location:page2.php");
echo "Welcome back!";
}

【讨论】:

  • 不要。页面加载时间为 5 秒,页面加载后立即进行重定向。使用 sleep() 时要非常小心!
【解决方案2】:

尝试使用 JavaScript 来执行此操作。

这是一个很好的关于使用 javascript 重定向的教程:http://www.tizag.com/javascriptT/javascriptredirect.php

【讨论】:

    【解决方案3】:

    我相信你需要使用url= 而不是location:

    header("Refresh: 5; url=page2.php");
    

    不幸的是,这是一种非标准的重定向方式(而且不是一个很好的方式),所以我找不到任何文档。

    【讨论】:

    【解决方案4】:

    这可能是因为您使用的是"location" 而不是"url"

    试试这个:header("Refresh: 5; URL=page2.php");

    "location" 在 Javascript 中用于执行重定向。

    【讨论】:

    • 也许header("Refresh: 5;page2.php") ?
    【解决方案5】:
    session_start();    
    if(isset($_SESSION[$login])){    
       header("Refresh: 5;page2.php");    
       echo "Welcome back!";     
    }
    

    这是我检查的代码。在 page2.php 中你应该使用相对路径。

    【讨论】:

    • 添加对更改内容和原因的简要说明。
    • 如果我们在页面名称之前使用 url 或位置,那么它适用于我在这里写的 url,但如果我们只使用路径,那么它适用于我在这里写的页面。
    猜你喜欢
    • 2013-08-22
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多