2016-04-06 8 views
1

どのように私がSessionManagerを使用するはずかわかりません。このクラスを使用してログインを検証しようとしています。ユーザーフォームが表示されないようにするために、セッションを自分で使用する方法をまだ理解していないためです。私は、あらかじめ構築されたクラスが私に学ぶのを助けると思った。私がログイン情報私は、ユーザーのログインが笑...私はSessionManagerのを使用しようとしている仕組みではないページに行くたびに入力する必要があるだろう、現在ログインと事前作成されたSessionManagerクラスでのセッション使用

$user = new User($pdo); 
$user->getByUserName($_SERVER['username']); 
$user->logon($_SERVER['password']); 

if ($user->is_logged_on) 
{ 
    //... Do logged in user stuff 
} 
else 
    header('Location: /?error=Login%20Error%2E%20Please%20re%2Denter%20your%login%20information%2E'); 

:現在、私はこれを持っていますそのユーザーのログインを維持するために、私は実際にどのように理解できません。

すべてのページでセッションを開始するだけですか? SessionManagerクラスはセッションのチェックとは何か関係がありますか?それともそれを始めるためのものなのでしょうか?私はまだユーザー認証とPHPセッションを使用する方法を学んでいるので、これは初めてです。

は、私は、既存のセッションを確認するためにメソッドを追加する必要がありますか:

if (!isset($_SERVER['loginsubmit'])) 
{ 
    $user = new User($pdo); 
    $user->getByUserName($_SERVER['username']); 
    if ($user->logon($_SERVER['password'])) 
     SessionManager::sessionStart('mySessionName'); 
} 
if (!SessionManager::checkSession()) 
{ 
    //...display login form 
} 
else 
{ 
    //...display logged in user stuff 
} 

私は多分、私はそれを過剰に思っています...非常に困惑している...または多分これが最善ではなかったですセッションの使い方の例。

EDIT:はFYI、私は本当に私がセッションを作成し、それが存在するかどうかを確認する方法を知っている、方法をコーディングする方法を求めていないよ、私はちょうどセッションは、ユーザー認証に使用されているか理解していませんよ私は、あらかじめ作成された例を試して学びました。実際にセッションをコード化する方法については、終日PHPマニュアルを読むことができます。

+0

私は何を求めているのですか?*私は1つを追加する必要があります*。または、セッションの単純な存在は、リンクされたクラスの妥当性を検証すると、作成されたユーザーのログオンを示しますか? – Dexter

答えて

1

簡単な方法:ページで

//:

session_start(); 

if(!isset($_SESSION['isLogin']) && $_SESSION['isLogin'] != true){ 
    // redirect to login page 
} else { 

    // redirect to login page and 
    // set $_SESSION['isLogin'] = true when login verify 

} 

PS。あなたがあなたの質問で参照するライブラリと同じことが、安全なセッションを開始し、セッションを確認するライブラリ関数を使用します。

+0

したがって、ログインしたかどうかにかかわらず、セッションが存在する必要があります。次に、実際のログイン後にセッション変数(ユーザー名など)が追加されます。この権利があれば、各ユーザのやりとりの始めに 'SessionManager :: sessionStart( 'mySessionName');'を実行し、 '$ _SESSION ['username']'を個別に設定/チェックする必要があります。そしてログアウトするには、 '$ _SESSION ['username']'を削除します。 – Dexter

+0

また、両方の条件がログインスクリプトを指していることを意味しましたか?それとも、それはタイプミスですか? – Dexter

+0

@Dexter遅れて申し訳ありませんが、あなたは今、解決策があります。 >>あなたの最初のコメントのために、あなたの観察は本当に正しいです。 >> 2番目のコメントでは、セッションが存在するかどうかをチェックし、適切な値を持っているかどうかを確認する条件と同じです。 –

関連する問題