0

ユーザーがログインした後、後でアプリケーション内で使用できるようにuserIdを保存できるようにしたいと思います。私がユーザー名を取得するアプリケーション内の唯一の場所は、ログインフォームからログインコントローラーを介してです。ただし、私のアプリケーションのその構造は、ログインコントローラーからマスターコントローラーに渡されるのはHTMLだけであるということです。

もちろん、マスターコントローラーに返されるHTML内の非表示フィールドにuserIdを含めることもできますが、それはあまりにもハックなようです。

それで、他のクラス/名前空間/関数からアクセスできるように値(この場合はユーザー名)を保存する方法はありますか?「グローバル」について少し読んだことがありますが、アプリケーションでそれを機能させることができませんでした。

LoginController.phpから:

if ($loginView->TriedToLogin()){
    $loginUsername = $loginView->GetUserName();   //Retrieved from form
    $loginPassword = $loginView->GetPassword();
}
4

3 に答える 3

1

ログイン時に、ユーザートークンをセッションに保存する必要があります。

参照:http ://au1.php.net/manual/en/features.sessions.php

ログイン時にユーザーを保存します。

$_SESSION['user_id'] = 32; // fetch from your user provider

次に、セッションを利用してログインステータスを確認し、必要に応じて詳細を取得するクラス/関数を記述できます。

そのようです:

function getUserId()
{
    return isset($_SESSION['user_id']) ? $_SESSION['user_id'] : false;
}

function isLoggedIn()
{
    return isset($_SESSION['user_id']) && is_numeric($_SESSION['user_id']);
}

次に、アプリケーションの任意の場所で使用します。

echo isLoggedIn() ? getUserId() : 'Anonymous';

また、MVCフレームワークを構築する方法の詳細については、 「 Symfony2コンポーネントの上に独自のフレームワークを作成する... 」を確認してください。

于 2012-10-21T20:33:37.297 に答える
0

セッションはどうですか?

PHPでのセッションサポートは、後続のアクセス間で特定のデータを保持する方法で構成されています。

http://de2.php.net/manual/en/features.sessions.php

于 2012-10-21T20:22:02.077 に答える
0

保存したいユーザー名だけの場合は、を使用し$_SESSION[]ます。

(共有)ホスト環境では最も安全ではありませんがsession_start();、保存されたデータを使用してページで最初に呼び出すのはとても簡単です。

于 2012-10-21T20:24:15.970 に答える