DreamweaverでPHP 会員専用サイト4

前々回の訂正とお詫び

会員登録のデータ入力の前に、前々回の訂正をしたいと思います。前々回の『会員登録用のページのレコードセットの設定』の③で各フィールドを該当する箇所にドラッグと説明しましたが、これは、データ訂正用のページを作成するための方法でした。お詫びします。せっかく作成したので、この『mm_input.php』を『mm_update.php』の名前で別名保存します。元の『mm_input.php』ページの各フィールドを訂正します。

1行2列目のフィールド内をクリックし、プロパティの『初期値』を削除します。残りのフィールドも同様に訂正します。

会員登録のページのデータ入力

それでは、http://winroad.ever.jp/mm_input.phpをクリックして、『mm_input.php』のファイルを開きます。

①データを入力して、『登録』をクリックします。『パスワード』の入力文字を黒丸文字にするためには、プロパティのタイプのパスワードを選択します。尚、ついでに『登録』ボタンの横に、『リセット』ボタンも作成しました。

②登録できたら、『mm_input_ok.php』のページへ移動します。

③続いて、http://winroad.ever.jp/mm_login.phpのページから、『ログイン』できるか確認してみましょう。

④既に登録してある『鈴木五郎』のメールアドレス『suzuki@winroad.jp』、とパスワード『suzuki』でアクセスしてみます。

②メールアドレスとパスワードが正しければ、トップページへ移動します。

ページへのアクセス制限

さて、会員登録はできましたが、このままでは、アドレスを直接打ち込めば、誰でもトップページへ行くことができます。登録された会員だけがトップページへ移動することができるようにするためには、『index.php』のページにアクセス制限をかけなければなりません。

①『index.php』のページを開き、『サーバービヘイビア』→『+』→『ユーザー認証』→『ページへのアクセス制限』とクリックします。

②『ページへのアクセス制限』ダイアログで『制限』を『ユーザー名とパスワード』、『アクセス拒否後』の表示ページを『mm_login.php』に指定して、『OK』をクリックします。これで、トップページへアクセスしてきた人を強制的に、ログインページへ移動させ、『メールアドレス』と『パスワード』が合致した人のみトップページを開くことができるようになります。これはブラウザが閉じるまで有効です。

③今まで作成したページ(『mm_login.php』以外のページ)にも同様にアクセス制限をかけます。これで会員以外の人はhttp://winroad.ever.jpのサイトへアクセスする事ができなくなります。尚、会員登録すればアクセスできるようにするため、『mm_login.php』のページの下に会員登録用のリンクを張っておきます。

タグ

DreamweaverでPHP 会員専用サイトの作成3

データ入力前の下準備

それでは、実際にデータを入力してみる前に、移動先のファイルを作成しておきましょう。

①二重登録防止の案内ページを作成します。『mm_overlapping.php』のファイルを開き、以下の内容を記載して保存しましょう。尚、ユーザー認証ページはまだ作成していませんので、リンクはまだ設定しません。

②『mm_input_ok.php』ファイルを開き、以下の内容を記載して保存します。トップページもまだ作成していませんので、同じくリンクは設定しません。

③『mm_input.ng.php』のファイルを開き、以下の内容を記載したら、『登録ページへ戻る』の文字をドラッグして選択し、プロパティのリンクの横のアイコンを『mm_input.php』へドラッグすると、mm_input.phpファイルへのリンクが自動的に記述されます。尚、リンクの横の黒三角をクリックして、実際のリンク先のファイルを選択することも出来ます。

④ついでに会員専用サイトのトップページも作成しておきましょう。以下の内容で新規ファイルを作成したら、『index.php』で保存してください。

ユーザー認証ページの作成

それでは、ログイン用のページを作成します。『mm_login.php』の名前でファイルを保存してください。

①フォームを作成し、各テキストフィールド名は、『mm_mail』『mm_passw』にします。ここまでの工程は、何度もやってきていますので、飛ばします。

②ログインが失敗したときのページも作成しておきます。『mm_login_err.php』で新規作成し、ログインページへのリンクを張っておきます。

②『mm_login.php』のページへ戻り、『サーバービヘイビア』→『+』→『ユーザー認証』→『ログイン』とクリックします。

③『入力フォームタイプ』『ユーザー名フィールド』『パスワードフィールド』はDreamweaverが自動的に選択していますので、確認するだけで大丈夫です。『テストに使用する接続先』『テーブル名』を選択し、『ユーザー名列』は『mm_mail』、『パスワード列』は『mm_passw』を選択します。『ログイン成功時の表示ページ』と『ログイン失敗時の表示ページ』を指定します。アクセスの制限は、『ユーザー名、パスワード、およびアクセスレベル』を選択して、『レベルの取得先』『mm_class』にします。アクセスレベルを設定する理由は、後々アクセスレベルによって表示できるページを振り分けることができるようにするためです。しばらくは使いません。

④サーバービヘイビアに『ログイン』が作成されています。コードを確認すると、ログイン用のPHPが自動生成されています。

⑤最後に『mm_overlapping.php』のページの『ユーザー認証へ戻る』のリンクを『mm_login.php』へ、『mm_input_ok.php』の『トップページへ戻る』のリンクを『mm_index.php』へ張ってください。

本日はここまでにします。次回は『実際にデータ入力のテストとアクセス制限』をしてみたいと思います。

タグ

DreamweaverでPHP 会員専用サイトの作成2

会員登録用のページのレコードセットの設定

それでは、作成した会員登録用のページに実際にデータを登録できるように設定しましょう。

①『サーバービヘイビア』→『+』→『レコードセット』とクリックします。.

②レコードセットの名前を決め、接続名とテーブル名(members)を選択します。列は『すべて』を選択し、『フィルター』『ソート』は必要ありませんので、『なし』のまま『OK』をクリックします。

バインディングのレコードセットを開き、各フィールドを該当する箇所にドラッグします。

訂正:新規登録ですので、フィールドの中身は全て空白で、登録者に記載して貰います。各フィールドにデータ初期値を反映させるのは、データ訂正の時に使用します。

④『サーバービヘイビア』→『+』→『レコードセットの挿入』をクリックします。

⑤『値送信元』『接続』『テーブルの挿入』をそれぞれ選択し、自動的に割り振られている列が正しいかどうか確認します。更新後の移動先(mm_input_ok.php)を入力して、『OK』ボタンをクリックします。

重複データの確認

二重登録を防止するために『新規ユーザー名の確認』のサーバービヘイビアを指定します。

①『サーバービヘイビア』→『+』→『ユーザー認証』→『新規ユーザー名を確認』をクリックします。

②同姓同名でも登録できるように、又、ニックネームでも登録できるように、メールアドレスで重複の確認をします。『ユーザー名フィールド』は『mm_name』ではなくて、『mm_mail』にします。『既存ユーザー名入力時の表示ページ』は、『mm_overlapping.php』を入力し、『OK』をクリックします。

③『サーバービヘイビア』に『レコードの挿入』と『新規ユーザー名を確認』が作成されています。

次回は『データ入力前の下準備とユーザー認証ページの作成』です。本日はここまでにします。

タグ

DreamweaverでPHP 会員専用サイトの作成

ログイン用データベースの作成

単純にページにログインできないように暗証番号を入力させるためだけなら、『.htaccess』ファイルでBasic認証をかける方法が簡単ですが、アクセスしてきた人によって、挙動を変える(人によってアクセスできるページを変えたり、いろんな情報を保持したりする)には、データベースによってアクセスしてきた人を判別する方法が必要です。

phpMyAdminを開き、前回作成したデータベースに新しいテーブルを作成したいと思います。

①名前に『members』、フィールド数を『6』と入力します。

②フィールド名を『ID』『mm_name』『mm_class』『mm_passw』『mm_mail』『mm_note』にして、『ID』の種別を『INT』、『mm_class』の種別を『TINYINT』、『mm_note』を『TEXT』、それ以外を『VARCHAR』にします。『mm_note』以外を『not_null』にして、『ID』をauto_increment』で『PRIMARY KEY』に設定します。

会員登録ページの作成

それでは、Dreamweaverで先にいくつかファイルを作成しておきましょう。いつもと同じように、中身は空で構いません。まず、会員登録用のページ(mm_input.php)、二重登録防止のページ(mm_ovrlapping.php)、登録が成功したときに表示するページ(mm_input_ok.php)、登録が失敗したときに表示するページ(mm_input_ng.php)を作成します。

①作成した会員登録用のページ(mm_input.php)を開き、フォームタブのフォームをクリックし、フォームを作成します。

②一般タブのテーブルをクリックし、5行2列のテーブルをフォームの中に作成します。

③項目名を入力し、5行目を2列とも選択。プロパティの『選択したセルを結合』ボタンをクリックします。

④結合した5行目をクリックし、フォームタブの『ボタン』アイコンをクリックします。出てきたダイアログボックスには何も入力せずに『OK』をクリックします。

⑤作成された『送信ボタン』をクリックして、プロパティの『値』を『送信』から『登録』に変更します。

⑥1行2列目をクリックして、フォームタブのテキストフィールドを入力します。

⑦IDをデータベーステーブルのフィールド名と同じにして、『OK』をクリックします。

⑧同様に残りのテキストフィールドとテキストエリアを入力します。尚、4行目の『備考』は味気ないので、『自己紹介』に変更しました。

これで一応、会員登録用のフォームは作成できました。データベーステーブルで作成したフィールドのうち、『ID』と『mm_class』の入力箇所がありませんが、『ID』は自動的に連番が入力されますし、『mm_class』も初期値を入力しておきましたので、設定した初期値が入力されますので、問題はありません。

次回は『会員登録用のページのレコードセットの設定』です。

タグ

CodeIgniterの導入

PHPフレームワークの本命

PHPフレームワークと言えば、「CakePHP」、「symfony」、「Zend Framework」が3大フレームワークとして有名ですが、ここのところ急激にシェアをのばしてきているのが、CodeIgniter(コードイグナイタ)です。

今まで社内のWeb業務管理システムは純粋にPHPのみで作成してきましたが、機能を追加する度にあちこち手直しをしなければならず、継ぎ接ぎだらけになってきているような気がします。

そこで作業効率を上げるため、心機一転フレームワークを導入しようと考え、どのフレームワークがいいのか色々検討してみました。

上記の3大フレームワークは私にとって、どれも一長一短が有り、フレームワークの導入をあきらめかけてたときに、CodeIgniterの存在を知りました。

私が、CodeIgneiterの導入を決めた理由は、軽量、高速、高いパフォーマンスを持っている点。又、フレームワークの導入は、新しい言語を一から覚えるのと等しいほどの労力を要しますが、学習コストが低く、初心者にも優しいフレームワークであるという点です。

CodeIgniterも一通り使えるようになったらこのサイトで紹介していきたいと思います。

CodeIgniterのインストール

CodeIgniterの日本語ユーザーズガイドページにはほとんどの事が網羅されているみたいなので、これからCodeIgniterを勉強するにはかなりお世話になるページになると思います。

http://codeigniter.jp/user_guide_ja/toc.html

①尚、上記日本語ユーザーズガイドのダウンロードページからダウンロードしようとしたら、最新版は本家サイトへ飛んでしまいます。日本語版のインストールはhttp://codeigniter.jp/からダウンロードをクリックします。

②下の方にあるリリースファイル一覧から、最新のパッケージをクリック。

③「保存」ボタンをクリックして、zipファイルをローカルフォルダにダウンロードします。

④解凍したフォルダごと、ローカルの初期フォルダにコピーし、FFFTPでレンタルサーバーにアップロードします。

⑤application/config/config.php ファイルをテキストエディタで開き、ベースURLを記入します。暗号化、もしくはセッションを利用する際には暗号鍵を記入します。

application/config/database.php ファイルをテキストエディタで開き、データベースの設定を記入します。

以上でCodeIgniterのインストールは終わりです。結構簡単だと思います。だいぶ先になるかもしれませんが、CodeIgniterの使い方を初心者でも分かり易いように作成していきたいと思います。

タグ

2011年5月26日 | コメント/トラックバック(0) |

カテゴリー:CodedIgniter

DreamweaverでPHP 検索ページ作成3

検索窓と検索結果を同じページに表示

今回は、データの検索窓と検索結果を同じページ内に配置する方法を書いていきたいと思います。

①まず、以前作成した検索用のページ(search.php)をコピーして、search_and_result.phpという名前のページを作成します。

②作成したページの検索窓テーブルの下にカーソルを移動して、一般タブのテーブルをクリックします。2行4列のテーブルを作成したら、1行目に項目名を記入します。

③サーバービヘイビアのレコードセットをクリックします。

④名前(任意)を決め、接続先とテーブルを選択します。フィルターを「Title」にし、検索条件を曖昧検索の「を含む」にします。比較方法を今回はフォーム変数にして、比較対象を「Title」にします。「OK」ボタンをクリックします。

⑤バインディングを開き、レコードセットの各項目を該当の箇所へドラッグします。

⑥タグセレクターの「form#form1」をクリックし、「プロパティインスペクタ」のアクションのファイル名を削除して、メソッドを「GET」にします。

③次に前回と同じようにレコードセットナビゲーションバーを挿入します。検索結果表示用テーブルの下にカーソルを移動し、データタブのレコードセットナビゲーションバーをクリックします。

④レコードセットを選択。表示方法を今回はイメージにしてみます。「OK」ボタンをクリックします。

⑤次にレコードセットナビゲーションステータスをクリックします。ダイアログボックスが表示されたら「OK」をクリックします。

⑥検索結果テーブルの2行目を選択し、サーバービヘイビアのリピート領域をクリックします。

⑦レコードセットを選択し、表示件数を入力(今回は5にします)。「OK」ボタンをクリックします。

⑧これで一応完成です。それでは、実際に試してみましょう。『愛』と入力して検索ボタンをクリックして、検索結果が表示されたらOKです。

⑨尚、前回は指摘しなかったのですが、この検索結果のページには重大な欠陥があります。検索窓に何も入力しないで、検索ボタンを押してみましょう。するとすべてのデータが表示されます。わざとそうしたいのなら別ですが、すべてのデータが表示されるというのは、まずいので多少の手直しをします。

NULL値検索の修正

①サーバービヘイビアのレコードセットをクリックして、レコードセットダイアログボックスが表示されたら、「詳細設定」をクリックします。

②SQL文を多少いじりますが、そんなに難しくはありませんので、覚えてください。

③3行目の『WHERE Title LIKE %colname%』のあとに『AND colname is not NULL』と入力して、『OK』をクリックします。

④これで、何も検索値を入力していないのに検索結果が返ってくることはなくなりました。只、値が何もないのに検索結果のテーブルが表示されるのは、見た目が悪いので、検索結果が何もないときは検索結果テーブルは表示されないようにしましょう。

⑤タグセレクターでテーブル全体を選択し、サーバービヘイビアの領域の表示→レコードセットが空でない場合に表示とクリックします。出てきたダイアログボックスのレコードセットを選択し、「OK」をクリックします。

これで、検索結果が空の場合はテーブルが表示されないようになります。以上、本日はここまでにします。

タグ

2011年5月25日 | コメント/トラックバック(5) |

カテゴリー:Dreamweaver 簡単PHP

Codeigniter

タグ

2011年5月25日 | コメント/トラックバック(0) |

カテゴリー:CodedIgniter

DreamweaverでPHP 検索ページ作成2

前回の続きを書きたいと思います。前回は、検索結果ページのリピートを作成したところまでです。

ナビゲーションの挿入

検索した場合、検索結果の数が少ないときは問題ないのですが、検索結果がリピート回数より多い場合は、表示されません。そのため検索結果の前後を表示するためのナビゲーションを挿入する必要があります。

①テーブルの下にカーソルを移動して、「データ」タブの「レコードセットナビゲーションバー」を選択します。

②ナビゲーションバーが表示されます。続いて、ナビゲーションバーの下にカーソルを移動して、「レコードセットナビゲーションステータス」をクリックします。

③レコードセットを確認して、「OK」ボタンをクリックします。

④これで、ナビゲーションバーとナビゲーションステータスが完成しました。

ブラウザで確認

それでは実際にブラウザで確認してみましょう。

①http://winroad.ever.jp/DVD_search.phpのページを開き、「愛」と検索してみましょう。

②『愛』という文字を含んだタイトルの映画が全6件のうち5件が表示されています。「ナビゲーションバー」の「次へ」をクリックすると、残りの検索結果が表示されます。尚、検索の都合上、前回の設定(検索表示数を10から5に変更)を一部変更しています。

本日はここまでにします。

タグ

2011年5月24日 | コメント/トラックバック(1) |

カテゴリー:Dreamweaver 簡単PHP

Dreamweaver CS5.5発売

Dreamweaver CS5.5が発売されました

新しもの好きの私は、早速渋谷のビックカメラで購入してきました。今日から『Dreamweaverで簡単PHPサイト作成』は、CS5.5で作成していきたいと思います。

尚、同じ名前のカテゴリが増えたので、カテゴリも作り直しました。Dreameweaverの新機能もそのうち紹介したいと思います。

検索用のページ作成

今日は、検索のページを作成していきたいと思います。検索のページは検索用のページと検索結果のページを別々に作る方法と検索と検索結果を同じページに表示する方法があります。それぞれ説明していきたいと思います。

①それでは、検索ページ(DVD_search.php)と検索結果ページ(DVD_search_result.php)を先に作っておきましょう。いつもと同じように中身は空でかまいません。

②まず、DVD_search.phpのファイルを開き、フォームタブのフォームをクリックして、フォームを作成します。

③作成されたフォームの中をクリックし、一般タブのテーブルをクリック。テーブルの行と列を入力、ヘッダーを選択し、「OK」をクリックします。

④作成されたテーブルの1行目に表題を入力、2行目にカーソルを移動。フォームタブのテキストフィールドをクリックし、出てきたダイアログのIDに【Title】と入力し、「OK」をクリックします。

⑤作成されたテキストフィールドの右にカーソルを移動し、フォームタブの「ボタン」をクリックします。出てきたダイアログの「OK」をクリックします。

⑥検索ページがわかりやすいように「送信」ボタンをクリックし、プロパティの「値」を【検索】に変更しておきましょう。

⑦フォーム全体をタグセレクタを使って選択し、アクションに検索結果を表示するページ(DVD_serach_result.php)を指定します。メソッドは「POST」でも「GET」でも可能ですが、今回は「GET」で送信します。

⑧次に、検索結果のページを作成します。検索結果のページ(DVD_search_result.php)を開き、「バインディング」パネルの「+」をクリックして「レコードセット(クエリー)」を選択します。

⑨「名前」を入力し、「接続」「テーブル」を選択します。「フィルター」は検索条件の【Title】を指定し、曖昧検索の【を含む】を選択します。ソートは検索後にわかりやすいように(複数検索した場合見つけやすいように)自分で決めてください。「OK」をクリックします。

⑨レコードセットが作成されたら、データを表示するためのテーブルを作成します。「一般」タブの「テーブル」をクリックし、2行4列でテーブルを作成します。

⑩「バインディング」パネルから、テキストを表示する項目をページにドラッグします。

⑪2行目をすべて選択し、「サーバービヘイビア」タブの「+」をクリックし、リピート領域を選択します。

⑫レコードセットを選択し、表示回数を入力。「OK」をクリックします。

現状では、レコードセットは一つしかありませんので、別段選択する必要はありませんが、複雑なページを作成する場合、1ページにレコードセットが3つ、4つという可能性もありますので、レコードセット名はわかりやすい名前にしておいた方がいいです。

⑬2行目の上のほうに「リピート」の文字が表示されているはずです。

途中ですが、今日は時間がないのでここまでにします。続きはまた後日。

急いで書いたので、間違えている箇所があるかもしれません。後日見直します。悪しからず。

タグ

2011年5月21日 | コメント/トラックバック(0) |

カテゴリー:Dreamweaver 簡単PHP

Dreamweaverで簡単PHPサイト作成(6)

データ更新(訂正)用のページ作成

今日は、データ更新用のページを作成したいと思います。更新用のフォームを一から作成するのは面倒ですので、DVD_insert.phpのページを使い回ししたいと思います。

①DVD_inseri.phpのページを開いて、ファイル→別名で保存をクリックします。

②DVD_update.phpの名前で保存します。

③保存したら、フォームの下にあるhidden(非表示フィールド)を削除します。

④更新するデータを紐付けするためにID用の行を作成します。カーソルを日付フィールドに移動して、右クリック→テーブル→行の挿入とクリックしていきます。

⑤挿入した1行1列目に表題をIDと入力し、1行2列目にカーソルを移動します。フォームタブの非表示フィールドボタンをクリックします。

⑥非表示フィールドが挿入されたら非表示フィールド名を「ID」に変更します。

⑦サーバービヘイビアのレコードの更新をクリックします。

⑧データベースのフィールド名と入力フォームのフィールド名を全く同じにしておけば、対応する値はDreamweaverが自動的に割り当てます。更新後の移動先(DVD_info.php)を入力して、「OK」ボタンをクリックします。

⑨次に、バインディングのレコードセット(クエリー)をクリックします。

⑩「フィルター」で【ID】、条件を【=(完全一致)】を選択します。比較方法は【URLパラメーター】で比較対象は【ID】とします。「OK」ボタンをクリックします。

⑪作成されたレコードセットの【ID】を1行2列目にドラッグすると、{Recordset1.ID}というコマンドが作成されます。

⑫続けてID以外の箇所もそれぞれドラッグします。

⑬ついでにボタンの名前も変更しておきましょう。送信ボタンをクリックして、プロパティの【送信】の文字を【更新】に変更しましょう。

⑭さて、これで完成でしょうか。いいえ大事なことが抜けています。最初にドラッグした⑪の{Recordset1.ID}は表示のためのコマンドです。肝心のデータ(ID)を送信するためには、hiddenフィールドの中に入れなければなりません。

⑮なぜ、IDをテキストフィールドではなくhiddenフィールドにしたのかわかりますでしょうか。IDをテキストフィールドにしておくと、間違ってIDを書き換えてしまう可能性があります。すると、全く別のデータが誤って更新される可能性があるのです。そのためIDはhiddenフィールドにして送信するのが基本です。

⑯それでは、DVD_update.phpを実際に使用するための設定をしましょう。まず、DVD_list.phpのページに削除と同じように更新用のリンクを作成します。

⑰次も削除と同じように、【<a href=”DVD_update.php】の後に、【?ID=】を入力して、レコードセットのIDをドラッグしてきます。

⑱これで、一応完成です。それでは実際に使用してみましょう。DVD_info.phpのページで訂正するデータのIDをクリックします。

⑲更新のリンクをクリックします。

⑳訂正して「更新」ボタンをクリックします。

㉑修正されているのが確認できると思います。

以上で本日は終わります。ご苦労様でした。

タグ

2011年5月18日 | コメント/トラックバック(1) |

カテゴリー:Dreamweaver 簡単PHP

このページの先頭へ