私はPHPでウェブサイトを持っています。ユーザーが彼のプロフィールにログインすると、ようこそ "のようなダッシュボードにメッセージが表示されます。ここでは、このメッセージが表示されるのは、ユーザーが継続セッションで毎回ログインしていない場合にのみ表示されるようにすることです。PHPのWebページにログインするときにのみメッセージを表示する方法は?
この場合、何ができますか?あなたは$_SESSION
配列にフラグを使用することができます
おかげ
私はPHPでウェブサイトを持っています。ユーザーが彼のプロフィールにログインすると、ようこそ "のようなダッシュボードにメッセージが表示されます。ここでは、このメッセージが表示されるのは、ユーザーが継続セッションで毎回ログインしていない場合にのみ表示されるようにすることです。PHPのWebページにログインするときにのみメッセージを表示する方法は?
この場合、何ができますか?あなたは$_SESSION
配列にフラグを使用することができます
おかげ
変数をセッションに格納します。ダッシュボードページに次のような状態があります。
<?php
if(isset($_SESSION['welcome_message']))
{
echo $_SESSION['welcome_message'];
unset($_SESSION['welcome_message']);
}
?>
それで、それ以降のページヒットでは表示されません。
これは、しばしば「フラッシュ」メッセージと呼ばれます。
...助けてください。
<?php
if (!isset($_SESSION['display_greeting'])){
echo "Hello " . $name;
$_SESSION['display_greeting']=1;
}
?>
このメッセージを一度しか表示しないことをお勧めします。ログイン彼らの最初に、以下を行う必要があります。
に、ユーザーに対してデータベースにメッセージ
message_displayed
が表示されている場合、データベース内のmessage_displayed
は、偽の場合今度はそれ以降のログインがデータベースに設定されます。セッションでのみ行うと、クッキーを削除したり、別のマシンからログインすると、再び表示されることがあります。 編集:これは持続可能ではない考え直しに
。本当にあなたは通知システムが必要です。
このようにして、ユーザーテーブルの単一のデータベース列に頼るのではなく、1回だけ多くの通知を表示できます。また、通知に異なるトリガーを設定することもできます(例:それは一度表示され、その削除されるか、特定のアクション、たとえばフレンドリクエストの受け入れ/拒否が行われたときにのみ削除されます。
これはフレームワークの共通の機能です。アイデアはセッションにメッセージを格納し、表示された後にメッセージを削除することです。基本的な例は次のとおりです。
session_start()
$_SESSION['message'] = "thanks for logging in";
header('Location: index.php');
あなたのインデックスにあります。
if ($_SESSION['message'])
{
echo $_SESSION['message'];
unset($_SESSION['message'];
}
これらはフラッシュメッセージと呼ばれ、実装は既に存在します。チェックアウト:https://github.com/jimmiw/php-flash-message
こんにちは、ユーザーがログインしてからその時間をセッションに入れて、既存のレコードと時間を比較する時間を入力するlog_report(またはこれまでの名前)テーブルを作成しますそれ以外の場合はメッセージを表示しない。ページが読み込まれるたびに、そのセッション時間を常に比較します。もし存在していなければ、それ以外の場合は表示されません....
素晴らしいテクニック –
ありがとうAwais Qarni - 私は少し編集しました... –