PHPとMySQLを使った掲示板の作り方を初心者向けにコード付き解説【会員登録フォーム】

PHPで掲示板作成

いちから掲示板作成講座、2回目になります。

今回はPHPとHTMLを使った会員登録フォームの作り方について解説します。

作成するサイトの外見は次のようになります。

「どんな掲示板ができるのかな。」と思ったら、下記の紹介動画をクリックしてくださいね。

↓↓↓

なお記事では掲示板に必要なコードはご紹介しますが、デザイン部分は省略しています。

デザイン部分も含めた形で、GitHubにコード公開しています。全体のコードを見たい時に、参考にしてください。

GitHubを見てみる

いいなと思ったら、GitHub右上のStarボタン、クリックしてもらえると、嬉しいです。

前回までの内容

掲示板作成の7ステップの目次と概要はこちらをご覧ください。

HTMLとPHPで会員登録フォームを作る

ではHTMLとPHPを使ってフォームを作っていきましょう。

まずはデータベースとの接続用ファイルを作成します。

データベースとの接続ファイル作成

xamppを通常どおりインストールすると、Cドライブ直下にxamppフォルダができます。その中にhtdocsフォルダもできます。

このC:\xampp\htdocsの中にforumフォルダを作成します。今後、この中に、プロジェクト用のファイルを作成していきます。

まずはここに、データベースとの接続用ファイル dbconnect.phpファイルを作ります。「データベースの名前」には、前回作成したforumを指定します。

【C:\xampp\htdocs\forum\dbconnect.php】

データベースとの接続情報は、毎回ファイルごとに記述することもできます。

ただ、このようにひとつのファイルにまとめておくと、そのファイルに複数のファイルからリンクを貼れます。

こうしておけば、もし接続情報が変わった時には、ひとつのファイルだけ書き換えればよいことになってラクですよね。

ログインファイル作成

次にログイン用画面と作ります。

プロジェクト用フォルダ内に、register.phpファイルを作り、下記コードをいれます。

【C:\xampp\htdocs\forum\register.php】

★ポイント★ごとにコードの組み方を解説していきます。

ポイント① 接続情報を設定する

まず最初の部分です。

これは「セッション始めるよ」という意味。

ふたつ目のコードは「dbconnect.phpファイルを読み込んでね」という意味になります。

dbconnect.phpというファイルには、すでに、データベースに接続するための情報が入れてあります。

ポイント② POSTメソッドを選択する

ふたつめのポイントはFormタグの中のmethodをpostにするという点。

ユーザーが入力した情報をサーバーに送信するために、GETメソッドとPOSTメソッドという2つの方法があります。

一言でいうと、GETメソッドはURLに情報が組み込まれる方法で、POSTメソッドはURLに情報が入らない方法です。

フォームのような個人情報が送信される場合には、POSTメソッドを選びましょう。

ポイント③ inputタグの中にname属性を割り当てる

ポイントの3つ目は、各inputタグの中に【name属性】を入れるという点。

この【name属性】の値が、ここで入力されるデータの名前になります。

name属性が上記のように “name” となっている場合、フォームにユーザーが入力したときの値は$_POST[‘name’]となります。

$_POST[‘name’]   とはフォームのname属性にユーザーが入力した値

ポイント④ inputタグの中にvalue属性をPHPで設定する

ポイントの4つ目は、各inputタグの中のvalue属性の値をPHPで設定するという点。

valueの後のカッコ部分については、大事な点が多いので、じっくり解説します。

valueの後ポイント①

HTML部分にPHPのコードを挿入する場合は、このように<?php コード ?> で囲んであげます。

valueの後ポイント②

value属性の中には【$_POST[‘name’]】がはいっています。これは先ほどご紹介したとおり、ユーザーがフォームに入力した後の値です。

valueの後ポイント③

$_POSTの後に クエスチョンとダブルクオテーションをそれぞれ2個いれています。

この処理をしないと、ブラウザ上に「Undefined index: name in」といった警告が出ます。

定義されていない値には、こういったエラーが出ます。これを回避するには、if(isset(xxx)) { 処理 } などの条件文をいれる必要があります。

今回の場合は、下記のようにisset関数を使って、コードを書けます。

これにより、$_POST[‘name’]が存在する時だけ処理を実行することができます。

同じ意味のコードをもう少し簡略化したのが、今回使用したコードです。

これは、NULL合体演算子を使ったコードです。これによって、$_POST[‘name’]がなければ、””内の値を使用します。””内に値を入れていなければ、空欄になります。

便利なので、2つの方法をご紹介しました。if構文でもNULL合体演算子でも、お好きなほうを使ってください。

NULL合体演算子は名前は覚えにくいですが、便利なので、覚えておいて損はないですよ。

テスト

今の段階で一度、テストしてみましょう。

XAMPPを起動した状態で、下記のURLを開きます。

http://localhost/forum/register.php

次のようにフォームが表示されていれば、OKです。

さいごに

今回は登録フォームの作り方を紹介しました。

良かったら実際に手を動かして、作ってみてください。実際に作ってみると、ぐっと理解が深まります。

ただ今回作ったフォームでは、実際には使いにくい点が色々あります。

たとえば、空欄だったときにどうするかとか、パスワードの文字数をチェックしたりとか。こういった処理はバリデーションとも呼ばれます。

次回は、このバリデーションの処理について、解説していきますね。

PHPで掲示板作成

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

 

Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
デプロイ講座付。StripeやChatGPT連携など過去10回分のセミナー動画視聴可能。

Laravel実践スキルをのばしたい方におすすめです。

ラボの案内を見てみる

【おすすめレンタルサーバー】

「Webアプリを本番環境に反映させたい」

場合には、レンタルサーバーを使うのが手軽です。

わたしはエックスサーバーをメインに使ってます。
早くて安定していて、おすすめです♪



Twitter始めました。
40代からプログラミング!

コメント

  1. より:

    ファイル名は何にして保存すればいいのですか???????

  2. M より:

    こんにちは。
    test.php の7行目
    7 header(‘Location: confirm.php’);
    となっていますが、confirm.php は、どこにコードの記載されていますか?

    教えてください。

    • Junko Junko より:

      こちら、confirm.php ではなく、test3.php とすべきでした。
      記事内のコード、修正しました。ご指摘ありがとうございます。

タイトルとURLをコピーしました