26行でできる世界一簡単なPHPコンタクト/メールフォームの作り方

世界のヘイショーです。

本日はWeb制作について、メモしておきたい内容があったのでここに書き留めたいと思います。

それは、シンプルなPHP問い合わせフォームの作り方について。

今まではWordPressなどのCMSを使ってホームページを作ることが多かったのでシンプルなHTMLのサイトに問い合わせフォームを導入する機会がなかったのですが、先日自分のホームページを作る際に問い合わせフォームが必要になったので、色々と調べてみました。

出来るだけシンプルなものを探してみた

探していたコンタクトフォームはこんな感じ。

  • 入力項目は名前、E-mail、メッセージの3点
  • それぞれの項目が未入力の場合は、エラーメッセージを表示させる
  • 送信後は、サンキューページ(別のページ)に移動させる

以上の3点のみだったので、自分でも内容が理解できる簡単なPHPフォームが無いかな〜、と探していたところ、PHPファイル一枚、たったの26行のコードで構成される簡単なものが見つかりました。

デモはこちら

コーディングはこんな感じ

PHPファイル(mail.php)

コード
<?php
$field_name = $_POST['name'];
$field_email = $_POST['email'];
$field_message = $_POST['message'];
$mail_to = 'test@gmail.com(**送信先のメールアドレスを入力)';
$subject = 'Message from a site visitor '.$field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">
        window.location = 'thanks.html#contact(※送信後に移動するページ)';
    </script>
<?php
}
else { ?>
    <script language="javascript" type="text/javascript">
        alert('メッセージ送信に失敗しました。こちらのメールアドレスへお問い合わせください。test@gmail.com(※自分のメールアドレス)');
        window.location = 'index.html(※送信失敗後に移動するページ)';
    </script>
<?php
}
?>

※5行目の「test@gmail.com(**送信先のメールアドレスを入力)」を自分のメールアドレスに変更、15行目の’thanks.html#contact(※送信後に移動するページ)’の箇所を送信後に移動させたいページのパスに変更ください。

HTMLファイル中のフォーム要素

コード
<form role="form" action="mail.php" method="post">
<div class="form-group">
<label for="exampleInputName1">Your Name</label>
<input type="text" class="form-control" id="exampleInputName1" placeholder="Enter name" name="name" required>
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter email" name="email" required>
<label for="exampleInputText1">Message</label>
<textarea class="form-control" rows="3" name="message" required></textarea>
</div>
<button type="submit" value="SEND MESSAGE" class="btn btn-default">Submit</button>
</form>

inputの要素内にある「required」のタグがエラーメッセージを表示させます。

あとは、サンキューページを作って「お問い合わせありがとうございました」と表示させておけばOKです!

簡単でしょ??

以上、世界一簡単はPHPコンタクトフォームを作る方法についてでした!

11 Comments

めしお

さっそく作成してみたのですが、記入した内容が反映されない場合どうしたらよいでしょうか?

返信する
det may duong ngoc

Dệt May Dương Ngọc là đơn vị hoạt động chuyên sâu trong
lĩnh vực sản xuất quần áo Bảo hộ lao động.
Với nhiều năm kinh nghiệm trong nghề, đội ngũ
dệt may Dương Ngọc luôn luôn không ngừng nâng cao năng lực sản xuất cũng
như chất lượng sản phẩm để đáp ứng được nhu cầu ngày một
khắt khe từ phía khách hàng. Trong giai đoạn hiện nay,
quần áo bảo hộ không chỉ để đảm
bảo an toàn cho người lao động, mà còn góp
vần khẳng định thương hiệu cũng như hình ảnh của mỗi Doanh nghiệp trên thị
trường. Chúng tôi luôn mong muốn được phục vụ khách hàng ngày càng tốt hơn bằng nhiệt huyết và đam mê của mình để Dương Ngọc
thực sự trở thành sự trở thành lựa chọn số 1 của quý khách hàng.

返信する
berita persib terbaru Sore Ini

I was wondering if you ever considered changing the layout of your site?

Its very well written; I love what youve got to say.
But maybe you could a little more in the way of
content so people could connect with it better.
Youve got an awful lot of text for only having 1
or 2 pictures. Maybe you could space it out better?

返信する

コメントを残す

メールアドレスが公開されることはありません。