Lesson13「実践!ユーザー登録システムを作ってみよう!part3」

この練習は本入部生のみ閲覧できます。

本入部はこちら

学習概要

今回はユーザー登録機能の最後、DBへの登録処理を作っていきます!

補足

ログインが必要です

この練習でわからない所を質問する※部活外の質問はできません

ログインが必要です

この練習への質問一覧

ログインが必要です

Lesson13「実践!ユーザー登録システムを作ってみよう!part3」 の内容※SEO用のため読めません

前回に続いてユーザー登録画面のシステムを作っていきますた今ではバリデーションのロジックを作っていきましたので今回からはデータベースとテーブルを実際に作っていきますまたアプリケーションからまんぷを開いてスタートページを開くをクリックしてくださいサーバが起動されてない場合はサーバーを起動クリックすると自動的にスタートページが開きますスタートページを開くとこのような画面が表示されるかと思いますどうしたら上のツールからですね PHP 前アドミンを選択してくださいそうするとデータベースソフトの管理画面が表示されてきますまた新しくデータベースを作りたいので左側の卵から日本というものをクリックしてくださいそうするとデータベースの新規作成画面が表示されるのでそこに新しくデータベース名を入れてあげます岡田 PHP アンダーバーサンプル01というデータベース名に行きたいと思います今日は UTF 8- General CI というものにしてくださいこちらですね照合順序を選択したら最後作成ボタン押しますそうすると左側にデータベースが新しく作成されます下の欄からデータベースををクリックすると新しくテーブルを作成という画面が出てきますデータベース作りましたがまだテーブルは何も作られてないのでテーブルを作ります名前を言う猿という名前にしてから蒸すはよのままで大丈夫ですそのまま実行してくださいそして自らの名前 ID としますデータ型 int で大丈夫ですインデックス2プライマリーというものをつけてくださいプライマリーというのはこの空のに対しては重複することがない1位の値しか入りませんよという意味になりますそしてデータが挿入されるたびに自動的にパタヤ繰り上がっていく Auto increment てものチェックをつけます次に絡むの名前を言いメールにしますデータ型バーキャラにして下さいそして長さというのは文字数です入れられる文字数になるんですが小枝が255なので255文字にします他はそのままで大丈夫です次にパスワードを作ります名前パスというものにして同じくデータ型おばあキャラにして長さは255文字にしてください英語にログイン時間を保存したいのでログインタイムという名前にしますをしてデータ型はですねデートタイムというものにしますベッドタイムというのは日付と時間という形で情報を保存できるものになります日付などの情報を保存する際には文字列型でも保存できるんですがいいキャラの中**ですねデート time 型にした方がデータベース内の検索比較が楽になります保存を押すと絡むが作成されますテーブルが作成されましたただ与え何も入ってないのでテーブルをしてもまた家から出るという形になります上のタブメニューの構造というところをクリックするとテーブルの中に指定されているからの一覧が出てきますたけど作ったものですねお大事さに編集だとか行うこともできます俺でデータベースとテーブルの作成は完了になります最後にそのデータベースで情報を保存するロジックを作ります前回まで作った INDEX . PHP 他の PHP コードの中のですねこちらのヘッダーのところですねマイページへ飛ぶところです9彼女の行動をこの世に買い替えてみてください先ほどまでは if 文を一度で変えてましたけども誉田中学校を使って変えてくださいその中にデータベース情報を保存する処理を変えていきます流れとしては今までのバリデーションそれは全て終わった後に特に問題なければエラーメッセージ変数の中に何も入ってませんので空の状態になりますのでその状態でデータベースで登録する処理をして最後に減ったのメソッドを使ってマイページ飛ばしてあげるな形になります保存して画面を更新していましょう理沙にユーザー登録をした時に情報が保存されるかどうか確認をしたいのでまたまアンプを開いてですねスタートページをひらいてくださいそこの中のツールで PHP マートミニを開きます先ほど作ったデータベースを選択してテーブルを開きます今の状態がまだ何も中に入ってませんねこの状態を覚えておいてください藤さんにユーザー登録画面から情報を入力てみたいと思いますメールアドレスは部活のメールアドレスにしてパスワードはパスワードという形で半角で書いてありますこの状態で送信をしますそうすると問題なくマイページへ遷移しましたねりさにとろされたか PHP メアド未を開いて見ていましょう茶の表示というところをまたクリックしますそうするとこのようにですね先ほど入力された情報というのが保存されましたすでにですねこちらの方では先にデータを一つ登録してたので ID というのは2になってますけれども では ID は1になってるかと思いますこの中身を見ていきましょう追加したコードがこちらですねバリデーションチェックで特にエラーがなければ実行されるような形になります SP でデータベースソフトのあるサーバーへ接続するにはまずサーバーの設定をしていく必要がありますその設定がこちらになります接続するための設定ですね何をしているかと言うと一行目星山で変数を作ってます原作名前何でも構わないんですけれどもその変数に値を入れていますどういったもの入れてるかと言うと接続したいデータベースソフトが入っているサーバーの名前とデータベースの名前などが入っています最初にデータベースソフトの名前を指定します小倉 MySQL というソフトので MySQL と書きますその後にコロンをつけますそして database name =としてその後にデータベースの名前を入れてあげますコカ PHP アンダーバーサンプル01トリデータベースを作りましたのでお茶の名前が入っていますそして今度はセミコロンで区切ってあげてホスト=という形で変えてその後に実際にデータベースのソフトが入っているサーバー先を指定してあげますソフトが入ってるのは自分のパソコンになりますので自分のパソコンを指定する場合はローカルホストとしますそしてその後にまたセミコロンで区切って charset =としてデータベースの文字コードを指定してあげます基本的に文字コードは UTF 8としてくださいごいたデータベースの設定情報を DSN という変数の中に格納していますそして次にユーザーという名前の変数を作っていますその中にはルートというものを文字列を入れていますほらデータベースへ接続する際にひかれるユーザーネームですねそしてまた同じようにパスワードという変数名を作って同じくルートという文字列が出ていますこのユーザーパスワードという変数はデータベースへ接続する際に使うものですデフォルトの状態ではユーザー名パスワードはどちらもルートというものになっていますこちらですねユーザー名パスワード同じもの先を指定していますこれを指定することでデータベースへ接続できるような形になりますこのユーザー情報なんですがピーチ姫の民で変更することはできます管理画面の上のタブにあるユーザーという旅ですねこちらをクリックするとユーザーの登録編集することはできますデータベースソフトではユーザーというものをそれぞれ作ることでそのユーザーによってですね登録だけは行えるユーザーにしたり削除も行えるゆたりしたりという形で権限を割り振ることができますを飛ばし他のユーザーを追加するボタンを押しますソフトこういった形でユーザーを追加する画面が出てきますのでユーザーネームだとかを登録することができますモンストに関しては全てのホストをデフォルトのままで大丈夫ですそしてパスワードに関しては自分の任意のパスワードを入れることはできますもしくはパスワードを生成するとすると新しくパスワードを自動的に作ることはできます後から自分で作ったパスワードを使用したいと思いますそして下のグローバル特権というところでこの新しく作るユーザーに対してどういった権限を付与したいかと言うのを決めることができます例えばセレクトをチェックすれば検索だけ行うことができるユーザーになります insert をチェックすればデータを追加することはできるという形になりますこれ高田してユーザーに権限を割り振ることができますそのユーザーに対しての権限を決めたら実行を倒しますそうすると新しくユーザーが追加されましたユーザーの一覧にウェブルートユーザーが追加されてますねこのユーザーでデータベースに接続したい場合は先ほどのユーザーとパスワードのところをユーザー Web かつとしてパスワードをパスワードという形で設定したパスワードを入力してあげますをすることで新しく作ったユーザーでデータベース接続することはできます今回はデフォルトのルートで接続したいと思います次にオークションずという変数を新しく作っていますその中にあれという形で配列の形式でデータを保存していますこちらもデータベースの設定に関しての情報が入っているんですが基本的にこちらは決まりきったものでこちらをいつも使うようにしてください次にまた新しく変数を作ってその中に New pdo という形で PT オブジェクトというものを生成していますオブジェクトというのは前にはちょっとやりましたが物体という意味ですねというのは PHP からデータベースへ接続するためのものになりますのでそちらの接続するための物体を作っているという意味になります物体を作るときオブジェクトを生成する時にですね 作った変数をそれぞれ設定していますデータベースに接続するための設定だとかデータベース情報ですねユーザーパスワードといったものを渡してあげますこの情報を元にデータベースデートするためのオブジェクトが生成されますオブジェクト変数という箱に入れているという形になっていますそしてそのオブジェクトを元にですね SQL 文今までやりましたねデータベースで命令させる言語になります SQL 文というものを作っています幕エリートいう言い方もしますたけど作ったオブジェクトの中庭リペアというメソッドが入っていますこのメソッドがクエリを作るものになりますオブジェクトの中にあるメソッドを呼び出すためにはハイフン山形かっこを使って呼び出しますちょうど矢印の形になりますね本当矢印の後にプリペアというメソッド名を変えてそんな彼の格好で実際に SQL クエリーを変えていきます今回はテーブルの中にデータを保存情報を保存したいので insert into とやってユーザーずっと言うテーブルに登録させますとして登録する情報のカラムを指定しますそしてバリュずっとやって実際に登録させる情報をそこに入れていきます順番は先ほど指定したカラムの順番と同じにします2はここで変数など情報をそのまま入れてしまうんですが今回 placeholder というものを使っていますブレスオブザというのはコロンの後に名前を付けてあげてその名前に対して後々で情報を当て込んであげるというものになります虫食い状態にしてあげるということですねセキュリティ上の観点からも必ず placeholder というものを使うようにしましょう子可愛いメールとパスワードログインした時間というものを入れてあげますそしてその作った SQL 文を適当な名前の変数に入れてあげます本から stmt ステートメントの薬ですねという名前の変数名にしていますそして最後に酒を作った SQL を実行指定データベースで情報を渡します case ステートメントの中には BD オブジェクトがそのまま入っていますので矢印エクセキュートとすることでその中にある SQL を実行することはできますそしてかっこの中であれという形で配列にしてあげて先ほど虫食うにしたところに情報を入れてあげます E メールという名前にしてあげたところには返信メールを入れてあげますようにカンマで区切ってパスとしたところにはパスワードの変数を入れてあげますとしてログインタイムというところにはこちらになりますけれどもそこには日付を入れてあげますの日付を渡してあげたいのでそういう場合はデートというメソッドを使ってあげますデートというメソッドの中の括弧の中に実際の時間の表示の形式を指定してあげます今回はデータベースで保存される形式と合わせてこちゃの形式にしてあげます小文字 Y というのは嫌ですねむというのが好きになりますそして D というのが日付ですねそして HIS という形で時間分秒という形で表示させてあげますこの形式で出力された日時というものを実際にデータベースへ値として渡してあげるという形になっています西谷データベースの情報を見てみると同じような形で保存されてますねそしてデータベースで情報を保存したら最後に減ったのメスを使ってマイページへ飛ばしてあげるという形になっていますこのようにまずはデータベースへ接続するための設定情報を変数で設定してあげてその変数を使う扇子を使って pdo オブジェクトという PHP からデータベースへ接続するためのオブジェクト物体を作りますそしてそのオブジェクトを使ってクエリを作ってそのクエリーを最後実行してデータベースへ情報を送信しデータベースががその情報を受け取ってその情報を保存するという形の流れになっています今回は簡易的にちょっと変えてしまいましたけれども実際のユーザー登録というものには登録しようとしているメールアドレスが実際に既にもう登録されているかどうかというメールの重複チェックですねメールアドレス重複チェックというものがあったりだとかなんか今でもちょっとやりました3人と呼ばれるものですね入力された情報に変なプログラムが入っていた場合にそれを無効化するしょりそういった処理が実際には必要ないってきますからユーザー登録機能というものはこういった形で超えた流れで作られているということになりますもし余裕があればですねだけどちょっとお話ししました E メールの重複チェックだとか取れた処理を付け加えてみていただければと思いますはいいかがでしょうか PHP からデータベースへ接続するためには色々な方法がありますけれどもその一つ PTO というものを使いましたとこの PC を使っていただければ大丈夫です次回ログイン機能を作っていきますまた次回お会いしましょうよな