Получить данные из базы данных и использовать функцию mail в php - PullRequest
0 голосов
/ 27 февраля 2019

Я новичок в php и в настоящее время делаю проект

Я сохранил данные в базе данных, используя форму.

У меня есть функция почты, когда я нажимаю кнопку отправкиписьмо отправлено на указанный адрес электронной почты.Я использую библиотеку phpmailer.

Это моя почтовая функция

class mail 
{

    public function sendMail(){

    require 'vendor/autoload.php';

        $mail = new PHPMailer();  // Passing `true` enables exceptions or null without exception


    //Server settings
    $mail->SMTPDebug = 0;                                 // Enable verbose debug output
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'smtp.gmail.com';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'xyz@gmail.com';                 // SMTP username
    $mail->Password = 'xyz123';                           // SMTP password
    $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;                                    // TCP port to connect to

    //Recipients
    $mail->setFrom('xyz@gmail.com', 'xyz');
    $mail->addAddress('abc@gmail.com', 'abc');

    $mail->addCC('zxc@gmail.com');


    //Attachments
    $mail->addAttachment('lob.png', 'sample.png');         // Add attachments
       // Optional name

    //Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'Report';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';


    if (!$mail->send()) {
            return "Error sending message" . $mail->ErrorInfo;
        } else {
            return "Message sent!";
        }


}

}

Это мой код для хранения данных в базе данных в виде send.php

if(isset($_POST['submit'])){
$name = $_POST['name'];
$age = $_POST['age'];
$quality = $_POST['quality'];

$sql = "INSERT INTO user(name,age,quality) VALUES('$name','$age','$quality')";
}

Этомоя HTML-форма

<form class="quality" method="POST" action="send.php">
<label for="name">Name</label>
<input type = "text" class = "form-quality" name="name" value="" / >
<label for="age">Age</label>
<input type="text" class ="form-quality" name="age" value="" / >
<label for="quality">Quality</label>
<input type="ratio" class ="form-quality" name="quality" value="E" / >
<input type="ratio" class ="form-quality" name="quality" value="P" / >
</form>

1) Как получить данные из базы данных?
2) В функции почты ранее отправлял электронные письма на один или два идентификатора, но мне нужно, как при выборе «значение = E"из соотношения", он должен отправить на одно письмо, и если я выберу "значение = P", он должен отправить на другое письмо, основываясь на выбранных пользователем значениях, хранящихся в базе данных

Любой с лучшим ответом будет гораздо большемне нужна помощь

1 Ответ

0 голосов
/ 27 февраля 2019

Предполагая, что, когда вы сказали, что проект выполняется в образовательной среде, а не в профессиональных целях:

Когда вы получаете данные из формы в if(isset($_POST['submit'])), отправьте эти переменные в функцию sendMail какпараметры, затем внутри функции вы можете сделать переменную, используя ваши параметры, чтобы построить правильно сформированное сообщение, которое вы можете отправить в $mail->Body.

Внутри функции вы также можете проверить, что вы получили по радио.-вводной кнопкой было «E» или «P» и задайте другие значения (адрес электронной почты получателя) и передайте его на свой адрес addAddress.

Если это не школьный проект, вы ДОЛЖНЫ быть очень осторожны с тем, что вы отправляете, или вывставить в БД.Перед отправкой проверьте все, что вы получили в форме, и проверьте ссылки в комментариях об SQL-инъекции.

Это должен был быть комментарий, а не ответ, но у меня недостаточно репутации, чтобы комментироватьочень сожалею об этом.

...