MySQLデータベースからデータをインポートするPHPスクリプトがあり、whileループの助けを借りてその人に電子メールを送信します。電子メール本文で変数の値を使うことができないという点を除いて、すべてうまく動作します(代わりに、変数の名前が表示されます)。例、 "。$ first_name"と書くと私は電子メールの本文に "Johan"と言ってもらいたいのですが、これがデータベースのエントリの名前だとします。PHP - 電子メール本文に変数を追加する方法
$query= "SELECT email, firstname FROM $table WHERE country = '$country'";
$result= mysqli_query ($dbc, $query)
or die ('Error querying database.');
それともここに:
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);
は、私はこの問題はどちらかここでなければならないと思い、あなたのライン$query= "SELECT email, firstname FROM $table WHERE country = '$country'"
で
$first_name = $row['firstname'];
$last_name = $row['lastname'];
$email = $row['email'];
'$ body = $ _POST ['message'];'あなたはDBからフェッチしているものではなく、POSTされた値の内容をボディに取り込んでいます。 –
mysqli関数を使用している場合は、変数を不当にダンプするのではなく、セキュリティ上の目的で[パラメータをバインドする](http://php.net/manual/en/mysqli-stmt.bind-param.php)クエリ – cteski
はい、それは一種のポイントです。入力欄(本文)にメッセージを書き込むウェブサイトからメールを送信します。私は体に$ first_nameを書いて、結果として "John"を得ることができるようにしたい。それは可能ですか? – Lavonen