为什么所有qrcode图像都发送给用户,一个用户应该获得qrcode图像

问题描述 投票:0回答:1

我有一个PHP脚本,用于向数据库中的所有电子邮件数据发送电子邮件。当我向所有用户发送电子邮件时,我生成一个QR码发送给每个用户。

但问题是每个用户都接受所有现有的QR码。每个用户应该收到一个QR码图像。

这是脚本:

if($email_list == "semua"){
    $query_email_list = mysqli_query($koneksi, "SELECT email FROM pengunjung");

    while($data_email = mysqli_fetch_array($query_email_list)){
        QRCode::png($data_email['email'], $tempdir. $data_email['email'].".png", $quality, $ukuran, $padding);
        $mail_body .= "<br><br><img src='http://besp.ga/prudential/admin/qr_code_generator/temp/".$data_email['email'].".png'>";
        $sent = mail($data_email['email'], $mail_subject, $mail_body, $mail_headers);
    }
}else{
    QRCode::png($data_email['email'], $tempdir. $email_list.".png", $quality, $ukuran, $padding);
    $mail_body .= "<br><br><img src='http://besp.ga/prudential/admin/qr_code_generator/temp/".$email_list.".png'>";
    $sent = mail($email_list, $mail_subject, $mail_body, $mail_headers);
}
php mysql loops while-loop
1个回答
1
投票

您正在迭代用户,并且在每次迭代时,您都将带有qrcode的新位添加到邮件正文中。所以第一个用户有一个qrcode的邮件正文,第二个用户 - 有两个,第三个 - 有三个等。

您需要将循环更改为以下内容:

    while($data_email = ...){
        QRCode::png($data_email['email'], $tempdir. $data_email['email'].".png", $quality, $ukuran, $padding);
        $qrcode_body = "<br><br><img src='http://server/path/to/".$data_email['email'].".png'>";
        $sent = mail($data_email['email'], $mail_subject, $mail_body . $qrcode_body, $mail_headers);
    }
© www.soinside.com 2019 - 2024. All rights reserved.