phpmailer_subject№

195
25 августа 2018, 12:10

помогите пожалуйста, использую форму php mailer для отправки сообщений с формы. Задача - Что бы тема письма всегда была с числом +1. Постоянно продолжая последовательность. Пример "Заявка №1", "Заявка №2" и т.д. Через неделю например это будет "Заявка №150". Такое реально в php mailer? Спасибо за ответ и помощь. ( так как письма всегда идут от одного отправителя, одному отправителю, прим. "от юсера_1" к "юсеру_2" без разных тем очень сложно следить за входящей информацией).

<?php
$name = $_POST['user_name'];
$phone = $_POST['user_phone'];
$email = $_POST['user_email'];
$text_message = $_POST['user_textMessage'];
//Content
$mail->isHTML(true);                                  // Set email format to HTML
$mail->Subject = 'New Zayavka №';
$mail->Body    = '
    <h3>Заявка</h3><br>
    Имя: ' . $name . ' <br>
    Имейл: ' . $email . ' <br>
    Сообщение: ' . $text_message . ' <br>
    Телефон: ' . $phone . '';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
Answer 1

Вам нужно где-то хранить текущее значение счетчика. При создании письма считывать это значение, увеличивать на 1 и записывать обратно.

Варианты хранилища:

  • База данных. Это самый простой способ реализации. Тем более, что в БД уже реализована потокобезопасная работа с автоинкрементом
  • Внешний файл. Тут блокировки придется реализовывать самому
Answer 2

Решение с сессией:

<?php 
session_start();  
$id = $_SESSION['mail_subject_id'] ?? 1;
// ...
$mail->Subject = "Order#{$id}";
// ...
$_SESSION['mail_subject_id'] = $id + 1;

При недостаточном уровне персистентности сессий придётся пользоваться другим хранилищем: кеш(memcached, redis), база данных, файл и т.п.
Всё зависит от потребностей приложения.

READ ALSO
как устранить зависание GUI?

как устранить зависание GUI?

Как я понял в qt основной цикл событий начинается после

187
Разъясните смысл std::in_place, std::in_place_type, std::in_place_index для std::optional, std::variant, и std::any

Разъясните смысл std::in_place, std::in_place_type, std::in_place_index для std::optional, std::variant, и std::any

С какой целью они используются для std::optional, std::variant, and std::any? Каков принцип их работыЕсли можно, с примерами

164
Как прилинковать нестандартную версию protobuf используя cmake

Как прилинковать нестандартную версию protobuf используя cmake

Есть проект под arm который компилируется и собирается на х86ой машине (кросскомпиляция)Есть версия библиотеки protobuf собранная под arm по этой...

191