echo "First Login as a user.";
ob_end_flush();
flush();
usleep(5000000);
header("Location:index.php");
我想显示“首次登录为用户”。 5秒钟后我想重定向到index.php
。
我发现上面的代码,它应该工作。但是当我运行代码时,没有输出。浏览器标题栏显示“正在连接”,5秒后直接重定向到index.php
。
如何解决错误。还有其他方法吗? (试过sleep(),ob_flush()同样的结果。)
Apache 2.4.4 PHP 5.5.1
另一个疑问: 无论如何要把这两个陈述结合起来。isset($_SESSION['user']) && $_SESSION['user']!="admin"
答案 0 :(得分:0)
尝试使用Refresh标头而不是刷新数据:
header( "Refresh:5; url=index.php" );
echo "First Login as a user.";
// End Script
还要记住,输出数据后调用header()函数会导致“已发送标题”php错误.. SO调用header()首先
答案 1 :(得分:0)
在输出任何内容后,您应该无法更改标题。此外,在发送重定向之前依赖来自服务器的休眠不是一个好主意,因为用户可能会丢失连接或取消请求。此外,在浏览器等待连接完成时,页面在技术上暂停。
最好的解决方案是使用Refresh标头作为@ Wilson212提及。
关于isset()和字符串检查的组合,您拥有它的方式是最佳实践。如果您不检查所设置的变量,通常会在PHP 5中收到警告。我会留下你现在为那条线路如何拥有它。