- 課題
課題6
課題内容
投稿システムの開発
この課題では、データベースを使った投稿システムをPHPとMySQLを用いて開発します。フォームのデータをデータベースに保存し、それを一覧表示・詳細表示・削除ができる機能を実装します。
開発要件
-
データベースとテーブルの作成
- MySQLをインストールし、以下のカラム構成のテーブルを作成してください。
- テーブル名、データベース名は自由です。
カラム名 データ型 長さ(バイト) NOT NULL その他 id INT – はい AUTO_INCREMENT title VARCHAR 255 はい – description VARCHAR 255 いいえ –
-
ページ構成 以下のページを作成してください。
- 投稿一覧ページ
- データベースに保存された投稿のタイトルを一覧表示します。
- 各タイトルはリンクになっていて、クリックすると「投稿詳細ページ」に移動します。
- URLは /detail/{ID} の形式で、{ID} には投稿のIDが含まれるようにします。
- 投稿詳細ページ
- /detail/{ID} のURLでアクセスされるページです。URL内の {ID} の値を使って、データベースから該当の投稿を取得し、タイトルと説明を表示します。
- ページ下部に「削除」ボタンを追加し、ボタンを押すとその投稿をデータベースから削除し、投稿一覧にリダイレクトされるようにします。
- 存在しないIDでアクセスされた場合も投稿一覧にリダイレクトします。
- 新規投稿ページ
- 新規投稿を行うフォームを設置します。フォームには以下のフィールドを含めます。
- タイトル入力欄 (input type=”text”)
- 説明入力欄 (textarea)
- フォーム送信時に、データベースに新規投稿としてデータを保存し、投稿一覧ページにリダイレクトします。
- 新規投稿を行うフォームを設置します。フォームには以下のフィールドを含めます。
- 投稿一覧ページ
-
動作要件
- すべてのページでPHPを使用し、MySQLデータベースとの連携を行ってください。
- URLに含まれるIDパラメータを使用して投稿データを取得・表示する機能を実装してください。
- POSTリクエストを使用して、フォームから送信されたデータをデータベースに保存できるようにしてください。
- 削除処理が正しく動作し、削除後に一覧ページにリダイレクトされること。
-
セキュリティ
- フォームから送信されたデータは適切にサニタイズし、不正なリクエストやSQLインジェクションを防ぐ対策を行ってください。
- 存在しない投稿IDでのアクセスや不正なリクエストは、投稿一覧ページにリダイレクトされるようにしてください。
-
CSS不要
CSSのスタイリングは不要です。機能の実装に専念してください。
SQLの操作に関しては、ProgateのSQL編に取り組むか、下記サイトを参考にしてください。
参考サイト: MySQLでデータベースを作成しよう
参考サイト: macローカル環境にMySQLをインストールしデータベース環境を設定する
参考サイト: MySQL DBとテーブルとカラムの作成方法
完成目標期間
3日間を目安に完成させてください。
使用言語
- HTML: フォームやページの基本構造を作成するために使用します。
- PHP: サーバーサイドでフォームのデータを処理し、データベースとのやり取り(保存・取得・削除)を行います。
- MySQL(SQL): データベース管理システムとして使用し、データの保存や取得、削除を行います。
- JavaScript(オプション): 必要であれば、フォームのバリデーションやインタラクティブな動作のために使用します。
習得出来るスキル
- PHPとMySQLを使ったCRUD(作成、読み取り、更新、削除)操作
- URLパラメータを使用した動的なページ生成
- フォームの送信とデータベースへの保存処理
- データの削除とリダイレクト処理
- 基本的なセキュリティ対策(サニタイズとエラーハンドリング)
課題提出
1. 制作ファイルを確認する
制作ファイルを確認し、要件通りに動作しているかを確認してください。
2. 制作ファイルをギガファイルで提出
パソコンにLINEを追加していない場合は、必ず追加しておくようにしましょう。
参考サイト: パソコンでLINEを利用する
- ギガファイルを開く
- 「ファイルの保持期限変更」で【30日】以上を選択します。
- 制作ファイルをアップロードします。
- 当スクールのITスキルサポートLINE公式アカウントに課題名とギガファイルのURLを提出して下さい。
提出例
提出後について
プロジェクトファイルは必ず保存しましょう。
基本的にはご提出頂いてから1週間以内に順を追って、採点結果を LINE公式よりお送り致します。採点結果で修正があった場合は、指示に従って修正・提出を繰り返し、クリアしたら次の課題に進みましょう!
※注意事項※
課題で作成した動画等をSNS等にアップしたり、ご自身の実績として掲載することは絶対にやめて下さい。もし、見つかった場合は然るべき処置を取らせて頂きます。
感想、意見、質問を残す
※順々にご対応させて頂きますのでご意見、ご質問に時間がかかる場合がございます。