2011-08-13 16 views
2

ページに複数のセッション変数を送信するにはどうすればよいですか?ユーザーログインレベルに基づいて異なるページにリダイレクトするPHPログインページ

たとえば、データベースに保存されているユーザーのメールアドレスとパスワード、アクセスレベル(管理者、教師、生徒)を確認するlogin.phpページがあり、student.php、admin.php、faculty.php

student.php、admin.php、faculty.phpのページでは、以前のページから受け取ったユーザーレベルをチェックし、それに応じてアクセスを許可または拒否するセッションブロックを設定しました。

これまでのところうまくいきましたが、ユーザーレベル(管理者、ユーザー、教員)が特定のユーザーIDまたは電子メールを確認する必要があるユーザーごとに特定のページを作成したいと考えています私はそれらにケータリングされた特定のコンテンツを生成することができます。

私の質問に戻って、ページに複数の変数を送信する方法はありますか ??

さらに重要なのは、正しいトラックを考えていない場合は、これを行うより良い方法があるかどうかです。

多くのおかげで、

+1

あなたはすでにレベルをチェックしていますが、そのチェックの背後に別のページを置くのはなぜですか?それとも何か他に何かありますか?可能であれば、関連するコードの一部を表示するのに役立つかもしれません。 – Veger

+0

リダイレクトの承認だけでなく、別のページ自体でも確認することを忘れないでください。 – Gumbo

答えて

3

はい。 $_SESSIONを配列として宣言するだけです。

$_SESSION["uid"] //User ID (mail whatever) 
$_SESSION["access"] //Admin, student, teacher etc. 

Manual Reference

+0

私はそれを試みましたが、行き先のページで>私は彼らがそれを受け取っているとは思わない..何か間違っているのでなければ..ここにlogin.phpページのコード – ABI

+0

if(($ role == 'admin') &&($ステータス== 'アクティブ')){ \t \t \t //設定したユーザー名セッション変数 \t \t \t $ _SESSION [ '役割'] = $役割。 \t \t \t $ _SESSION ['fname'] = $ fname; \t \t \t $ _SESSION ['email'] = $ email; \t \t \t //保護されたページに移動します。 \t \t \t header( 'Location:securedpage。php '); \t \t \t}他 \t \t \t \t \t \t場合(($の役割== '学生')&&($ステータス== 'アクティブ')){ \t \t \t //設定したユーザー名セッション変数 \t \t \t $ _SESSION ['role'] = $ role; \t \t \t $ _SESSION ['fname'] = $ fname; \t \t \t $ _SESSION ['email'] = $ email; \t \t \t //保護されたページに移動します。 \t \t \t header( 'Location:usrsecuredpage.php'); \t \t \t – ABI

+0

'start_session()'が適切に使用されていることを確認してから、出力を送信してください。また、 '$ role'と' $ status'は新しいページでは定義されていないかもしれませんので、配列にも入れてください( '$ _SESSION ['role']')。最後の注意では、コメントには改行が効かないので、コメントでコードを表すために ''を使用するようにしてください:) –

0

すると、ユーザーの特定のページを作成するための最良の方法のセッションを使用しています?

セッション(安全なクッキーを使用した方がよい)は、要求しているユーザーの再識別にのみ適しています。

クライアント側には絶対にロールを与えないでください。アプリケーションは、ページを配信したりリクエストを実行する前に、常にユーザーの役割を確認する必要があります。クライアント側に値を渡すことを厳密に避け、より高い権限を得るために操作するか、ユーザーに別のユーザーのデータを表示または操作させることができます。

関連する問題