Ich habe ein PHP-Skript, das Daten aus einer MySQL-Datenbank importiert und sendet eine E-Mail an diese Personen mit Hilfe einer while-Schleife. Alles funktioniert einwandfrei, außer dass ich keine Variablenwerte im E-Mail-Body verwenden kann (stattdessen wird der Name der Variablen ausgedruckt). Beispiel, wenn ich ". $ First_name" schreibe. Ich möchte, dass der Text der E-Mail "Johan" sagt, wenn dies der Name des Eintrags in der Datenbank ist.PHP - Wie man eine Variable zum E-Mail-Body hinzufügt
if (isset($_POST['submit'])){
// About database
$user = "user";
$password = "password";
$host = "host";
$dbase = "dbase";
$table = "table";
// Connection to database
$dbc= mysqli_connect($host,$user,$password, $dbase)
or die("Unable to select database");
// Retrieve emails from database
$country = $_POST['country'];
$query= "SELECT email, firstname FROM $table WHERE country = '$country'";
$result= mysqli_query ($dbc, $query)
or die ('Error querying database.');
// Send the email
while ($row = mysqli_fetch_array($result)) {
// Write $first_name for recipients name
$first_name = $row['firstname'];
$last_name = $row['lastname'];
$email = $row['email'];
// About the email
$from = '[email protected]';
$subject = $_POST['heading'];
$body = $_POST['message'];
$speed = $_POST['speed'];
mail($email, $subject, $body, 'From:' . $from);
echo 'Email sent to: ' . $email. '<br>';
// Delay for speed regulation
sleep(3600/$speed);
}
}
mysqli_close($dbc);
Ich denke, das Problem muss entweder hier sein:
$query= "SELECT email, firstname FROM $table WHERE country = '$country'";
$result= mysqli_query ($dbc, $query)
or die ('Error querying database.');
Oder hier:
$first_name = $row['firstname'];
$last_name = $row['lastname'];
$email = $row['email'];
'$ body = $ _POST ['message'];' Sie füllen den Body mit dem Inhalt eines POSTed-Werts, nicht mit irgendetwas, das Sie aus der Datenbank abrufen. –
Wenn Sie mysqli-Funktionen verwenden, können Sie auch [batch your parameter] (http://php.net/manual/en/mysqli-stmt.bind-param.php) aus Sicherheitsgründen anstelle von Variablen willkürlich dumpen die Abfrage – cteski
Ja, es ist irgendwie der Punkt. Ich sende die E-Mail von einer Website, wo ich die Nachricht in einem Eingabefeld (Körper) schreibe. Ich möchte $ first_name in den Körper schreiben und "John" als Ergebnis erhalten. Ist das möglich? – Lavonen