PHPの中にHTMLを組み込む!初心者でもマスターできる5つのステップ – Japanシーモア

PHPの中にHTMLを組み込む!初心者でもマスターできる5つのステップ

PHPとHTMLの基本的な組み合わせ方を学ぶ初心者のためのチュートリアルPHP
この記事は約7分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

このサービスは複数のSSPによる協力の下、運営されています。

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、PHPとHTMLをうまく組み合わせて、動的なウェブページを作成することができるようになります。

●PHPとHTMLの基本

○PHPとは

PHPは、サーバーサイドで実行されるスクリプト言語で、主にウェブ開発に使用されます。

HTMLと一緒に使うことで、データベースとのやり取りやユーザーの入力の処理など、動的なウェブページを作ることができます。

○HTMLとは

HTMLは、ウェブページの基本的な構造を定義するマークアップ言語です。

ウェブブラウザはHTMLを解釈して、ユーザーに表示するウェブページを作ります。

●PHPの中にHTMLを書く方法

○基本的な方法

PHPの中にHTMLを書くには、PHPの閉じタグの後にHTMLを書くか、PHPのechoやprint文を使用します。

○サンプルコード1:PHPとHTMLの組み合わせ

ここでは、PHPの中でHTMLを書く簡単な例を紹介します。

この例では、PHPの閉じタグの後にHTMLを書いています。

<?php
  // PHPコード
?>
<!DOCTYPE html>
<html>
<head>
  <title>PHPとHTML</title>
</head>
<body>
  <h1>Hello, World!</h1>
</body>
</html>

●PHPとHTMLの応用例

PHPとHTMLを組み合わせることで、単なる静的なウェブページを超えて、データの収集や表示、バリデーション、そして動的なコンテンツの生成など、さまざまな機能を実現することができます。

それぞれの応用例を具体的なサンプルコードとともに紹介します。

○サンプルコード2:フォームを作る

最初の応用例として、PHPとHTMLを使用してウェブフォームを作成します。

このコードでは、HTMLでフォームを作り、ユーザーからの入力をPHPで受け取ります。

<!DOCTYPE html>
<html>
<head>
  <title>フォーム</title>
</head>
<body>
  <form method="post" action="form.php">
    <label for="name">名前:</label><br>
    <input type="text" id="name" name="name"><br>
    <input type="submit" value="送信">
  </form>
</body>
</html>

そして、上記のHTMLフォームから受け取ったデータを処理するPHPコードを作成します。

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = htmlspecialchars($_POST["name"]);
    echo "こんにちは、" . $name . "さん!";
  }
?>

○サンプルコード3:データベースから情報を取得する

次に、データベースから情報を取得してウェブページに表示する方法を学びます。

この例では、MySQLデータベースからデータを取得して表示します。

<?php
  $servername = "localhost";
  $username = "username";
  $password = "password";
  $dbname = "myDB";

  // データベースへの接続を確立
  $conn = new mysqli($servername, $username, $password, $dbname);
  
  // 接続の確認
  if ($conn->connect_error) {
    die("接続失敗: " . $conn->connect_error);
  }

  // データの取得
  $sql = "SELECT id, name FROM MyGuests";
  $result = $conn->query($sql);

  if ($result->num_rows > 0) {
    // データを一行ずつ取り出し
    while($row = $result->fetch_assoc()) {
      echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
  } else {
    echo "0 results";
  }
  $conn->close();
?>

上記のコードでは、まずデータベースへの接続を確立し、その後SQLクエリを実行してデータを取得します。

そして、取得したデータを一行ずつ取り出して表示します。

○サンプルコード4:ユーザー入力のバリデーション

ユーザーからの入力を適切にバリデーション(検証)することは、ウェブアプリケーションの安全性を保つために重要です。

このコードでは、ユーザーからの入力をバリデーションする方法を紹介します。

<?php
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST["name"];
    if (empty($name)) {
      echo "名前は必須です。";
    } else if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      echo "名前は英字と空白のみを使用してください。";
    } else {
      echo "こんにちは、" . $name . "さん!";
    }
  }
?>

この例では、まずユーザーが名前を入力したかどうかを確認します。

もし名前が入力されていなければ、エラーメッセージが表示されます。

次に、名前が英字と空白のみから成るかどうかを確認します。

もし英字と空白以外の文字が含まれていれば、エラーメッセージが表示されます。

これらのチェックがすべて通過した場合のみ、ユーザーの名前が表示されます。

○サンプルコード5:動的なウェブページの作成

次に、PHPとHTMLを使って動的なウェブページを作成する方法を見てみましょう。

動的なウェブページは、訪問者によって内容が変化するウェブページです。

この例では、訪問者のブラウザの情報に基づいてメッセージを変更します。

<!DOCTYPE html>
<html>
<body>

<h1>お使いのブラウザは:</h1>
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>

</body>
</html>

このコードでは、$_SERVERの’HTTP_USER_AGENT’という情報を使って、訪問者のブラウザ情報を取得し、その情報をウェブページ上に表示します。

●注意点と対処法

PHPとHTMLを一緒に使う際には、いくつかの注意点があります。

  1. セキュリティ:ユーザーからの入力を適切にバリデーションし、エスケープ処理を行うことで、クロスサイトスクリプティング(XSS)などのセキュリティリスクを防ぐことができます。
  2. データベース接続:データベースへの接続情報(ホスト名、ユーザ名、パスワードなど)は、一般に公開しないようにすることが重要です。
  3. エラーハンドリング:PHPのエラーレポーティング機能を利用して、エラーを適切にハンドリングすることが大切です。

●カスタマイズ方法

PHPとHTMLを一緒に使うことで、動的なウェブページを作成することが可能です。

例えば、訪問者の地域によって表示する情報を変えたり、訪問者のブラウザの言語設定に基づいて言語を変更するなど、様々なカスタマイズが可能です。

また、CSSやJavaScriptと組み合わせることで、デザインやインタラクティブな要素を追加することもできます。

まとめ

PHPとHTMLの組み合わせは、動的なウェブページの作成に非常に便利です。

しかし、セキュリティやエラーハンドリングに注意を払う必要があります。

また、ユーザーの要望に応じてウェブページをカスタマイズすることで、更に魅力的なウェブサイトを作ることができます。