Ответы пользователя по тегу PHP
  • Почему не работает отправка сообщения с сайта?

    Vertenz
    @Vertenz
    Мечтетель
    Проверьте smtp ssl яндекса, и на всякий случай подключите язык
    <?php
    
    $name = $_POST['name'];
    $email = $_POST['email'];
    $msg = $_POST['message'];
    
    require_once('phpmailer/PHPMailerAutoload.php');
    $mail = new PHPMailer;
    $mail->CharSet = 'utf-8';
    //тут бы я добавил еще язык/ Путь, само собой, зависит от установки
    $mail->setLanguage('ru', '../vendor/phpmailer/phpmailer/language');
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;
    
    $mail->isSMTP(); 
    $mail->Host = 'imap.yandex.ru'; //тут скорее 'ssl://smtp.yandex.ru' проверьте на сайте яндекса
    $mail->SMTPAuth = true; 
    $mail->Username = 'artur**********@yandex.ru'; 
    $mail->Password = '***********; 
    $mail->SMTPSecure = 'ssl'; 
    $mail->Port = 465;
    
    $mail->setFrom('test@domain.ru', 'Иван Обрамов'); 
    $mail->addAddress('artur.sidorenko.02@mail.ru', 'Артур Сидоренко'); 
    //$mail->addAddress('ellen@example.com'); 
    //$mail->addReplyTo('info@example.com', 'Information');
    //$mail->addCC('cc@example.com');
    //$mail->addBCC('bcc@example.com');
    //$mail->addAttachment('/var/tmp/file.tar.gz'); 
    //$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); 
    $mail->isHTML(true); 
    
    $mail->Subject = 'Данные';
    $mail->Body = '
    Пользователь оставил данные
    
    Имя: ' . $name . '
    
    E-mail: ' . $email . ''; '
    
    Сообщение: ' . $message . '';
    
    if(!$mail->send()) {
    return false;
    } else {
    return true;
    }
    
    ?>
    Ответ написан
    4 комментария
  • Как объединить строки таблицы?

    Vertenz
    @Vertenz
    Мечтетель
    Прозвучит глупо, но лучший способ создать одну форму, но если никак, то вариантов много, и если не пользоваться сторонними библиотеками, фреймворками и тд, то...
    К сожалению, не очень понятно, сразу ли приходят все данные или нет и есть ли регистрация. Если нет, и например $Fam, $Nam, $Otch, $Email, $Data, $Tel приходят сначала, отправляются в базу, в базе им присваивается id (судя по скрину, он автогенерируется у вас), берем id (так как это последняя запись, то Select max(`id`) as `maxid` from `table`), после этот id присваивается пользователю и сохраняется в сессию (если без регистрации), дальше получаете $family, $auto и тд, и добавляете в таблицу где id = id. (например id 17)
    UPDATE table SET family = $family, auto = $auto WHERE id = 17;
    И так далее.

    Еще можно данные всех форм объединить на стороне пользователя (если нет перезагрузки страницы), то есть, собрать данные с разных форм в переменные и отправить их одним постом (не одной формой, так как этот вариант видимо не доступен для вас). Если используете во фронте vue или react, то там кучу возможность сохранить данные. Если нет, то главное чтобы не перегружалась страница.

    Вытаскивать данные в таком виде, как у вас, не получиться, так как если одновременно будет отправлено больше одной формы, то могут перемешаться очередность данных. Это если вдруг вы придете к все такой же, как у вас схеме, а потом будете вытаскивать данные с id++, и их объединять.

    Так же чтобы не мучиться, вы можете создать отдельный конфиг для дб, потом модели для ваших сущьностей (пользователь или что там у вас), и отдельно функции для работы с глобальными. Потом ловить post и распределять данные.
    Например
    Ответ написан
    5 комментариев