![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
まずは以下のサイトをごらんいただきたいのですが、
http://www.komonet.ne.jp/~php/program/ninsho/cha …
このソースを改造してユーザーID毎でリンク先を振り分けたいと思っています。
私事で恐縮なのですが、実はサークルのメンバー用HPを立ち上げなくてはならず、
早急にログインプログラムを作成しなくてはなりませんが、なにぶん知識がありません。
どうかお力をお貸しいただけないでしょうか?
よろしくお願いいたします。
なお、ソースを作成なさった方には改造や教えて!gooなどに掲載して質問をするなどについて、一切の免責は得ております。
かなり困ってます。どうかよろしくお願いします。
No.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");
となるかと思います。
以上で、少なくともヒントになったとは思いますが。
ありがとうございました。仰るとおりヒントとなりました。
あとは友達と試行錯誤して進めていきたいと思います。
また機会がありましたらよろしくお願いいたします。
No.1
- 回答日時:
期待する動作としては、ログインの認証をした後、そのユーザー固有のページに飛ばすという感じですか?飛ばす先はユーザーの数分の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)のページ
というように指定したいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- バイク車検・修理・メンテナンス バイク 車検 名義変更 構造変更について。 親から一時抹消されていない、400cc車検切れのバイクを 1 2023/04/22 18:31
- UNIX・Linux Ubuntu on Xorgのログインについて 2 2023/08/10 15:16
- Gmail mailソフト[sylpheed」にgmailアドレスを設定する方法 1 2022/07/24 19:54
- その他(Microsoft Office) outlookで宛先が異なるメールを一括送信する方法 outlookで200人それぞれをtoに指定し 2 2023/08/03 21:24
- その他(悩み相談・人生相談) 私は○○○ち○○さんに下記のようなでっち上げの質問を投稿されて困っています。私はこのような質問したこ 3 2022/11/20 08:42
- Excel(エクセル) Application.Volatile利用(excel2003) 1 2023/02/06 10:11
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.phpと.incファイルの違いはな...
-
【file_exists】ファイルが存在...
-
他サーバーにあるファイルに書...
-
PHPの戻り値をWINDOWSバッチフ...
-
use と requireの違いは?
-
thtmlファイルとはどんなファイ...
-
あるサイトにあるcsvファイルを...
-
URLが.PHPってどういう...
-
winサーバーでphpを開こうとす...
-
php ホームページ初心者 入力確...
-
別のドメインのファイルをrequire
-
PHPからCronを編集したい
-
fputs()はfwrite()のエイリアス...
-
.phpファイルが、表示されない
-
既存PCサイトから携帯サイトを...
-
PHPのコマンドでファイルの新規...
-
サーバーにアップロードしたら...
-
[PHP] 標準の関数について
-
phpで別のファイルの変数に代入...
-
$ka = $_REQUEST[\\"FFF\\"];が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.phpと.incファイルの違いはな...
-
【file_exists】ファイルが存在...
-
.phpファイルが、表示されない
-
URLが.PHPってどういう...
-
サイトのphpソースコードを表示...
-
HTMLに埋め込んだPHPがうまく出...
-
PHP+MySQL SQL文を外部ファイル...
-
use と requireの違いは?
-
さくらレンタルサーバーでPHPが...
-
PHPファイルの中身が見られるこ...
-
fputs()はfwrite()のエイリアス...
-
プロパティファイルの読み込み...
-
コマンドプロンプト エラー
-
PHPを使ってのサーバ上ファイル...
-
htmlspecialcharsが機能してい...
-
phpmailerで送れない添付ファイ...
-
別のドメインのファイルをrequire
-
[PHP+XML]PHPで動的に出力す...
-
phpinfoの内容が見れない
-
CakePHP2のCronでのShellを使う...
おすすめ情報