【第10話】作って学ぶPHP!初心者による実践録!~追加画面2~2018/01/28SHAREツイートシェアはてブGoogle+PocketLINEツイートシェアはてブGoogle+PocketLINEスポンサーリンクこれからPHPの勉強を始める方に向けて!PHP初心者の私が、実際に簡単なWebサイトを作成しながら学んでいく実践録です!!この記事の目標は、同じく初心者の方が、実際に「作って学ぶ」を実践出来る内容を提示することです。私自身は、他言語(C#、Javascriptなど)でのプログラミング経験がありますが、プログラミングを始めて勉強する方でも理解出来るように心がけて書いていきます。HTML・CSSに関しては説明を省きます。分かりにくい所等あればコメント等頂けたら凄く喜びます。こちらの記事は、「第10話」となっておりますので、第1話から読むことをオススメします!のらくら第9話を投稿してから第10話を投稿するまで、非常に長い間が空いてしまいました。申し訳ありませんでした。このシリーズは今回を含め残り、3話か4話となります。連続して投稿出来るよう精進致します。前回まで現状を見ておきましょう追加画面の作成(続き)値が入力されているかどうかをチェックエラーが発生した場合に画面に表示させるデータベースに値を登録するSQLインジェクションの対策をする今回はここまで!質問・指摘はこちらからスポンサーリンク前回まで第9話では、入力された値をサーバー側で受け取る所までを実装していました。・入力されているかどうかのチェックをする・データベースに値を登録するをやっていこうと思います!現状を見ておきましょうとりあえず現状がどうなっていたかを確認しておきます!現状のソースはこんな感じになっていたと思います。まとめここに新しくロジックを追加していきます!追加画面の作成(続き)それでは、さっそく作成をしていきます!値が入力されているかどうかをチェックもう覚えてない!って人もいるかと思うので、データベース内に作ったテーブルを思い出してください。「memo」列は、NULL許可にしていて、その他の列は、NULLを禁止しています。「memo」以外の情報は、必ず入力されている必要があるということです。値が入力されているかのチェックをしてあげる必要があります。チェックをかけていない場合、データベースに保存する際にエラーとなってしまうので、注意してください。いうことで、チェックをかけていくわけですが、実装は簡単です!「empty」という関数を使ってあげます。この関数は、「引数に値が入っているかどうか」をチェックしてくれます。引数に値が入っていたら「false」を、入っていなければ「true」となります。emptyこのように書いてあげると、値が入力されたかどうかのチェックをすることが出来ますね!ということで、「title」と「URL」に対してチェックをかけてあげましょう!入力チェックエラーが発生した場合に画面に表示させるこれで、入力されていたかどうかのチェックをかけることが出来ました。考えないといけないのが、エラーが出た場合にはそれ以降の処理を行わないこと。画面側にエラーがあることを表示してあげることですね。true」としましたがチェックをかける前に、「false」をセットしておきます。入力チェックを行った後に、「$err」がtrueになっていなければ処理を行うようにロジックを書いてあげればオッケーです!エラーがなければ処理をするこんな感じですね!次のエラーを画面側に表示する方も、同じような考え方で出来ちゃいます!エラーを表示エラーが「true」になっていれば、エラーを表示するHTMLを出力するだけですね!データベースに値を登録するさて、これでやっとデータベースに値を登録する所に入れます!データベースへの接続に関しては、一覧画面作成の時にやりましたね!ということで、同じようにDBへの接続ロジックを書いてみます。書いていく場所は、先ほどエラーがなかったら処理を行うように記述したif分の中ですね!DB接続ここまでは、一覧画面と同じです。ここから、一覧画面の場合には「SELECT」を実行してあげてました。今回は、データの登録なので「INSERT」を書いていきます!INSERTの書き方はこんな感じ。予期していない動作をしてしまうことになりますし、勝手に色んなデータを書き換えられたり、消されてしまったりする可能性が出てきます。これが、「SQLインジェクション」と呼ばれるもの。)前回の第9話で、HTMLで意味がある文字列に対して対策をしたのと同じようにデータベースに対して値を入れたり書き換えたりするときにも同じように対策が必要というわけです。いうことで、その対策を含めて実際に記述するロジックがこちら。INSERTINSERT分の中に「?」で書かれている所がありますね!その「?」に対して、実際の値をセットしているのが「execute」と書かれている所になります。その1つ前に、「prepare」と書かれているのが、SQLインジェクション対策になります!最後の「lastInsertId」は、登録した時に出来た列のIDを自動で取得してくれるものです。これは後で使うので取得しておきます。今回はここまで!今回はここまで!次回が追加画面の最後になります!データベースに登録した後の処理を実装していきます!質問・指摘はこちらからプログラミング初心者の方は、本当にわからないことだらけだと思います。そんな方へ、少しでも役立つことが出来れば嬉しいです。分からない所があれば、こちらの記事にコメントを入れてください。出来る限り回答していきます!Twitterからの質問でもかまいません。間違い等あればご指摘頂けると幸いです。PHPに関しては、私自身キャッチアップ中のため至らない点もあるかと思います。【プログラマー】コメントは不必要!?それはただの理想論!!【Android開発言語】Kotlinってどんな言語!?Kotlinとは!【Windows】デスクトップを「CLaunch」でごみ箱Onlyに!【第4話】作って学ぶPHP!初心者による実践録!~デザイン編~【第8話】作って学ぶPHP!初心者による実践録!~一覧画面3~技術力ではない!?私が思う優秀なプログラマーの特徴とは。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。【第11話】作って学ぶPHP!初心者による実践録!~追加画面3...プロフィールのらくらへっぽこプログラマーとして、日々頑張って勉強をしております。未熟なITエンジニアだった私が、転職して1年でスキルアップしたこと。【リリース】朝が苦手な私が、朝活応援サイトを作りました。5万円だけ入れて半年放置した結果。