ユーザー登録機能の実装続き
こんにちは。
文系出身でも・未経験でも・プロのプログラマーを目指すブログ
略して「プロプロ」
あんまん(@aaii0123)です。
10月に入ったというのに、日中はまだまだ暑い日が続いていますね!
夜はだいぶ涼しくなって過ごしやすくなりましたが、
日中はPCを打ってると、PCの熱で手汗がやばいです笑
さて、今日の進捗です!
今日取り組んだこと
・ユーザー登録機能の実装続き
・ユーザー登録画面の見た目調整(途中)
です・・!
なんとかコードは書き終わって、見た目の調整に入りました。
ユーザー登録機能の実装続き
昨日に続いて、PHPのユーザー登録機能の実装に取り組み、
なんとか、機能のコードは完成しました。
(エラーのチェックはこれから)
昨日に続いて、メモをとりながらの勉強法。
本日追加したメモはこんな感じです。(赤字が追加)
ユーザー登録機能実装の流れ
ログを取る指定
エラーメッセージの指定(define(定数)で指定)
エラーメッセージ格納用の配列
関数
バリデーション
未入力
Email形式チェック
Email 重複チェック
$emailキーを入れる
データベースに接続する (try catch)
try
データベース接続関数を呼び出す
SQL文作成
クエリ作成
クエリ実行
クエリ結果の値を取得 (実行したクエリからfetchメソッドを使って取り出す)$result = $stmt->fetch(PDO::FETCH_ASSOC)
catch
エラーログにエラーメッセージを表示させる
エラー変数にエラーメッセージを格納
同値チェック
最小文字数チェック
mb_strlen関数を使って$strの文字数をカウントする
最大文字数チェック
半角チェック
DB接続関数
DBに接続する準備
(DB(’mysql:dbname=〇〇;host=localhost;charset=utf8’)、DBのユーザー名、DBのパスワードを指定)
オプションを配列形式で指定する
PDOオブジェクトを生成してそのオブシェクトを返す
クエリーポスト関数
プリペアードメソッドでクエリを作成する
Executeでクエリを実行
POST送信されているか
POST送信されていれば変数にユーザー情報を代入
未入力チェック
エラーメッセージが空であればバリデーションチェック
形式チェック
最大文字数チェック
最小文字数チェック
パスワード
半角英数字チェック
最大文字数チェック
最小文字数チェック
パスワードとパスワード再入力があっているか
DB接続してDBに情報を格納(try catch)
マイページへ遷移
昨日の段階で、けっこう進められていたので
今日の分は少なくすみました^^
そして、出来上がった画面がこちら
(なんどもトライしているのですが、なぜかスクリーンショットが保存できず、
PC画面の撮影という残念な感じ・・なんとかしたい苦笑)
圧倒的にダサい・・
本当に最低限のhtmlしか書いていないので、
非常に残念な見た目です^^;
この段階で見た目に時間をかけるよりゴリゴリ機能の実装を進めた方がいいのではとも思いつつ、
これだとさすがにあんまりでモチベーションが上がらない(笑)
ので、続いてCSSに着手しました。
ユーザー登録画面の見た目調整(途中)
実際に着手してみてわかったのですが、
けっこうCSS忘れてる・・
こうなることが怖くて、『HTML/CSSモダンコーディング』の写経を
PHPの勉強と並行してずっとしてきたはずだったのですが、
それでも、自分でいざやってみようと思うと頭真っ白・・
やっていくうちに思い出すだろうとは思うのですが、結構ショックでした。
先ほども書いた通り、今はあくまでもPHPのアウトプットがメインなので
CSSにかける時間は決めておいて時間オーバーになるまでは
頑張って思い出そうと思います。
ググったこと
・PDOオブジェクトのexecuteメソッド
プリペアードステートメントを実行するもの。
外部から来る入力値をSQLに使う場合などは、SQLインジェクションのリスクがあるため、まずprepareでSQLをセットして、executeで実行をする2段構えの構造で実装するのがいい。
2つもメソッドを呼び出すのが面倒だという場合は、query関数に2つパラメータを渡すことで簡単に使うこともできる。
参考URL:prepareとexecuteで操作 - phpspot
まとめ
HTML/CSSは今後特に使いこなしていきたいと思っていたので、
忘れてしまっていたことに正直ショックを受けましたが
忘れたならまた思い出せばいい!ということで・・笑
明日は、CSSは MAXで2時間にして、
そのあとエラーのチェックをして、
できれば次の機能の実装にうつりたいと思います。
今日もお疲れさまでした^^