Перейти к содержимому


d654525

Регистрация: 23 дек. 2015
Offline Активность: 28 янв. 2019 11:03
-----

Мои сообщения

В теме: Ошибка в вычислении кроном: если слово не содержится в поле, то отправить письмо

08 Декабрь 2018 - 10:57

А вообще в 1 кроне возможно это делать, чтобы искалось в логе, отправлялось и писалось в лог? Ты говорил, что вычисление сразу отрабатывает, а потом пишет. Значит, это невозможно? Проще сделать рассылку через фильтр. Правильно думаю?

В теме: Ошибка в вычислении кроном: если слово не содержится в поле, то отправить письмо

07 Декабрь 2018 - 20:08

либо не в той последовательности все происходит. с текущим вычислением сначала отправляются шаблоны, а потом ищется или проставляется текст в логи. нужно наоборот:
сначала ищем текст (упоминание слова в поле), если не находим - отправляем шаблон и пишем в в лог

В теме: Ошибка в вычислении кроном: если слово не содержится в поле, то отправить письмо

07 Декабрь 2018 - 20:02

не ошибка. он неправильно работает

должно быть так:
2 действие. ищем в поле f21750 слово "Оплатить" или "оплатить" в любом регистре. ищем не полное совпадение, а упоминание.
3 действие. если во 2 действии упоминание не находится, нужно отправить шаблон письма и шаблон смс

происходит:
слово "оплатить" есть в тексте этого поля, но шаблон все равно отправляется

В теме: Ошибка в вычислении кроном: если слово не содержится в поле, то отправить письмо

07 Декабрь 2018 - 13:15

Просмотр сообщенияCbCoder (07 Декабрь 2018 - 12:19) писал:

А что за $line у вас в кроне? Что в этой переменной у вас находится?

там данные для вычисления.
в начале крона идет код. все вместе вот так выглядит

$result = data_select(541, 'status = 0 and id = 4209');
while($line = sql_fetch_assoc($result)) {
pr($line);
    $pupil = data_select_array(341, "id = {$line['f8341']}");
    $data = [];

   if($line['f10791'] == 0 && $line['f11201'] == 0) {
        echo "3<br>";
        $data['f8281'] = "Оплатить";
        $data['f21750'] = "Авто-email-смс: оплатить";        
        //письмо и смс отправлять, если в поле $line['Рассылки'] нет слова "оплатить"
            if(mb_strpos($line['f21750'], 'оплатить') != false) {
                send_template(3050, "`status`=0 AND `id` =" . $line['id']);
//              sendsms("Выставлен счет на оплату", $pupil['f3731']);
            echo "4<br>";
            }
    }