Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625

Уведомления пользователя по почте

04.03.2014, 21:38. Показов 1299. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Не имею ни малейшего представления, как можно решить следующую задачу. Давай те представим ситуацию, в которой Петя, добавляется в друзья к Васе. Вася получает уведомление на е-mail о заявке нового пользователя ему в друзья. Вася заходит в личный кабинет и одобряет заявку Пети. Но вот вопрос. А что если Петя, отменил, свою заявку к Васе? Передумал, добавляться к нему в друзья. А уведомление уже было отправлено на почту к Васе. Как быть? Как правильно реализовать уведомления на почту о добавлениях в друзья? Код необязателен. Интересует сам механизм.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.03.2014, 21:38
Ответы с готовыми решениями:

Уведомления для пользователя
В общем есть модуль новостей, в новостях есть комментарии. Если пользователь создал новость и в его новости кто-то написал...

Как провести пользователя по сайту без его уведомления
Здравствуйте, подскажите в каком направление копать. В крации мне нужно, что бы пользователь попал на нужный мне сайт и нажал там на...

Facebook, уведомления о постах пользователя
Стоит задача написать Telegram бота, который будет отправлять уведомления о новых постах пользователей из списка. Я покопался в Facebook...

8
16 / 16 / 6
Регистрация: 14.11.2013
Сообщений: 86
05.03.2014, 02:11
Поставить время на одобрение заявки.
При отмене заявки время = 0.
1
 Аватар для webphp
55 / 53 / 18
Регистрация: 05.08.2013
Сообщений: 327
05.03.2014, 07:10
А никак, да и зачем? Единственно что можно сделать предупредить Васю о том что заявка на добавление в друзья отменена, если Петя клацнет по кнопке отменить заявку.
1
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
05.03.2014, 15:16  [ТС]
Ко мне пришла следующая идея. Но для её реализации потребуется БД с таблицей, в которую мы будем добавлять новые "задачи". Когда Петя добавляется к Васе в друзья, мы не отправляем уведомление на e-mail сразу. А действуем по следующей схеме:

файл обработчик:
PHP
1
2
3
4
5
6
// получаем post переменные
// заносим в БД `table_friends`данные о новой заявке
// заносим в БД `table_tasks`новое событие о добавлении в друзья
sleep(900); // останавливаем выполнение скрипта на 15 минут
// проверяем, имеется ли толька что созданное событие в таблице `table_tasks`
// если имеется, то отправляем Васе уведомление на e-mail
Если за эти 15 минут, Петя не отменит заявку к Васе, то мы отправляем уведомление. Функция отмены заявки, также включает в себя отмену созданной задачи в таблице `table_tasks`.

Как такой вариант?

Добавлено через 6 минут
Меня интересует также следующий вопрос. Если я буду использовать таким образом sleep(900);, это значит, что обработчик у меня будет висеть в памяти 15 минут. Чревато ли это какими-нибудь последствиями? Так как пользователей, может быть много и если в памяти будет висеть множество подобных процессов, это наверное на что-то влияет.
0
 Аватар для Drygba
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
05.03.2014, 16:47
разбейте задачу на несколько отдельных команд.
первая будет добавлять таску в таблицу
вторая будет делать рассылку, только тех заданий у которых время создания более пятнадцати минут назад
третья будет, в случае отказа добавляться, удалять таску
Таким образом не надо не каких слипов.
1
 Аватар для webphp
55 / 53 / 18
Регистрация: 05.08.2013
Сообщений: 327
05.03.2014, 16:50
плохая идея на счет sleep.
Тогда уж по такой схеме нужно делать так:
1. Заносишь в таблицу данные с временем (time)
2. На часто посещаемой странице делаешь проверку (что то типа крона, ну или уже кроном воспользуйся)
3. В обработчике проверяешь все записи на время, к примеру если time + 15 минут меньше нынешнего времени, то.
4. Берешь ID юзера из таблицы table_tasks, дергаешь его email и отправляешь письмо.

Это наверное будет оптимальный вариант и самый правильный.

ПС. Пока писал уже опередили xD
1
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
05.03.2014, 16:52  [ТС]
webphp. Спасибо. Решил все таки воспользоваться CRON'ом, по тому же принципу.
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
05.03.2014, 16:57
Ну, а я просто не вижу смысла во всех этих ухищрениях. На мой взгляд лучше всего вариант с уведомлением о том, что заявка отменена. Немного хуже вариант с рассылкой в определенное время, т.е. при наступлении момента Х запускается скрипт, который собирает всю инфу с таблиц БД и рассылает ее кому нужно. Можно дать возможность пользователям самим указывать когда наступит для них этот момент Х.
1
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
05.03.2014, 17:13  [ТС]
Решил сделать следующим образом. На сервере, работает задача, которая каждые 10 минут запускает php скрипт. В нём мы смотрим, что у нас имеется в отдельной таблице БД, специально отведённой для нашей цели. Если в этой таблице находим запись, в которой Петя, отправил Васе заявку в друзья и если эта заявка была отправлена более 10 минут назад, то отправляем Васе уведомление на почту. И так, со всеми остальными записями.

Если Петя отменил свою заявку, то удаляем запись из БД. И наш скрипт, не отправит уведомление Васе, так как не найдёт соответствующую запись.

Добавлено через 3 минуты
И более того, для экономии ресурсов, мы проверяем, находится ли Вася в офлайне. Если да, то отправляем ему уведомление на почту.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.03.2014, 17:13
Помогаю со студенческими работами здесь

По поводу окошка уведомления о новой почте!
К примеру я меняю ID, но сообщение о новой почте выходит все равно по старой почте! Где настроить по какому ящику оповещение о новых...

Как получать по электронной почте уведомления о сохранении исполняемых файлов в общей папке?
Здравствуйте, форумчане! Помогите разобраться... Я столкнулся с проблемой, настраивая фильтр блокировки файлов на Windows Server 2003 R2:...

Как сократить время отправки уведомления по почте в CMS "Малый бизнес"?
Всем привет, у меня битрикс, ни как не могу добиться максимальной скорости получения письма клиентом о сделанном заказе, оповещение...

Доступ к почте зарегистрированного пользователя
Регистрирую пользователя через клас NotesRegistration. Потом нужно в ACL его почтового ящика добавить групу пользователей. Но прав то нету....

Разработка службы уведомления для пользователя
Добрый день: Реализую программу вывода уведомления(форма, которая появляется, как в месседжерах типо ICQ) через базу данных MySQL. К...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru