KLUTCHE

【PHP】単一ファイルでエラーチェックもできるシンプルメールフォーム

昨今のメールフォームは、JavascriptやらAjaxやらにより、見た目はリッチに使い勝手はユーザーフレンドリーにと、至れり尽くせりに進化しています。
それとは正反対にフォームに最低限必要な機能にしぼったミニマルコードのメールフォームです。

デモ

デモページ

入力した項目を保持したまま、必要項目入力のエラーメッセージを表示する、という最低限の機能は持ってます。

PHP

<?php
// 送信フラグ
$send_flg = false;
// エラーメッセージ
$err_msg = array();
// 送信ボタンを押した後の処理
if ($_POST["post_flg"]) {
	// エラー
	if ($_POST["name"] == "") {
		$err_msg[] = "「お名前」は必須です";
	}
	if ($_POST["email"] == "") {
		$err_msg[] = "「メールアドレス」は必須です";
	}
	// エラーが無ければ送信
	if (count($err_msg) == 0) {
		// 宛先
		$mail_to = "メール宛先アドレス";
		// 送信元アドレス
		$mail_from = "form@example.com";
		// 件名
		$mail_subject = "メールフォームから送信がありました";
		// 本文
		$mail_body = "";
		$mail_body.= "■お名前\n".$_POST["name"]."\n\n";
		$mail_body.= "■メールアドレス\n".$_POST["email"]."\n\n";
		$mail_body.= "■コメント\n".$_POST["comment"];
		// 送信処理
		mb_language("Japanese");
		mb_internal_encoding("UTF-8");
		mb_send_mail($mail_to, $mail_subject, $mail_body, "From: <".$mail_from.">");
		$send_flg = true;
		$_POST = array();
	}
}
?>
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>メールフォーム</title>
</head>

<body>
<?php
// 初期フォーム表示
if (!$send_flg) {
?>

<h1>メールフォーム</h1>

<?php
// エラーメッセージがある場合
if (count($err_msg) > 0) {
?>
<p style="color:red;">
<?php foreach ($err_msg as $val) { ?>
※<?php echo $val ?><br>
<?php } ?>
</p>
<?php } ?>

<form action="" method="post">

<p>
お名前<br>
<input type="text" name="name" value="<?php echo $_POST["name"] ?>"><br>
</p>

<p>
メールアドレス<br>
<input type="text" name="email" value="<?php echo $_POST["email"] ?>"><br>
</p>

<p>
コメント<br>
<textarea name="comment" rows="10"><?php echo $_POST["comment"] ?></textarea><br>
</p>

<input type="submit" name="post_flg" value="送信する"><br>
</form>

<?php
// メール送信後の表示
} else {
?>
メールを送信しました。<br>
<?php } ?>

</body>
</html>

18行目の
$mail_to = “メール宛先アドレス”;
にメールを受信するアドレスを記入してアップロードすれば完了です。

メールフォームって

このくらいシンプルだとメールフォームの仕組みを知るには良いかと思います。
ここからチェックボックス・ラジオボタンと作り足していくと、初心者にはとってもPHPの勉強になると思います。

シンプルなのでガラケーでも動きます。
あ、UTF-8で書いっちゃったので、ガラケーの場合はdocomoで動かすためにSHIFT-JISに変換して使って下さい。


“【PHP】単一ファイルでエラーチェックもできるシンプルメールフォーム” への1件のコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です