質問: ユーザー認証でユーザーid毎にリンク先振り分ける方法 まずは以下のサイトをごらんいただきたいのですが、 http://www.komonet.ne.jp/~php/program/ninsho/chap1.htm このソースを改造してユーザーid毎でリンク先を振り分けたいと思っています。 私事で恐縮なのですが、実はサークルのメンバー用hpを立ち上げなくてはならず、 早急にログインプログラムを作成しなくてはなりませんが、なにぶん知識がありません。 どうかお力をお貸しいただけないでしょうか? よろしくお願いいたします。 なお、ソースを作成なさった方には改造や教えて!gooなどに掲載して質問をするなどについて、一切の免責は得ております。 かなり困ってます。どうかよろしくお願いします。
回答: 初心者でもいいんです。とにかくプログラムというものは一気には出来上がりません。一段一段でいいですから上がって行きましょう。ベテランでも初心者でも一つ一つ作っていかなければならないのは同じですから。 ・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"); となるかと思います。 以上で、少なくともヒントになったとは思いますが。