Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];

Вниз

Помогите сделать уведомление об ответе   Найти похожие ветки 

 
@!!ex ©   (2009-02-22 11:56) [0]

Подкручиваю движок форума Антона и Керка.
Хочу сделать возможность уведомлять об ответе, но мало опыта и знаний php и вообще веб программирования.
Подскажите, как сделать?


 
Eraser ©   (2009-02-22 12:08) [1]

см. функцию mail().


 
Anatoly Podgoretsky ©   (2009-02-22 12:14) [2]

> @!!ex  (22.02.2009 11:56:00)  [0]

Ну посылай сразу в два адреса, ответ и уведомлениею.


 
antonn ©   (2009-02-22 15:52) [3]


> @!!ex ©   (22.02.09 11:56)

если на хосте недоступен mail(), то можно через SMTP честно отправлять, только ящик нужен реальный (я использую админский с того же хоста). Поищи модули "SMTP - PHP SMTP class" и "PHPMailer" (первый инклудится во втором)
PHPMailer - класс для передачи электронной почты, позволяющий, в частности, вкладывать в сообщение несколько файлов, посылать копии CC и BCC, устанавливать атрибут REPLY-TO, использовать в сообщениях HTML, работать с резервными SMTP-серверами, переносить строки по словам. Он может посылать сообщения с через sendmail, PHP mail() или непосредственно по протоколу SMTP. Методы основаны на популярном серверном компоненте AspEmail.
а собсно вот он - http://phpmailer.codeworxtech.com/

Так же вероятно у тебя встанет проблема с большим потоком (мало ли, ветка раздуется и много подписчиков будет), тут уж придется как то разруливать (как вариант - ограничить пользователю количество подписок, надо бы глянуть как в IPB это разрулили)


 
antonn ©   (2009-02-22 15:53) [4]


> @!!ex ©   (22.02.09 11:56)

багу с $pdata2["thread_locked"] подправил правильно? :)


 
antonn ©   (2009-02-22 15:58) [5]

и по самой идее можно двумя (на вскидку :)) путями пойти. Создать в таблице тем поле типа TEXT и заносить туда через разделители user_id (когда юзер хочет подписаться). При ответе выбираешь это поле, перегоняешь в массив или сразу делаешь запрос через user_id IN(), получаешь список юзеров и в цикле штампуешь им письма. Геморр в соблюдении валидности поля содержащего ИД юзеров.
Можно завести новую табличку (user_id, thread_id), куда заносить ИД юзера и ИД темы, одним легким движением выбирать всех юзеров дял нужной темы (так же как все темы для юзера), в принципе вариант получше, вот только большая может быть она в теории :) добавить индексов и тормозить почти перестанет :)


 
@!!ex ©   (2009-02-22 16:40) [6]

> [5] antonn ©   (22.02.09 15:58)

Второй вариант для меня слишком сложен, я в базах мало шарю.
По поводу первого:
зачем соблюдать валидность user id? просто на запрос невалидного id будет пустой результат выборки, значит можно игнорить.


 
antonn ©   (2009-02-22 17:04) [7]

а первое еще более сложное, чем второе (кстати, первым вариантом сделана система избранного, не знаю, зачем я ее клепал в таком стиле :) )

Во втором случае ты подписывая юзера заносишь в новую табличку user_id/thread_id:
sql_insert($db_pref."podpiska",array("user_id","thread_id"),array($user_id ,$thread_id));

при ответе в теме выполняешь запрос:
$result = dbquery("SELECT u.* FROM ".$db_pref."podpiska pd
  LEFT JOIN ".$db_pref."users u ON u.user_id=pd.user_id
  WHERE pd.thread_id="$thread_id"");
 if(dbrows($result)){
  postu = sql_array($result);
  for($i=0; $i<count($postu); $i++){
   //echo $postu[$i]["username"];
  }
 }
}


 
antonn ©   (2009-02-22 17:09) [8]


> зачем соблюдать валидность user id? просто на запрос невалидного
> id будет пустой результат выборки, значит можно игнорить.
>

чтобы в поле юзер не задваивался, как пример. Я регулярками по базе проверял, а регулярки не самый быстрый способ фильтра в мускле :)
Все равно с доп. табличкой будет быстрее написать, чем переписать готовый favor.inc.php (а избранное ведь обратная система, к юзеру привязываются темы, тебе надо наоборот), и вероятно быстрее будет работать.

Подразберись немного в базах и ПХП, он очень легкий язык, после дельфи как по маслу идет, а базы и в африке базы :)



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
15-1234684978
Marser
2009-02-15 11:02
2009.04.26
КПК Asus MyPal A696


3-1219951541
Евгений Р.
2008-08-28 23:25
2009.04.26
Изменение текущего значения генератора


15-1235110897
Дмитрий С
2009-02-20 09:21
2009.04.26
Почему не работает SwitchDesktop ?


2-1237202296
Yellow_D
2009-03-16 14:18
2009.04.26
Ошибка запуска Delphi. Как лечить?


4-1208862881
kalexi
2008-04-22 15:14
2009.04.26
Проблема с SetLayeredWindowAttributes





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский