我试图在我的项目中成功重定向后显示一条消息,但找不到真正好的方法。现在我有一个非常简单但不是很好的解决方案,如下所示:
// Things happened:
$Alert = dangerMessage("Heyho, I am a message!");
header('refresh: 1.5 ; url = index.php');
Run Code Online (Sandbox Code Playgroud)
我的 riskMessage 是预定义 Alertbox 的简单回显:
function dangerMessage($text) {
return "<div class='alert alert-danger alert-dismissable fade show mt-4'>
<a href='#' class='close' data-dismiss='alert' aria-label='close'>×</a>".$text."</div>";
}
Run Code Online (Sandbox Code Playgroud)
它只是显示一个带有文本的小框。
无论如何,就像我说的,这是我现在的“简单”解决方案,它运行良好,但不是最好的解决方案。我知道,你应该把一个die();或exit();之后header(),但我的问题是,当我将它们放在我header()的页面是空白的只是1.5秒,重定向,并显示没有消息框。
有没有办法让一个体面/良好的重定向也显示我的消息?
一种优雅而常见的方法是使用 flash 消息。这基本上是一个一次性会话条目,它在一个请求中设置并在下一个请求中传递,然后立即删除。考虑以下示例。
在重定向页面上,您在会话对象中设置 flash 消息:
$_SESSION["flash"] = ["type" => "success", "message" => "You are great!"];
Run Code Online (Sandbox Code Playgroud)
在目标页面上,检查是否有 Flash 消息。如果是,输出并删除它。
if (isset($_SESSION["flash"]))
{
vprintf("<p class='flash %s'>%s</p>", $_SESSION["flash"]);
unset($_SESSION["flash"]);
}
Run Code Online (Sandbox Code Playgroud)
注意:该示例假设您已经在使用 PHP 会话。如果没有,您必须先启动会话。
| 归档时间: |
|
| 查看次数: |
3174 次 |
| 最近记录: |