【PHP】フォームから送信された情報をファイルに保存する方法
フォームから送信された情報を『log.txt』というファイルに保存する方法です。フォームからは、名前とEmail情報が送信されることを想定したプログラムです。備忘録的なまとめです。
HTMLコードは以下
<form action="thanks.php" method="post" enctype="multipart/form-data">
<label for="name_label">名前</label>
<input type="text" id="name_label" name="name">
<label for="email_label">Email</label>
<input type="email" id="email_label" name="email">
</form>
PHPコードは以下
<?php
if (((isset($_POST["name"])) && ($_POST["name"] != "")) or ((isset($_POST["email"])) && ($_POST["email"] != ""))) { // 名前かEmailがPOSTされたときに、以下を実行する
if (isset($_POST["name"])) { //もしPOSTに [name] があれば
$name = $_POST["name"]; //POSTのデータを変数$nameに格納
if( get_magic_quotes_gpc() ) { $name = stripslashes("$name"); } //クォートをエスケープする
$name = htmlspecialchars ($name); //HTMLタグを禁止する
$name = mb_substr ($name, 0, 30, 'UTF-8'); //長いデータを30文字でカット
}
if (isset($_POST["email"])) {
$email = $_POST["email"]; //POSTのデータを変数$nameに格納
if( get_magic_quotes_gpc() ) { $email = stripslashes("$email"); } //クォートをエスケープする
$email = htmlspecialchars ($email); //HTMLタグ禁止
$email = mb_substr ($email, 0, 30, 'UTF-8'); //長いデータを30文字でカット
}
$time = date("Y/n/j G:i"); //日時の取得
$write = $time . ", ". $name . ", " . $email. ",". $yourID . "/"; //新しく書き込むデータを <> で区切って整形
$log = fopen ("log.txt","a"); //書き込み用モードでデータを開く
flock ($log, LOCK_EX); //ファイルロック開始
fputs ($log,$write); //書き込み処理
flock ($log, LOCK_UN); //ファイルロック解除
fclose ($log); //ファイルを閉じる
}
?>
以上で完成です。
ぜひご利用ください( ՞ٹ՞)
※P.S:無料メルマガで発信中:過去の僕は「ブログ発信で5億円」を稼ぎました。次は「30億円」を目指します。挑戦しつつ、裏側の思考を「メルマガ」から発信します。不満足なら1秒で解約できます。無料登録は「こちら」です。