Php 简明教程
PHP - Flash Messages
在 PHP Web 应用程序中, Message flashing 指的是使某些消息在浏览器窗口中弹出,以便用户接收应用程序反馈的技术。能够向用户提供与其交互的有意义的反馈是一项重要的设计原则,可以提供更好的用户体验。
在 PHP Web 应用程序中,我们可以使用会话数据不定期地针对特定操作、通知或警告等内容发出成功或失败的闪存消息,以便向用户随时通报相关信息。
flash message 使您能在一页上创建消息,然后在另一页上显示一次此消息。如要从一页向另一页传输消息,请使用 $_SESSION 超全局变量。
首先,请按如下方式向 $_SESSION 数组添加一个变量 -
<?php
session_start();
$_SESSION['flash_message'] = "Hello World";
?>
稍后,导航到另一页,然后从 $_SESSION 变量中检索闪存消息并将其分配给一个变量。随后,您可以显示消息,然后从 $_SESSION 中删除该消息 -
<?php
session_start();
if(isset($_SESSION['flash_message'])) {
$message = $_SESSION['flash_message'];
unset($_SESSION['flash_message']);
echo $message;
}
?>
为了概括处理闪存消息的基本思路,我们将编写一个将消息添加到 $_SESSION 中的函数 -
session_start();
function create_flash_message(string $name, string $message): void {
// remove existing message with the name
if (isset($_SESSION[FLASH][$name])) {
unset($_SESSION[FLASH][$name]);
}
// add the message to the session
$_SESSION[FLASH][$name] = ['message' => $message];
}
让我们也编写另一个函数,该函数回读一条消息、在浏览器上闪烁并从 $_SESSION 中移除此消息。
function display_flash_message(string $name): void {
if (!isset($_SESSION[FLASH][$name])) {
return;
}
// get message from the session
$flash_message = $_SESSION[FLASH][$name];
// delete the flash message
unset($_SESSION[FLASH][$name]);
// display the flash message
echo format_flash_message($flash_message);
}
format_flash_message() 函数通过适当的 CSS 规则对获得的字符串应用所需的格式设置。
如果应用程序闪现了多条消息,则可以使用以下示例检索并闪现所有这些消息 -
function display_all_flash_messages(): void {
if (!isset($_SESSION[FLASH])) {
return;
}
// get flash messages
$flash_messages = $_SESSION[FLASH];
// remove all the flash messages
unset($_SESSION[FLASH]);
// show all flash messages
foreach ($flash_messages as $flash_message) {
echo format_flash_message($flash_message);
}
}
使用以下 flash() function 创建、设置格式并闪现消息
function flash(string $name = '', string $message = ''): void {
if ($name !== '' && $message !== '') {
create_flash_message($name, $message);
}
elseif ($name !== '' && $message === '') {
display_flash_message($name); // display a flash message
} elseif ($name === '' && $message === '' ) {
display_all_flash_messages(); // display all flash message
}
}
如要实现上述方法,请在第一页上调用 flash() function 。
flash('first', 'Hello World');
导航到另一页并调用 flash() 函数来检索并显示消息 -
flash('first');
闪存消息的使用机制通常用于注册页面,以便在用户注册后将他们重定向到登录页面并显示一条欢迎消息。