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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки

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

Arkan

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Т.Е. если голосует мембер записывается его имя, а если гость - записывается IP.

Всего записей: 231 | Зарегистр. 29-12-2001 | Отправлено: 18:23 03-01-2003
Himera



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
угу...мне б тоже интересно было...

Всего записей: 255 | Зарегистр. 12-09-2002 | Отправлено: 19:40 03-01-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arkan
Himera
имхо, это не нужная вещь. Ну для чего?
Если очень хочется, в голосованиях убeрите все строки запрещающие гостям эту операцию, потом посмотрите как пишется запись проголосовавшего и сделайте подобно для гостя, заменив ник на IP + нужно ещё сделать проверку - если IP совпадает, то не позволять голосовать
 
А теперь о бесполезности: вот я сижу на динамическом IP и для меня накрутить ваше голосование - раз плюнуть...

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 21:19 03-01-2003
Arkan

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

Цитата:
потом посмотрите как пишется запись проголосовавшего и сделайте подобно для гостя, заменив ник на IP + нужно ещё сделать проверку - если IP совпадает, то не позволять голосовать  
 
Да как IP записывать то?
 

Цитата:
вот я сижу на динамическом IP и для меня накрутить ваше голосование - раз плюнуть...

А один мембер-один голос по твоему действенно?
 
Хорошо, надо ещё куки проверять проголосил гость или нет.

Всего записей: 231 | Зарегистр. 29-12-2001 | Отправлено: 21:52 03-01-2003
Xnom



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

Цитата:
Хорошо, надо ещё куки проверять проголосил гость или нет.
 
а ты не думаешь, что столь бесполезными (это имхо) вещами только заставишь тормозить форум?

Цитата:
Да как IP записывать то?  

А ты посмотри как IP записывается при добавлении сообщения гостем
 

Цитата:
А один мембер-один голос по твоему действенно?  

это же лучше чем "один гость - 10 голосов"

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 22:00 03-01-2003
Deeman

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arkan
открываеш топик.цги ищеш:

Код:
 
if ($inmembername eq "Guest") { $votesubmitbutton = " Guests are not allowed to Vote, Please Register."; }

и удаляеш эту строчку теперь гесты могут голосовать.. это самый простой вариант.. можно сделать и намного лучше

----------
Мой дом, мой затхлый склеп. В обрывках чьих-то писем.
От слёз почти ослеп. Боюсь прихода дня.
Лишь тени всё поймут, и выслушают тихо, ведь я один из них - тень самого себя. (с) Arcanar

Всего записей: 699 | Зарегистр. 10-10-2002 | Отправлено: 04:24 04-01-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа. Разрешить гостям голосовать, это просто.
 
В файле topic.cgi закомментить строчку:
 
if ($inmembername eq "Guest") { $votesubmitbutton = "$ibtxt{'6014'}"; }
 
то есть написать:
 
#if ($inmembername eq "Guest") { $votesubmitbutton = "$ibtxt{'6014'}"; }
 
 
Но Хном правильно сказал:
 
 
Цитата:
вот я сижу на динамическом IP и для меня накрутить ваше голосование - раз плюнуть...
 
 
 
 А как иначе то?? при любом голосовании так и есть.
 
 
Цитата:
Хорошо, надо ещё куки проверять проголосил гость или нет.

 
Ну а потом он вошел с работы или куки почистил? Нет, вот на руборде, хоть я в Тьмутаракань уедь, я не могу повторно голосовать. И это правильно.
 
 
 
Кстати, я  не нашла, Хном, ты что-то правил в полхаке?? Там есть проверка на IP по дефолту, я в код не лазила, просто разрешила гостям.  
 
 
Добавлено
НЕ успела...

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 04:47 04-01-2003
Xnom



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

Цитата:
Кстати, я  не нашла, Хном, ты что-то правил в полхаке?? Там есть проверка на IP по дефолту, я в код не лазила, просто разрешила гостям.

Проверки IP там нет, в файл *.vote пишется только ник.
А для чего проводить проверку IP если разрешено голосовать только мемберам?

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 06:51 04-01-2003
Arkan

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Deeman
lynx
Это самое простое, а как IP записать?

Всего записей: 231 | Зарегистр. 29-12-2001 | Отправлено: 08:49 04-01-2003
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arkan
 
 
Цитата:
как IP записать?
 
 
Ну вот как бы я написала, но слегка потестила, тестите, говорите, что не так.
 
в post.cgi
 
Заменить:
 

Код:
 
$filetomake = "$ikondir" . "forum$inforum/$intopic.vote";
$filetomake = &stripMETA($filetomake);
open(FILE, ">$filetomake");
flock(FILE, 2);
foreach $voters (@allvoters) {
chomp $voters;
print FILE "$voters\n";
}
print FILE "$inmembername";
close(FILE);
 
 

 
На:
 

Код:
 
 
$filetomake = "$ikondir" . "forum$inforum/$intopic.vote";
$filetomake = &stripMETA($filetomake);
$voteIP="$ENV{'HTTP_X_FORWARDED_FOR'}-$ENV{'REMOTE_ADDR'}-$ENV{'HTTP_PROXY_CONNECTION'}-$ENV{'HTTP_VIA'}";
open(FILE, ">$filetomake");
flock(FILE, 2);
foreach $voters (@allvoters) {
chomp $voters;
print FILE "$voters\n";
}
print FILE "$inmembername|$voteIP";
close(FILE);
 

 
 
Хоть там в одной строке теперь и две переменных, а в другом месте идет чтение файла, но оно идет по строкам, и эти две переменные при чтении должны по идее приниматься как одна - строка... Короче, тестите.
 
Счас опять программеры меня сожрут...
 
Хном, помотри, что там у тебя пишется при добавлении  голоса... Или уже не пишется... ?В страничке, с которой потом редирект идет - "Ваш голос добавлен"
 
 

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



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
Сейчас потести...
 

Цитата:
print FILE "$inmembername|$voteIP";
 
т.е. сохраняем ник и IP - это для всех...
Хорошо, а как устроить проверку голосовал или нет? Для гостя понятно - смотрим IP, а для мембера? Какое условие поставить?
ставить && - не катит
ставить ||  - и это не подходит
 
Добавлено
придумал.
ставить проверку - если гость, то смотрим IP, если мембер - на IP не обращаем внимание
 
Добавлено
 
Цитата:
Хном, помотри, что там у тебя пишется при добавлении  голоса...  
 
Сначала не понял о чём ты... там у меня была ошибка, сейчас всё исправленно

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 09:38 05-01-2003
Arkan

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

Код:
$filetoopen = "$ikondir" . "forum$inforum/$intopic.voteip";
       $filetoopen = &stripMETA($filetoopen);
        open(FILE, "$filetoopen");
        @allvotersip = <FILE>;
       foreach $votersip (@allvotersip) {
       chomp $votersip;
       if ($postipaddress eq $votersip) { &error("Voting&Вы уже проголосовали"); }
       }
        close(FILE);    
 
$filetoopen = "$ikondir" . "forum$inforum/$intopic.vote";
       $filetoopen = &stripMETA($filetoopen);
        open(FILE, "$filetoopen");
        @allvoters = <FILE>;
       foreach $voters (@allvoters) {
       chomp $voters;
       if ($inmembername eq $voters) { &error("Voting&You have already Voted in this poll."); }
       }
        close(FILE);

 
 
 

Код:
$filetomake = "$ikondir" . "forum$inforum/$intopic.voteip";
$filetomake = &stripMETA($filetomake);
open(FILE, ">$filetomake");
flock(FILE, 2);
foreach $votersip (@allvotersip) {
chomp $votersip;
print FILE "$votersip\n";
}
print FILE "$postipaddress";
close(FILE);  
 if  ($inmembername ne "Guest") {
 $filetomake = "$ikondir" . "forum$inforum/$intopic.vote";
$filetomake = &stripMETA($filetomake);
open(FILE, ">$filetomake");
flock(FILE, 2);
foreach $voters (@allvoters) {
chomp $voters;
print FILE "$voters\n";
}
print FILE "$inmembername";
close(FILE);}  

Т.Е. не записывается Guest в имена.


----------
Metal Форум всё о тяжёлой музыке

Всего записей: 231 | Зарегистр. 29-12-2001 | Отправлено: 18:33 05-01-2003
Xnom



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arkan
А ты тест этого провел? Всё нормально работает?
А как быть с такой вешью: я зареген - проголосовал, потом захожу под Гостем и опять могу голосовать... кривовато получается...

Всего записей: 778 | Зарегистр. 09-10-2002 | Отправлено: 23:27 05-01-2003
Arkan

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

Цитата:
А ты тест этого провел? Всё нормально работает?  
 
На локалке и на форуме, пока без проблем.
 
 
Цитата:
А как быть с такой вешью: я зареген - проголосовал, потом захожу под Гостем и опять могу голосовать... кривовато получается...
 
IP же проверяются всегда...

----------
Metal Форум всё о тяжёлой музыке

Всего записей: 231 | Зарегистр. 29-12-2001 | Отправлено: 12:50 06-01-2003
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум 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