PHP - 快閃記憶體訊息



快閃記憶體訊息 在 PHP Web 應用程式中是指使某些訊息在瀏覽器視窗中彈出以供使用者接收應用程式反饋的技術。能夠向用戶提供對其互動的有意義的反饋是一個重要的設計原則,它可以提供更好的使用者體驗。

在 PHP Web 應用程式中,我們可以使用會話資料來不時地閃現有關某個操作成功或失敗、通知或警告等的訊息,以使使用者瞭解情況。

快閃記憶體訊息 允許您在一個頁面上建立訊息,並在另一個頁面上顯示一次。要將訊息從一個頁面傳輸到另一個頁面,您可以使用$_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 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() 函式

flash('first', 'Hello World');

導航到另一個頁面並呼叫 flash() 函式以檢索和顯示訊息:

flash('first');

使用快閃記憶體訊息的機制通常用於註冊頁面,以便在使用者註冊後將使用者重定向到登入頁面並顯示歡迎訊息。

廣告