よくあるPHPメールフォームです。
HTMLフォームで送信者の名前や返信用メールアドレス、お問い合わせ内容などを入力してもらい、
PHPに入力した値を渡して送信します。
ファイル構成 form.html mail.php
PHP本体ファイルには、事前に「メールの件名」を設定する項目があります。
PHP
1// 管理者宛に送信されるメールのタイトル(件名) 2$subject = "";
この $subject = ""; の中身を、HTMLフォームの方で先に代入する方法は無いでしょうか?
【やってみたこと】
$_SESSION などを用いて出来ないかなぁと、思ったのですが、うまくいきませんでした。
html
1 2<!DOCTYPE HTML> 3<?php session_start(); ?> 4<html lang="ja"> 5<head> 6<title>サンプル</title> 7</head> 8<body> 9 10<?php $_SESSION['subject'] = "問い合わせ"; ?> 11 12<form method="post" action="mail.php"> 13 (中略) 14<input type="submit" value=" 確認 " /> 15<input type="reset" value="リセット" /> 16</form>
php
1// 管理者宛に送信されるメールのタイトル(件名) 2$subject = $_SESSION['subject'];
ご教授のほど、よろしくお願いいたします。
追記:2021年12月3日
【さらにやってみたこと】
HTMLファイルの冒頭に以下を追記しました
HTML
1<?php 2 session_start(); 3 $_SESSION['subject'] = "●●店についての問い合わせ"; 4?> 5<!DOCTYPE HTML> 6<html lang="ja"> 7<head> 8 (中略)
PHPファイルの最初の方に以下を追記しました。
もともとあった設定項目はコメントアウトしました。
PHP
11行目のすぐ下に追記しました 2 3<?php header("Content-Type:text/html;charset=utf-8"); ?> 4//(追記) 5<?php 6 session_start(); 7 $subject = $_SESSION["subject"]; 8?> 9 10設定する項目を上書きされないようコメントアウトしました。 11// 管理者宛に送信されるメールのタイトル(件名) 12//$subject = "";
【結果】
想定通りにならず、件名は空欄のままメールが送信されてきます。
(なんでやねん……これじゃダメなん……?)
回答6件
あなたの回答
tips
プレビュー