dポイントプレゼントキャンペーン実施中!

まずは以下のサイトをごらんいただきたいのですが、

http://www.komonet.ne.jp/~php/program/ninsho/cha …

このソースを改造してユーザーID毎でリンク先を振り分けたいと思っています。
私事で恐縮なのですが、実はサークルのメンバー用HPを立ち上げなくてはならず、
早急にログインプログラムを作成しなくてはなりませんが、なにぶん知識がありません。

どうかお力をお貸しいただけないでしょうか?
よろしくお願いいたします。

なお、ソースを作成なさった方には改造や教えて!gooなどに掲載して質問をするなどについて、一切の免責は得ております。

かなり困ってます。どうかよろしくお願いします。

A 回答 (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");
となるかと思います。

以上で、少なくともヒントになったとは思いますが。
    • good
    • 0
この回答へのお礼

ありがとうございました。仰るとおりヒントとなりました。
あとは友達と試行錯誤して進めていきたいと思います。
また機会がありましたらよろしくお願いいたします。

お礼日時:2005/06/09 01:42

期待する動作としては、ログインの認証をした後、そのユーザー固有のページに飛ばすという感じですか?飛ばす先はユーザーの数分の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)のページ
というように指定したいのです。

補足日時:2005/06/05 01:51
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!