Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Дубли писем при подписке на топики

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

chaosstorm

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравсвтвуйте!
Проблема такая: Пользователи жалуются, что на e-mail приходит куча уведомлений об ответах, а ответ только один. Иногда приходит 4 и более уведомлений на тему, а ответов новых и нет вовсе.
 
Что делать?
 
Как исключить дублирование писем при подписке

(устраняем повторную подписку на тему)

в post.cgi  
в sub addreply {
меняем
           
Код:
$filetoopen = "$ikondir" . "forum$inforum/$intopic.mal";  
            open (FILE, "$filetoopen");  
            @maildata = <FILE>;  
            close (FILE);  
         
             
            if ($innotify eq "yes") {  
                open (FILE, ">$filetoopen");  
                    flock (FILE, 2);  
                print FILE "$inmembername|$emailaddress\n";  
                foreach $line (@maildata) {  
                    chomp $line;  
                    print FILE "$line\n";  
                    }  
                close (FILE);  
                }

 
на
           
Код:
$filetoopen = "$ikondir" . "forum$inforum/$intopic.mal";  
            open (FILE, "$filetoopen");  
            @maildata = <FILE>;  
            close (FILE);  
 
            if ($innotify eq "yes") {  
               
            $ok_mail = "";  
            $changemail = "no";  
            foreach $line_m (@maildata) {  
            chomp $line_m;  
            ($nick_m,$mail_m) = split(/\|/,$line_m);  
            if (($inmembername eq $nick_m) && ($mail_m eq $emailaddress)) {$ok_mail = "1"; $changemail = "no"; last;}  
            if (($inmembername eq $nick_m) && ($mail_m ne $emailaddress)) {$changemail = "yes"; last;}  
            } #end foreach  
            if (!$ok_mail) {  
            open (FILE, ">$filetoopen");  
            flock (FILE, 2);  
            if ($changemail eq "no") {  
            print FILE "$inmembername|$emailaddress\n";  
            foreach $line (@maildata) {  
            print FILE "$line";  
            }  
            }  
            else {  
            foreach $line (@maildata) {  
            chomp $line;  
            ($nick_m,$mail_m) = split(/\|/,$line);  
             if ($nick_m eq $inmembername) {print FILE "$inmembername|$emailaddress\n";}  
             else {print FILE "$line\n";}  
             }  
             }  
             close (FILE);  
             }  
             } #end if $innotify
 
 

Всего записей: 18 | Зарегистр. 04-12-2002 | Отправлено: 07:18 11-06-2003 | Исправлено: Xnom, 00:38 26-06-2003
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
chaosstorm
посмотри файл *.mal
сколько там записей? сам видел, что мэйл просто КУЧУ раз дублируется почему-то. видать скрипт корявый.

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 10:50 11-06-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chaosstorm
 

Цитата:
на e-mail приходит куча уведомлений об ответах, а ответ только один. Иногда  

 
А ты проверь, может одимн юзер зарегился два-три-четыре раза под разными никами с одним мылом (или с разными мылами, но на один адрес потом приходящими).
 
Плюс, если хак добавления стоит, то на мыло льется весь текст. Плюс проверь в подпрограмме редактирования, может при редактировании тебе на мыло тоже инфа шлется.
 
Shurik

Цитата:
сам видел, что мэйл просто КУЧУ раз дублируется почему-то. видать скрипт корявый.

 
Гм.. странно, не наблюдала.
 
chaosstorm
 
Ты и правда открой файл *.mal, если там один адрес два или более раза повторяется, но будет два или более уведомления.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 17:38 11-06-2003
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lynx
у меня щас весь форум локально, т.к. вот наконец-то только что мы переехали и... вот открываю чуть ли не первый попавшийся *.mal и вижу там от одного чела сразу 3-4 строчки подряд полностью одинаковые. Фигня какая-то. Надо будет заняться этим багом блин.
Да и самому смоделировать ситуацию - посмотреть, сколько писем привалит. Мне ж, самое интересное, никто ни разу не сказал, почему стока писем валится? лол... терпеливые.

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 19:05 11-06-2003
chaosstorm

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Простите ещё не совсем разбираюсь в IkonBoard! Где расположен этот файл *.mal?

Всего записей: 18 | Зарегистр. 04-12-2002 | Отправлено: 19:17 11-06-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chaosstorm
 

Цитата:
Где расположен этот файл *.mal?

 
В папке каждого форума, он начинается с номера темы и имеет расширение .mal - то есть таких файлов есть для каждой темы.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 19:34 11-06-2003
chaosstorm

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня нет таких файлов

Всего записей: 18 | Зарегистр. 04-12-2002 | Отправлено: 20:40 11-06-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chaosstorm
 

Цитата:
У меня нет таких файлов

 
покажи список файлов в директории /forum1/
например.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 21:29 11-06-2003
chaosstorm

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Список файлов:
 
.htaccess
1.pl
1.thd
index.html
lastpost.cgi
list.cgi

Всего записей: 18 | Зарегистр. 04-12-2002 | Отправлено: 23:41 11-06-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chaosstorm
тогда либо на темы этого форума никто не подписан, либо плохо смотришь %)
Цитата:
.htaccess  
1.pl  
1.thd  
index.html  
lastpost.cgi  
list.cgi


Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 23:55 11-06-2003
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
chaosstorm
раз есть галочка для подписки, значит должны и файлы *.mal создаваться...
сам подпишись на эту первую тему и посмотри - создасться или нет.

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 17:40 12-06-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если нет файлов *.mal, то не должно вообще никаких уведомлений приходить никому.

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 21:18 12-06-2003
chaosstorm

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так как же быть? Можно ли как исправить эту ошибку?
 
Добавлено
Не знаю может я говорю чушь, а может и прав, но мне кажется что дело здесь вот в чём.
 
Например пользователь создал тему и указал, что хочет подписаться на ответы к данной теме. В файл *.mal занесён его e-mail.
Далее зашёл другой пользователь и ответил на тему, также подписавшись на ответ. В *.mal занесён и его e-mail.
Первому пользователю приходит уведомление об ответе на его тему, он заходит читает ответ и хочет ответить(простите за тафталогию) на этот ответ, затем он пишет ответ и снова указывает, что он хочет подписаться на ответ. В файл *.mal сновая заносится его e-mail. Таким образом в файле *.mail его e-mail встречается уже два раза.
Если затем уже другой пользователь ответит на эту тему, то первому пользователю уведомление придёт уже два раза, так как его e-mail в файле *.mal указан два раза.
И так и дальше, в зависимости от того, сколько ты раз будешь изъявлять желание подписаться на данную тему.
 
Может столько уведомлений приходит именно поэтому?
Вы как считаете?
Остаётся только вопрос: как форум RU-board'a решил данную проблему. На этом форуме этого вроде не возникает! Если конечно я прав в причине данной проблемы ....

Всего записей: 18 | Зарегистр. 04-12-2002 | Отправлено: 17:18 13-06-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chaosstorm
если в папке /forum1/ нет файлом с расширением .mal, то письма отсылаться не будут.
Посмотри в других папках форума forum2, forum3 и т.д.

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 17:40 13-06-2003
chaosstorm

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[q][/q]
Это я уже давным давно понял! А что Вы думаете по поводу, изложенному в моём предыдущем сообщении!

Всего записей: 18 | Зарегистр. 04-12-2002 | Отправлено: 21:04 13-06-2003
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
chaosstorm

Цитата:
Остаётся только вопрос: как форум RU-board'a решил данную проблему.

не знаю как админы решали, но простая логика подсказывает - проверить - есть ли такой адрес в файле и если нет - записать...

----------
Metal Bands...

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 22:04 13-06-2003 | Исправлено: Shurik, 22:07 13-06-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chaosstorm
Всё ты верно говоришь.
Вот код на подписку

Код:
            $filetoopen = "$ikondir" . "forum$inforum/$intopic.mal";
            open (FILE, "$filetoopen");
            @maildata = <FILE>;
            close (FILE);
         
             
            if ($innotify eq "yes") {
                open (FILE, ">$filetoopen");
                    flock (FILE, 2);
                print FILE "$inmembername|$emailaddress\n";
                foreach $line (@maildata) {
                    chomp $line;
                    print FILE "$line\n";
                    }
                close (FILE);
                }

видно, что скрипт не проверяет есть ли там уже такое мыло или нет.
Решается очень просто, завтра выложу хак или Шурик быстрее сделает

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 23:54 13-06-2003
chaosstorm

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Будем ждать! Спасибо за помощь! Выложите пожалуйста хак здесь!

Всего записей: 18 | Зарегистр. 04-12-2002 | Отправлено: 01:57 14-06-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chaosstorm
 
Держи:
 
подписка и отписка на топики
 
Если человек подписан, то повторно он подписаться не сможет. По крайней мере у меня так работает.
 
Добавлено
Гм.. сори, потестила - дублятся записи в *.mal...
 
Пошла фиксить...
 
Добавлено
Но хак все равно поставь - позволяет отписаться  и вообще - красивый, рульный

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 03:43 14-06-2003 | Исправлено: lynx, 03:51 14-06-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
chaosstorm
lynx
в post.cgi
в sub addreply {
код, который я приводил выше, меняем на

Код:
            $filetoopen = "$ikondir" . "forum$inforum/$intopic.mal";
            open (FILE, "$filetoopen");
            @maildata = <FILE>;
            close (FILE);
         
             
            if ($innotify eq "yes") {
             
        #start &#239;&#240;&#238;&#226;&#229;&#240;&#234;&#232;
        $ok_mail = "0";
            foreach $line_m (@maildata) {
            chomp $line_m;
                ($nick_m,$mail_m) = split(/\|/,$line_m);
                if (($inmembername eq $nick_m)&&("$mail_m" eq "$emailaddress")) {$ok_mail = "1"}
                }#end foreach
                if ($ok_mail ne "1") {
                open (FILE, ">$filetoopen");
                  flock (FILE, 2);
                print FILE "$inmembername|$emailaddress\n";
                foreach $line (@maildata) {
                    chomp $line;
                    print FILE "$line\n";
                    }
                close (FILE);
                }
                }#end if $innotify

будет идти проверка на ники мыло. если такая связка уже есть, то новых добавлений не будет. Если человек поменял своё мыло, то подписка произойдёт

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 15:56 14-06-2003
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Дубли писем при подписке на топики


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru