Есть сайт с видеоуроками и форумом. Видеоуроки добавляются через админку методом POST. Необходимо сделать рассылку тем, кто подписан при добавлении нового видео в админке. Хочу добавить чекбокс для подписки при регистрации нового пользователя и еще один в личном разделе для включения/отключения подписки. Также хочу добавить всплывающее окно с предложением подписки для тех, кто не подписан или отключил подписку, включая и тех кто вообще не зарегистрирован. Хотел сделать новое поле в таблице пользователей о состоянии подписки (0 - неподписан, 1 - подписан, новости будут идти на указанный пользователем при регистрации email), но подумал, а как же подпишутся гости (может кто не хочет регистрироваться, а хочет знать о добавлении нового контента). Для этого нужно будет создать еще одну таблицу, причем после подписки гостя окно будет вылезать опять. И что вообще случится, если вдруг подписанный гость, решит зарегистрироваться понятия не имею. Как вообще правильнее будет это организовать? Заранее спасибо за ответы.
гостям не надо рассылать. надо чтобы регались, подтверждали мыло, а потом рассылать. А то на тебя пойдут жалобы и в спамлист.
Да ничего не случится, надо просто при регистрации нового юзера удалять его мыло в таблице подписавшихся гостей, если есть.
у тебя в таблице пользователей есть какой-нибудь атрибут типа "группа"? можешь завести группу "неактивированные" или типа того. когда анонимный посетитель ввел свой email для подписки, заводи ему учетку типа "неактивированный". с точки зрения модуля рассылки он будет просто пользователем, с возможностью вкл/выкл рассылку по кодовой ссылке.
Я хочу сделать не очень назойливую форму подписки, которая будет фиксирована внизу экрана. Просто если подписка будет не доступна гостям, возможно потерять большое количество подписчиков, т.к. некоторым будет не нужна регистрация, но захотят получать по почте оповещения о новых видеоуроках. Я тут подумал, если сделать для подписчиков отдельную таблицу с колонками id и email. При регистрации если будет отмечен чекбокс подписки при нажатии на кнопку зарегистрироваться введенный email занесется в таблицу. При следующем входе на сайт будет проверяться нет ли адреса пользователя в новой таблице. Если нет, то вылезет форма подписки. Если на сайт заходит гость, то форма появляется в любом случае, но для приличия добавить кнопку типа уже подписан. Как вам такая мысль? Вот только не знаю, как сделать чтобы форма подписки для неподписанных на нее вылезала только при первом входе на сайт, а не каждый раз например при обновлении страницы или при переходе на другую. Можно ли это сделать при помощи php или придется повозиться с jquery?
тогда гостям подписка с подтверждением. т.е. сначала приходит письмо хотите мол, а потом уже если хочет - рассылка.
А зачем с подтверждением? Я хочу сделать для гостей маленькую форму с полем для ввода email и подтверждением. Если пользователь ввел свой email и нажал на кнопку, то он уже согласен на рассылку. Для пользователей я думаю будет достаточно в форме вывести только кнопку, email сам подставится из базы
вот — это важное замечание. первое письмо должно быть примерно таким: "Кто-то, возможно Вы, подписал этот email на получинеие новостей с … Если это ошибка, просто игнорируйте это письмо. Если Вы действительно хотите получать новости, пройдите по ссылке http_://blablabla.com/eprst.php?id=8272387381273287238847834" Иначе какой-нибудь шутник забомбит приятеля и это закончится попаданием в спам-листы.
Смысл понял. Я даже и не задумывался об этом. Спасибо за мыслю. И еще вопрос. Как правильнее вывести все емейлы подписчиков в скрипте отправки сообщения, через implode или цикл?
Может он себе в админке хочет их вывести? Или, например, под словом "вывести" понимает выбрать их все из б.д. и отправить на них ту самую рассылку
у меня на сайте при отправке любого комментария обработчик посылает мне уведомление на почту при помощи скрипта на php. А я хотел примерно такой же скрипт приделать в обработчик добавления видеоурока и засунуть туда в получателя все адреса из таблицы подписчиков. Разве это поле будет видно всем? Вы имеете ввиду, что необходимо в цикле отправлять сообщения каждому из подписчиков?
Да, каждому отдельно. Иначе они будут видеть адреса друг друга в своих почтовых программах - в поле кому они все будут перечислены.
Все работает, но пока только без подтверждения на почту для гостей. Вот только еще один вопрос возник. Чтобы пользователь подтвердил подписку, как я понимаю, я должен сделать ссылку, по которой передается email методом GET. В моем случае будет вот такая ссылка: Код (Text): profile.php?section=subscribe&id=1&action=subscribe&email=blabla@blabla.net Использование такой ссылки может повлечь к хреновым последствиям. Можно будет подписываться через адресную строку сколько угодно и без разницы на чьи емейлы. Как защититься от таких последствий? Предполагаю, что email нужно как то шифровать. Только как?
есть движки, где для подтверждений в таблице users заведено специальное поле activation_key. это не слишком накладно.
Добавил в таблицу подписчиков колонку для зашифрованных емейлов и еще одну для статуса подписки. Пользователь вводит свой емейл, скрипт шифрует емейл Код (Text): $email = crypt($email,346346); заносит результат вместе с емейлом в таблицу и отправляет письмо юзеру на почту в виде Код (Text): http://my.site/profile.php?section=subscribe&id=1&action=subscribe&key=3sg23564Iifx.UaWEF2 Пользователь жмет на ссылку и попадет на страницу, где из базы достается строка, где ключ равен ключу в ссылке. Если запрос проходит, то в колонку статуса уходит "1", т.е. емейл активен. Всем спасибо за помощь
Рандом тоже вариант. А есть вариант сделать скрипт удаления строки, в которой status=0, через определенный промежуток времени, чтобы не захламлять базу емейлами, которые неправильно введены? Или выгоднее будет оставить так, т.к. придется добавлять еще один столбец в таблицу с датой подписки?