MEMO
当記事にあるPHPコンタクトフォームは超シンプルなため、セキュリティが甘いようです。僕自身はこれでトラブったことはありませんが、ご利用は自己責任でお願いします。自作である必要が無ければGoogleフォームをご利用いただいた方がよいかもしれません。
本日は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コンタクトフォームを作る方法についてでした!