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

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

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

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

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

Pups



Классический Пупс
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Запретить создавать сообщения гостям, оставив только просмотр тем/сообщений

 
1. Крайне не рекомендуется для этой цели (или для других целей) удалять файл Guest.cgi. Конференция может начать глючить, кроме того, новый пользователь сможет рарегистрироваться под ником Guest.
 
2. Наиболее простой способ запрещения гостям оставлять сообщения - установка пароля прользователю Guest.  
При этом необходимо на файл Guest.cgi выставить права 555, чтобы гости не имели возможность зайти в свой профиль и поменять пароль.
 
3. Корректно обрабатываем запрет гостям на постнг, создание новых тем и создание новых голосований. То есть выводим ошибку "Извините, гостям запрещено оставлять сообщения".  
Это необходимо для того, чтобы гость понял, что необходимо зарегистрироваться, а не сделал вывод о том, что конференция работает с ошибками. .  
 
В файле post.cgi  
и начинаем его править.  
 
sub addnewthread  
 
После:  
 

Код:
elsif ($inpassword ne $password)    { &error("$ibtxt{'1428'}&$ibtxt{'1430'}"); }  

 
Добавляем:  
 

Код:
elsif ($inmembername eq "Guest") {&error("Создание новой темы&Гостям не разрешено создавать новые темы");}  

 
 
 
sub addnewpoll  
(если установлен хак голосования)  
 
После:  
 

Код:
elsif ($inpassword ne $password) { &error("Создание нового голосования&Неправильный пароль"); }  

 
#У вас могут быть после &error  другие слова или символы вида $ibtxt{'число'}  
#Ориентируйтесь на то, что красным.  
 
Добавляем:  

Код:
 
elsif ($inmembername eq "Guest") {&error("Создание нового голосования&Гостям не разрешено создавать голосования")}  
 

 
 
sub addreply  
 
После:  
 

Код:
elsif ($inpassword ne $password) { &error("$ibtxt{'1432'}&$ibtxt{'1430'}"); }  

 
Добавляем:  
 

Код:
 
elsif ($inmembername eq "Guest") { &error("Добавление сообщения&Гостям не разрешено оставлять сообщения"); }  
 


Всего записей: 1193 | Зарегистр. 20-10-2001 | Отправлено: 22:24 12-01-2002 | Исправлено: lynx, 18:24 25-06-2003
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pups
Снеси файл Guest.cgi в папке members
Либо введи проверку в post.cgi.
 
Добавлено
Второе цивильней.

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 22:57 12-01-2002
Shurik



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

Цитата:
Снеси файл Guest.cgi в папке members  
снести - плохой совет.

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

Всего записей: 3171 | Зарегистр. 11-06-2001 | Отправлено: 23:12 12-01-2002
Pups



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

Цитата:
Снеси файл Guest.cgi в папке members  
- веселишься?

Цитата:
проверку в post.cgi.  
- что именно и где, не подскажешь?

Всего записей: 1193 | Зарегистр. 20-10-2001 | Отправлено: 14:56 13-01-2002
pechalny



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Alexander Ipp
LOL
Тебе геста и регнут

----------
cynicism is the only thing that keeps me sane

Всего записей: 1852 | Зарегистр. 29-07-2001 | Отправлено: 17:27 13-01-2002
Ausw



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Да зарегистрируй ты гуеста, дай пароль ему какой-нтиь, выставь пермишен 555 и дело с концом.

Всего записей: 7371 | Зарегистр. 12-07-2001 | Отправлено: 19:30 13-01-2002
Pups



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

Всего записей: 1193 | Зарегистр. 20-10-2001 | Отправлено: 20:37 13-01-2002
Guest

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

Отправлено: 05:38 14-01-2002
Alexander Ipp



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pups
pechalny
Не проверял, честно. Этот когда-то давал то ли batva, то ли DimoN... Имхо.
pechalny Заблокировать в register.cgi, и дело с концом.
Ausw Хорошая идея!

Всего записей: 1943 | Зарегистр. 20-08-2001 | Отправлено: 19:55 14-01-2002
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Корректно обрабатывает запрет гостям на постнг, создание новых тем и создание новых голосований.
То есть выводим ошибку "Сори, гостям нельзя, идите региться", а не просто ставим гостю пароль и он не может понять, почему конфа ему пишет "Неправильные пароль". Так можно потерять хорошего юзера.
 
Итак, делаем бекап файла post.cgi
и начинаем его править.
 
sub addnewthread
 
После:
 
elsif ($inpassword ne $password)    { &error("$ibtxt{'1428'}&$ibtxt{'1430'}"); }
 
Добавляем:
elsif ($inmembername eq "Guest") {&error("Создание новой темы&Гостям не разрешено создавать новые темы");}
 
 
 
sub addnewpoll
(если установлен хак голосования)
 
После:
 
 elsif ($inpassword ne $password)    { &error("Создание нового голосования&Неправильный пароль"); }
 
#У вас могут быть после &error  другие слова или символы вида $ibtxt{'число'}
#Ориентируйтесь на то, что красным.
 
Добавляем:
 
elsif ($inmembername eq "Guest") {&error("Создание нового голосования&Гостям не разрешено создавать голосования")}
 
 
 
sub addreply  
 
После:
 
elsif ($inpassword ne $password) { &error("$ibtxt{'1432'}&$ibtxt{'1430'}"); }
 
Добавляем:
 
elsif ($inmembername eq "Guest") { &error("Добавление сообщения&Гостям не разрешено оставлять сообщения"); }
 
 
Это все
 
Кто из программеров найдет дыру в моем варианте - свистите, буду рада

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



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lynx
а можно прикрутить ключик... Мол, если ключ = 0, то низя создавать и отвечать. Если 1 - можно... Можно даже без всяких равенств писать... по типу (() && ($key)) { }
А ключик изменять где-нибудь... Т.о. легко и непринужденно запрещать и позволять гостям писать.

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

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



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

Цитата:
Т.о. легко и непринужденно запрещать и позволять гостям писать.

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

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 19:09 25-05-2003
Shurik



Главком. флейма
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lynx
во-первых, дефолтной нет уже года 2.
во-вторых, я обычно идеи кидаю - меня ломает кодить. Но раз уж просишь:
в начало нужного скрипта (где будем запрещать или разрешать то или другое - т.е. ответы, голосования, создание тем, короче, post.cgi и postings.cgi, лол) пишем  
$key = 0; #запрет гостям
дальше я возьму твой кусок:
elsif (($inmembername eq "Guest") && (!$key)) {&error("Создание новой темы&Гостям не разрешено создавать новые темы");}  
т.е. если $key = 1, то условие не выполняется, значит можно создавать тему.
 
elsif (($inmembername eq "Guest") && (!$key)) { &error("Добавление сообщения&Гостям не разрешено оставлять сообщения"); }  
 
теоретически должно работать.
можно еще ввести несколько ключей разных, чтобы не на всё запрет ставить, а на что-то конкретное.
А потом если сделать эти $key1,2,3... глобальными переменными, то можно аж в админцентре енто дело изменять!
Ну а поскольку ты у нас любишь урезать глоб-ые переменные, то подключать соответствующий файлик только в двух скриптах: post.cgi да postings.cgi.
 
Вот и вся идея. Кто сделает?

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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хм.. я просто в админцентре снес профиль гостя и все... при попытке добавить сообщение ему (гостю) говорили, что он не зарегестрирован...

Всего записей: 1 | Зарегистр. 17-04-2005 | Отправлено: 19:21 17-04-2005
red27



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lynx
Моё мнение, что лучше пресекать попытки "Гостей" в процедурах
newthread
reply
replyquote
 
Чтобы у них при нажатии на кнопку "Новая тема" или "Ответить" даже не возникало формочки  для создания постинга.

Всего записей: 358 | Зарегистр. 25-04-2003 | Отправлено: 16:38 24-12-2005
drugold



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Сделал все в точности как написано в шапке. Результата нет. При попытке создания гостем темы или ответа показывает стандартную форму с ошибкой:
 

Цитата:
Определенные причины для Создание темы Ошибка:  
Неправильный пароль  
Вы хотите получить доступ к форуму - Файлы помощи?  
 
Возможные причины для Создание темы Ошибка:  
Неправильный пароль  
Неправильное имя пользователя  
Незарегистрированный Пользователь

 
В чем может быть проблема?

Всего записей: 74 | Зарегистр. 07-05-2005 | Отправлено: 09:13 16-07-2006 | Исправлено: drugold, 09:19 16-07-2006
trew

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

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 13:47 16-07-2006
drugold



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В том-то и дело, что при доработке не так должно быть.
 

Цитата:
3. Корректно обрабатываем запрет гостям на постнг, создание новых тем и создание новых голосований. То есть выводим ошибку "Извините, гостям запрещено оставлять сообщения".  
Это необходимо для того, чтобы гость понял, что необходимо зарегистрироваться, а не сделал вывод о том, что конференция работает с ошибками. .  

 
А работает так же как и было.

Всего записей: 74 | Зарегистр. 07-05-2005 | Отправлено: 13:53 16-07-2006 | Исправлено: drugold, 13:55 16-07-2006
trew

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
drugold
Ну а строчка такая

Код:
elsif ($inmembername eq "Guest") { &error("Добавление сообщения&Гостям не разрешено оставлять сообщения"); }  
 
  есть?
Где она стоит?

Всего записей: 716 | Зарегистр. 15-11-2003 | Отправлено: 14:23 16-07-2006
drugold



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

Цитата:
sub addreply  
 
После:  
 
elsif ($inpassword ne $password) { &error("$ibtxt{'1432'}&$ibtxt{'1430'}"); }  
 
Добавляем:  
 
elsif ($inmembername eq "Guest") { &error("Добавление сообщения&Гостям не разрешено оставлять сообщения"); }  
 

 
Так я и сделал.
После, как я понял, означает ниже, ведь так?

Всего записей: 74 | Зарегистр. 07-05-2005 | Отправлено: 18:17 16-07-2006 | Исправлено: drugold, 18:18 16-07-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Ikonboard v.2 » Запретить гостям (Guest) создавать сообщения


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru