0Pricing
PHP Academy · レッスン

お問い合わせフォームを作成する

メールでメッセージを送信するお問い合わせフォームを作成します

「お問い合わせフォームを作成する」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン2/2です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全2レッスンが含まれています。

お問い合わせフォームプロジェクトの概要

お問い合わせフォームを作成する

お問い合わせフォームの作成レッスンへようこそ!このプロジェクトでは、ユーザーがメールでメッセージを送信できるお問い合わせフォームの作り方を学びます。さっそく始めましょう!

お問い合わせフォームを作成する — イラスト1

プロジェクトをセットアップする

プロジェクトをセットアップする

始める前に、次のものが用意されていることを確認してください:

  • XAMPPやWAMPなどのWebサーバー
  • テキストエディターまたはIDE(例:VS Code)
  • プロジェクトディレクトリ内の contact.php という名前のファイル
  • PHPの mail() 関数(メール送信に必要)が有効になっていること

ヒント:ローカルでテストする場合は、メールサーバーの設定が必要になることがあります。

基本的なHTMLフォームを作成する

基本的なHTMLフォームを作成する

まず、お問い合わせフォームのHTML構造を作成します。例:

重要なポイント:送信前にすべてのフィールドへの入力を必須にするには、required 属性を使用します。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Contact Form</title>
</head>
<body>
  <h1>Contact Us</h1>
  <form action="contact.php" method="post">
    <label for="name">Name:</label><br>
    <input type="text" id="name" name="name" required><br><br>
    
    <label for="email">Email:</label><br>
    <input type="email" id="email" name="email" required><br><br>
    
    <label for="message">Message:</label><br>
    <textarea id="message" name="message" rows="5" required></textarea><br><br>
    
    <button type="submit" name="submit">Send Message</button>
  </form>
</body>
</html>

フォームデータを処理する

フォームデータを処理する

contact.php ファイルでフォームの送信を処理します。例:

ヒント:HTML文字をエスケープしてXSS攻撃を防ぐには、htmlspecialchars() を使用します。

<?php
  if (isset($_POST['submit'])) {
    $name = htmlspecialchars($_POST['name']);
    $email = htmlspecialchars($_POST['email']);
    $message = htmlspecialchars($_POST['message']);

    echo "Name: $name<br>";
    echo "Email: $email<br>";
    echo "Message: $message<br>";
  }
?>

入力を検証する

入力を検証する

処理する前に、入力が要件を満たしていることを検証します。例:

重要なポイント:無効なデータや悪意のあるデータを防ぐため、ユーザー入力は必ず検証してください。

<?php
  if (isset($_POST['submit'])) {
    if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
      echo "Invalid email address.";
      exit;
    }

    $name = htmlspecialchars($_POST['name']);
    $email = htmlspecialchars($_POST['email']);
    $message = htmlspecialchars($_POST['message']);

    echo "Valid input. Processing...";
  }
?>

メールを送信する

メールを送信する

PHPの mail() 関数を使用して、フォームデータをメールアドレスに送信します。例:

ヒント:メールが配信されない問題を避けるため、有効な From アドレスを使用します。

<?php
  if (isset($_POST['submit'])) {
    $to = "admin@example.com"; // Replace with your email
    $subject = "New Contact Form Submission";
    $message = "Name: $name\nEmail: $email\nMessage:\n$message";
    $headers = "From: $email";

    if (mail($to, $subject, $message, $headers)) {
      echo "Message sent successfully!";
    } else {
      echo "Failed to send the message.";
    }
  }
?>

フォームを拡張する

フォームを拡張する

次のような機能を追加できます:

  • フォーム自体に成功メッセージやエラーメッセージを表示します。
  • CSSを使用してフォームをスタイリングし、ユーザーインターフェースを改善します。
  • スパム送信を防ぐためにCAPTCHAを導入します。

重要なポイント:機能を拡張すると、ユーザー体験とセキュリティが向上します。

メールの問題をデバッグする

メールの問題をデバッグする

メールが送信されない場合は、次の項目を確認してください:

  • PHPの mail() 関数が有効になっていることを確認します。
  • From メールアドレスが有効であることを確認します。
  • サーバーのメールログでエラーを確認します。

ヒント:高度なメール機能が必要な場合は、PHPMailer のようなライブラリの使用を検討してください。

よくできました!

よくできました!

おめでとうございます!PHPで機能的なお問い合わせフォームを構築できました。フォームの作成、フォームデータの処理、入力の検証、メールの送信方法を学びました。次のレッスンでは、PHPのスキルをさらに高めるために、別の楽しいプロジェクトを作成します。引き続きコーディングしましょう!

お問い合わせフォームを作成する — イラスト10

よくある質問

「お問い合わせフォームを作成する」レッスンは無料ですか?

はい。「お問い合わせフォームを作成する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全2レッスンが含まれています。

「お問い合わせフォームを作成する」で何を学びますか?

メールでメッセージを送信するお問い合わせフォームを作成します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

PHP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/2です。

「お問い合わせフォームを作成する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPHP Academyレッスンでコードを書いて実行できますか?

はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 簡単なToDoリストを作成する
  2. お問い合わせフォームを作成する
← PHP Academyに戻る