文系出身でも・未経験でも・プロのプログラマーを目指すブログ

ウェブカツ‼︎でのプログラミング学習進捗を報告します

ユーザー登録機能の実装続き

f:id:iolwloi:20191003104959p:plain


こんにちは。

文系出身でも・未経験でも・プロのプログラマーを目指すブログ

略して「プロプロ」

あんまん(@aaii0123)です。

 

10月に入ったというのに、日中はまだまだ暑い日が続いていますね!

 

夜はだいぶ涼しくなって過ごしやすくなりましたが、

日中はPCを打ってると、PCの熱で手汗がやばいです笑

 

さて、今日の進捗です!

今日取り組んだこと

・ユーザー登録機能の実装続き

・ユーザー登録画面の見た目調整(途中) 

です・・!

なんとかコードは書き終わって、見た目の調整に入りました。

ユーザー登録機能の実装続き

昨日に続いて、PHPのユーザー登録機能の実装に取り組み、

なんとか、機能のコードは完成しました。

(エラーのチェックはこれから)

 

昨日に続いて、メモをとりながらの勉強法。

本日追加したメモはこんな感じです。(赤字が追加)

 

ユーザー登録機能実装の流れ

 

ログを取る指定

エラーメッセージの指定(define(定数)で指定)

エラーメッセージ格納用の配列

関数

 バリデーション

  未入力

  Email形式チェック

  Email 重複チェック

   $emailキーを入れる

   データベースに接続する (try catch)

           try

    データベース接続関数を呼び出す

    SQL文作成

    クエリ作成

        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送信されていれば変数にユーザー情報を代入

 未入力チェック

   エラーメッセージが空であればバリデーションチェック

     Email

   形式チェック

   最大文字数チェック

   最小文字数チェック

  パスワード

   半角英数字チェック

   最大文字数チェック

   最小文字数チェック 

      パスワードとパスワード再入力があっているか

  DB接続してDBに情報を格納(try catch)

  マイページへ遷移

昨日の段階で、けっこう進められていたので

今日の分は少なくすみました^^

 

そして、出来上がった画面がこちら

f:id:iolwloi:20191002234316j:plain

(なんどもトライしているのですが、なぜかスクリーンショットが保存できず、

 PC画面の撮影という残念な感じ・・なんとかしたい苦笑)

 

圧倒的にダサい・・

 

本当に最低限のhtmlしか書いていないので、

非常に残念な見た目です^^;

 

この段階で見た目に時間をかけるよりゴリゴリ機能の実装を進めた方がいいのではとも思いつつ、

これだとさすがにあんまりでモチベーションが上がらない(笑)

ので、続いてCSSに着手しました。

ユーザー登録画面の見た目調整(途中)  

実際に着手してみてわかったのですが、

けっこうCSS忘れてる・・

 

こうなることが怖くて、『HTML/CSSモダンコーディング』の写経を

PHPの勉強と並行してずっとしてきたはずだったのですが、

それでも、自分でいざやってみようと思うと頭真っ白・・

 

やっていくうちに思い出すだろうとは思うのですが、結構ショックでした。

 

先ほども書いた通り、今はあくまでもPHPのアウトプットがメインなので

CSSにかける時間は決めておいて時間オーバーになるまでは

頑張って思い出そうと思います。

ググったこと

・PDOオブジェクトのexecuteメソッド

プリペアードステートメントを実行するもの。

外部から来る入力値をSQLに使う場合などは、SQLインジェクションのリスクがあるため、まずprepareSQLをセットして、executeで実行をする2段構えの構造で実装するのがいい。

2つもメソッドを呼び出すのが面倒だという場合は、query関数に2つパラメータを渡すことで簡単に使うこともできる。

参考URL:prepareとexecuteで操作 - phpspot

 

まとめ

HTML/CSSは今後特に使いこなしていきたいと思っていたので、

忘れてしまっていたことに正直ショックを受けましたが

忘れたならまた思い出せばいい!ということで・・笑

 

明日は、CSSは MAXで2時間にして、

そのあとエラーのチェックをして、

できれば次の機能の実装にうつりたいと思います。

 

今日もお疲れさまでした^^