ロリポップで問い合わせフォームの内容をMySQLに保存する前に考えること
問い合わせフォームは、最初はメールで受け取れれば十分なことが多いです。ただ、件数が増えると「あとから検索したい」「対応済みか分からない」「迷惑投稿の傾向を見たい」と感じることがあります。
その時に考えるのが、問い合わせ内容をMySQLへ保存する方法です。ただし、フォーム内容には名前、メールアドレス、本文などの個人情報が含まれることがあります。保存する前に、何を残すか、誰が見るか、どう消すかを決めておく必要があります。
確認日と対象
確認日: 2026年5月19日。ロリポップで自作PHPメールフォームを運用していて、メール送信に加えてMySQL保存や管理画面化を検討している初心者向けです。
この記事は、法律相談や高度な個人情報管理の設計ではありません。まず小さなサイトで「本当にDB保存が必要か」「保存するなら何を決めるか」を整理するための入口です。
先に結論
問い合わせ内容をMySQLに保存する前に、次の順番で決めます。
- メールだけで足りるか、DB保存が必要かを分ける
- 保存する項目と保存しない項目を決める
- スパムや重複投稿を保存前に減らす
- DB接続情報をGitHubやAIへ貼らない形にする
- 保存後に誰が見て、いつ削除するかを決める
- バックアップと復元方法を決めてから実装する
メールだけで足りるケース
問い合わせ件数が少なく、受信箱で管理できるなら、無理にMySQL保存を始めなくても構いません。
- 月に数件だけ問い合わせが来る
- 対応担当者が1人だけ
- 受信メールを検索すれば十分
- 管理画面や対応ステータスが不要
- 個人情報を長く保存したくない
MySQL保存を検討するケース
| やりたいこと | MySQLが役立つ理由 | 注意点 |
|---|---|---|
| 対応済み・未対応を分ける | ステータスを保存できる | 管理画面のログイン保護が必要 |
| 問い合わせ履歴を検索する | 名前、日付、内容で絞り込める | 保存期間を決める |
| 送信できたか確認する | メール送信とは別に受付記録を残せる | メール失敗時の扱いを決める |
| スパム傾向を見る | IP、URL数、送信時刻を比較できる | 必要以上に個人情報を残さない |
保存する項目を先に決める
フォーム入力を丸ごと保存するより、目的に必要な項目だけに絞る方が安全です。
| 項目 | 保存する目的 | 注意 |
|---|---|---|
| 送信日時 | 問い合わせの発生時刻を見る | タイムゾーンをそろえる |
| 名前 | 返信や対応履歴に使う | 不要なら保存しない選択もある |
| メールアドレス | 返信先として使う | 表示できる人を絞る |
| 本文 | 問い合わせ内容を確認する | 長文や個人情報の扱いに注意する |
| IP、User-Agent | 連投やスパム傾向を見る | 公開画面に出さない |
| 対応ステータス | 未対応、対応中、完了を分ける | 管理画面の設計が必要 |
保存前にスパムを減らす
スパム投稿をそのままDBへ保存すると、管理しにくくなります。メール送信前、DB保存前の両方で対策を考えます。
- Cloudflare Turnstileなどで自動投稿を減らす
- URLが多すぎる本文を確認する
- 短時間の連続送信をログで見る
- 必須項目と文字数を確認する
- 失敗理由を公開画面に詳しく出しすぎない
Turnstileを入れる場合は、HTMLに表示するだけではなく、PHP側でトークン検証してから送信や保存へ進む形にします。
DB接続情報を分ける
問い合わせ保存を始めると、DBホスト名、DB名、ユーザー名、パスワードが必要になります。これらをフォーム処理のPHPへ直接書くと、GitHubやAI相談時に漏れやすくなります。
接続情報は、PHPのDB設定を安全に分ける方法を参考に、GitHubへ上げるファイルとサーバーだけに置く秘密ファイルを分けてください。
実装前の確認順
| 順番 | 見ること | 進む記事 |
|---|---|---|
| 1 | フォームメールが正しく送信できるか | PHPメールフォーム確認 |
| 2 | 送信できたかログで追えるか | 送信ログの確認 |
| 3 | スパム対策を入れるか | Turnstile確認 |
| 4 | MySQLへ接続できるか | MySQL接続エラー確認 |
| 5 | PDOで安全に保存するか | PDO接続の基本 |
AIに相談する時のメモ
AIに相談する時は、実際のDBパスワードや問い合わせ本文を貼らず、保存したい項目と目的だけを伝えます。
ロリポップのPHP問い合わせフォームについて相談します。
メール送信に加えて、MySQLにも受付記録を保存するか検討しています。
現在の状態:
例: PHPフォームでメール送信している / Turnstileは未導入 / MySQLは使えるプラン
保存したい理由:
例: 対応済み管理 / 履歴検索 / 送信ログ / スパム傾向確認
保存したい項目:
例: 送信日時、名前、メールアドレス、本文、対応ステータス
保存しない方がよさそうな項目:
例: 不要な個人情報、添付ファイル、管理者だけが知る情報
確認したいこと:
1. メールだけで足りるか
2. MySQL保存するなら先に決める項目
3. スパム対策と保存順
4. DB接続情報を安全に分ける方法
5. 管理画面や削除方法をどう考えるか
DBパスワード、管理画面URL、実際の問い合わせ本文、個人情報は伏せています。