忍者ブログ
バナヤンの忍者風呂
忍者ブログのカスタマイズ、各種WEBツールのテストなど試行錯誤の日々。 VMLによる地図の作成を研究していましたが、一時中断して、今はPHPを勉強しているところです。
ニュース
この欄には、このブログの内容に関連するニュースを掲載する予定です。
お知らせ
この欄には管理人からのお知らせなどを掲載します。
[45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55]

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PHP テキストファイルの読み込み

PHPで会員登録システムを作りたい。そのために必要な知識をひとつひとつ確認していこうと思っています。今回のテーマは、「テキストファイルの読み込み」です。

ユーザー登録の際には、ユーザーidが重複しないユニークな値になるようにコントロールしなければなりません。登録しようとしたユーザーidが、すでに登録されているかチェックする必要があります。そのためには、メンバーリストのユーザーidを参照する必要があります。

メンバーリストは、データベースに格納されることが多いでしょうが、ここでは、勉強のためメンバーリストがテキストファイルになっていると考えたいと思います。情報セキュリティとしては、単純にテキストファイルを一般のディレクトリを置くことは問題があります。その問題は、横におき、テキストファイルの読み込みについて述べます。

ファイルの読み込みにはいくつかの方法があります。
ここではfile関数を使用した例を示します。

メンバーリストの1行ごとにユーザーデータが記録され、それぞれの項目はカンマ「,」で区切られているものとします。

[ソース]ユーザーリスト member.txtの例

userid,password,mail@address,class


[ソース]ユーザーリスト member.txtを読み込むPHPの記述例

$lines = file("member.txt");
foreach ($lines as $l) {
$items = explode(",", $l);
if($items[0] == $_POST["usrid"]){
$err_usrid = "<p style='color:red;'>登録済です。他の文字列に変更修正して下さい。</p>";
}
}


「member.txt」というファイルを開いて、配列$linesに収めます。
「foreach」で$linesを1つずつ見ていき、$lという変数に収めます。
$lは「member.txt」の1行に該当します。
$lをexplode関数で「,」で区切って 配列$itemsに収めます。
$items[0]は1番めの配列に格納されているデータ、ユーザーidに該当します。
これが送信された$_POST["usrid"]と比較して、等しい場合は「登録済」なので$err_usridにメッセージを代入します。
これが等しくない場合には、次の行に移動して同じことを最後の行に至るまで繰り返します。

この処理が終わると、ユーザーidが一致する場合には、$err_usridに値が入り、一致しない場合には$err_usridに値が入らないという状態になります。これを用いて、その後で処理を分岐することができます。

PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード
QRコード
忍者ブログ [PR]
Copyright (C) 2006 banayan ALL RIGHTS RESERVED.