でのMySQL DB値を含め、私は以下のコードを使用してHTMLコンタクトフォームから入力されたデータを電子メールで送信するためにPHPを使用しています:は、PHPのメールフォーム本体
HTML
<form action="<?php echo $_SERVER[PHP_SELF]; ?>" method="post" name="form" id="form">
<input type="text" id="name" name="name"/>
<input type="text" id="email" name="email"/>
<input name="submit" type="submit" title="Submit" value="Submit"/>
</form>
PHP
<?php
require 'connect.php';
$id = $_GET['id'];
$id = mysql_real_escape_string($id);
$query = "SELECT * FROM `items` WHERE `item_id`='" . $id . "'";
$result = mysql_query($query);
while ($fetch = mysql_fetch_assoc($result)) {
$item_id = $fetch['item_id'];
$item_name = $fetch['item_name'];
}
if (isset($_POST['submit'])) {
$to = "[email protected]";
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$item_name = $_REQUEST['item_name'];
$subject = "New Message";
$body = "Name: $name \n\n Email Address: $email \n\n Item Name: $item_name \n\n";
$sent = mail($to, $subject, $body);
echo 'Sent';
die;
}
?>
電子メールが正しく送信され、 '名前'と 'メール'の入力フォームフィールドに入力された値が含まれていますが、$ item_name変数が空白ですか?私がそれを働かせる唯一の方法は、$ item_name変数を非表示の入力フィールドにエコーし、それを電子メール$本体に含めることです。簡単な方法がありますか?
<input type="hidden" id="item_name" name="item_name" value="<?php echo $item_name; ?>"/>
編集:私は削除した
:
$item_name = $_REQUEST['item_name'];
if文の中
が、電子メールはPHPを介して送信されたときに$ ITEM_NAME変数は、まだ何も表示されませんか?
mysql_ *関数はPHP 5.5以降で廃止され、PHP 7では削除されました。mysqli_ *関数やPDOを代わりに使用しました – Panda
データがある場合はvar_dump($ item_name)を使用してください。 – Fil
var_dump($ item_name)正しい値 –