- ベストアンサー
ユーザー認証でユーザーID毎にリンク先振り分ける方法
- ユーザーID毎にリンク先を振り分ける方法についての解説
- ユーザー認証を行い、リンク先をユーザーIDに応じて振り分ける方法を紹介
- ユーザーIDごとに異なるリンク先を設定するための方法を詳しく解説
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
初心者でもいいんです。とにかくプログラムというものは一気には出来上がりません。一段一段でいいですから上がって行きましょう。ベテランでも初心者でも一つ一つ作っていかなければならないのは同じですから。 ・session_open よくわからなければ、おまじないだと思って頭の方に入れて下さい。単純な作りのサイトであれば、全ページに入っていても不具合はないと思います。非常に簡単に言うと、この関数の実行以降、$_SESSION変数の読み書きができるようになります。ログインのチェックとは、認証後に例えば$_SESSION["login"]という変数にtrueを入れたとしたら、次のページのsession_open後に$_SESSION["login"]の値がtrueになっています。つまり値が引き継がれたわけです。もしtrueでなければログイン認証が行われてないと判断してエラーメッセージなりを出すようにするだけです。 ・メンバーの種類 補足のようにするのであれば、ユーザーファイルにデータを一つ足してあげないといけません。数字で扱うのが解りやすいので (1)幹事長等サークル幹部・・・1 (2)WEB兼広報担当者・・・2 (3)一般サークルメンバ・・・3 と数字を割り当てましょう。defineを使って define(USER_MANAGER,1); define(USER_WEBMASTER,2); define(USER_MEMBER,3); なんて感じにすると美しいでしょう。 そしてユーザーデータのファイルにデータを足します。 komochan,777,1(幹部) komo,888,2(広報) てな感じです。ちなみに末尾の,が無くても動くと思うんだけどなぁ。 で、このデータを読み込んで分解しているところを list($id,$pass,$page) = split(",", $p_data[$i]); てな感じにしてあげればいいんじゃないですか? それに伴ってheader関数は header("Location: http://~/user_".$page.".php"); となるかと思います。 以上で、少なくともヒントになったとは思いますが。
その他の回答 (1)
- wakame0729
- ベストアンサー率32% (245/765)
期待する動作としては、ログインの認証をした後、そのユーザー固有のページに飛ばすという感じですか?飛ばす先はユーザーの数分のHTMLファイル(ログイン認証すると)があると考えて良いでしょうか。 したら例えば公開ディレクトリに一つusr/のようなサブディレクトリを作成し、そこにuser_[USERID].phpのようなユーザー専用のページを置きます。 リンク先のスクリプトで修正する部分は if($p_flag > 0){ echo "<FONT COLOR='red'>おめでとうございます。あなたは正式に認証されました。</FONT>\n"; } else { ここですね。ここでメッセージを出す代わりに、header("Location: http://~/user_".$u_id.".php"); にリダイレクトをさせるような感じになるかと思います。 実際にはリダイレクト先のユーザーページでもログイン済みかどうかのチェックが必要だと思います。sessionを使えば簡単でしょうね。session_openをした後で$_SESSION["login"]等の変数をtrueにして、それをリダイレクト先でチェックするような構造になるかと思います。 ざっくり超簡単に考えただけなので、もう一工夫必要かも知れませんが。
補足
早速の回答ありがとうございました。 本当にご丁寧で、具体的なソースまで一部書いていただきまして大変感謝しております。 ただ、正直申し上げて、あまりに初心者すぎて、 わからない部分があります。 初心者がこのようなサイトを作ろうとしていること自体、あきれられてしまうかもしれませんが、どうか教えてください。 まず、sessionというものについてですが、 session_openというのはどういうことなのでしょうか?具体的にログイン済みかどうかのチェックをするスクリプトとはどのように定義すればいいのでしょうか…。ソースのサンプルのページなどがあれば教えてください。 あと、ユーザーの分類として考えているのが、 (1)幹事長等サークル幹部 (2)WEB兼広報担当者 (3)一般サークルメンバ なのですが、IDとパスワードは一人一人別のものにしたいのです。 具体的に言うと、 (1)に分類される人は9名 (2)に分類される人は4名 (3)に分類される人は59名 です。 この数を個々一つずつhtmlファイルを作るのは大変かと思うので、認証後に 幹事長の人が自分のIDとパスワードを入力→(1)のページ 副幹事長の人が自分のIDとパスワードを入力→(1)のページ 広報局長の人が自分のIDとパスワードを入力→(2)のページ 普通のメンバの人がIDとパスワードを入力→(3)のページ というように指定したいのです。
お礼
ありがとうございました。仰るとおりヒントとなりました。 あとは友達と試行錯誤して進めていきたいと思います。 また機会がありましたらよろしくお願いいたします。