ich PHP bin mit Daten zu E-Mail, die unten über ein HTML-Kontakt-Formular mit dem Code eingegeben wird:Fügen Sie mySQL DB Wert in PHP E-Mail-Formular Körper
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;
}
?>
Die E-Mail wird korrekt gesendet und enthält die in die Eingabefelder 'Name' und 'E-Mail' eingegebenen Werte, aber die Variable $ item_name ist leer? Die einzige Möglichkeit, es zum Laufen zu bringen, besteht darin, die Variable $ item_name in ein verstecktes Eingabefeld zurückzuspähen und dieses dann in die E-Mail $ body einzufügen. Gibt es einen leichteren Weg?
<input type="hidden" id="item_name" name="item_name" value="<?php echo $item_name; ?>"/>
EDIT:
ich entfernt haben:
$item_name = $_REQUEST['item_name'];
innerhalb der if-Anweisung, aber die $ item_name Variable noch nichts angezeigt wird, wenn die E-Mail über PHP gesendet wird?
'mysql_ *' Funktionen sind veraltet seit PHP 5.5 und entfernt in PHP 7, verwenden Sie 'mysqli_ *' Funktionen oder PDO statt – Panda
Versuchen Sie var_dump ($ item_name) zu verwenden, wenn Daten zurückgeben – Fil
var_dump ($ item_name) zeigt die korrekter Wert –