我在PHP中有一個網站,我希望當用戶登錄到他的個人資料時,他會在儀表板上看到類似Welcome的消息「」。現在這裏的轉折點是,我希望只有當用戶剛剛登錄時纔會顯示此消息,而不是每次使用繼續會話。如何僅在登錄PHP網頁時顯示消息?
在這種情況下可以做些什麼?請幫助...
感謝
我在PHP中有一個網站,我希望當用戶登錄到他的個人資料時,他會在儀表板上看到類似Welcome的消息「」。現在這裏的轉折點是,我希望只有當用戶剛剛登錄時纔會顯示此消息,而不是每次使用繼續會話。如何僅在登錄PHP網頁時顯示消息?
在這種情況下可以做些什麼?請幫助...
感謝
將變量存儲在會話中。讓你的儀表盤頁面上的狀態,看起來像:
<?php
if(isset($_SESSION['welcome_message']))
{
echo $_SESSION['welcome_message'];
unset($_SESSION['welcome_message']);
}
?>
現在,它不會在後續頁面點擊顯示。
這通常被稱爲「閃光燈」消息。
您可以在$_SESSION
陣列中使用的標誌。
<?php
if (!isset($_SESSION['display_greeting'])){
echo "Hello " . $name;
$_SESSION['display_greeting']=1;
}
?>
我會假定你只想讓這個消息一次顯示出來,例如,他們的第一次登錄時,您需要:
message_displayed
數據庫是假的,如果是則顯示消息message_displayed
對用戶真正現在後續的日誌將會在數據庫中設置。只在會話中執行此操作將意味着,如果他們刪除了Cookie或從另一臺計算機登錄,它可能會再次顯示。
編輯:
退一步來說,這是不可持續的。真的,你需要一個通知系統。
這樣,您可以只顯示一次多個通知,而不是依賴用戶表中的單個數據庫列。您還可以爲通知設置不同的觸發器,例如它會顯示一次並刪除它,或者只有在發生特定操作時纔會被刪除。例如接受/拒絕朋友請求。
這是框架的一個共同特徵。這個想法是你在一個會話中存儲一條消息,然後在它被顯示之後,你刪除它。一個基本的例子是我:
session_start()
$_SESSION['message'] = "thanks for logging in";
header('Location: index.php');
然後在你的索引。
if ($_SESSION['message'])
{
echo $_SESSION['message'];
unset($_SESSION['message'];
}
這些被稱爲flash消息,並且實現已經存在。檢出:https://github.com/jimmiw/php-flash-message
嗨創建一個log_report(或什麼名字)表中輸入用戶登錄的時間,但在輸入之前把時間放入會話和比較時間與您現有的記錄,如果該記錄不存在否則不顯示消息。每次頁面加載時都會比較該會話時間。如果現有不顯示,否則顯示....
一個不錯的技術 – 2011-02-02 11:26:45