Ru-Board.club
← Вернуться в раздел «Ikonboard v.2»

» Запретить гостям (Guest) создавать сообщения

Автор: Pups
Дата сообщения: 12.01.2002 21:24
Запретить создавать сообщения гостям, оставив только просмотр тем/сообщений


1. Крайне не рекомендуется для этой цели (или для других целей) удалять файл Guest.cgi. Конференция может начать глючить, кроме того, новый пользователь сможет рарегистрироваться под ником Guest.

2. Наиболее простой способ запрещения гостям оставлять сообщения - установка пароля прользователю Guest.
При этом необходимо на файл Guest.cgi выставить права 555, чтобы гости не имели возможность зайти в свой профиль и поменять пароль.

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

В файле post.cgi
и начинаем его править.

sub addnewthread

После:


Код: elsif ($inpassword ne $password) { &error("$ibtxt{'1428'}&$ibtxt{'1430'}"); }
Автор: Alexander Ipp
Дата сообщения: 12.01.2002 21:57
Pups
Снеси файл Guest.cgi в папке members
Либо введи проверку в post.cgi.

Добавлено
Второе цивильней.
Автор: Shurik
Дата сообщения: 12.01.2002 22:12
Alexander Ipp

Цитата:
Снеси файл Guest.cgi в папке members
снести - плохой совет.
Автор: Pups
Дата сообщения: 13.01.2002 13:56

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

Цитата:
проверку в post.cgi.
- что именно и где, не подскажешь?
Автор: pechalny
Дата сообщения: 13.01.2002 16:27
Alexander Ipp
LOL
Тебе геста и регнут
Автор: Ausw
Дата сообщения: 13.01.2002 18:30
Да зарегистрируй ты гуеста, дай пароль ему какой-нтиь, выставь пермишен 555 и дело с концом.
Автор: Pups
Дата сообщения: 13.01.2002 19:37
Спасибо, Ausw, именно так и получилось.
Автор: Guest
Дата сообщения: 14.01.2002 04:38
можно гуесту мыло свое посавить и пароль и никто под ним писать не сможет
Автор: Alexander Ipp
Дата сообщения: 14.01.2002 18:55
Pups
pechalny
Не проверял, честно. Этот когда-то давал то ли batva, то ли DimoN... Имхо.
pechalny Заблокировать в register.cgi, и дело с концом.
Ausw Хорошая идея!
Автор: lynx
Дата сообщения: 25.05.2003 03:44
Корректно обрабатывает запрет гостям на постнг, создание новых тем и создание новых голосований.
То есть выводим ошибку "Сори, гостям нельзя, идите региться", а не просто ставим гостю пароль и он не может понять, почему конфа ему пишет "Неправильные пароль". Так можно потерять хорошего юзера.

Итак, делаем бекап файла 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("Добавление сообщения&Гостям не разрешено оставлять сообщения"); }


Это все

Кто из программеров найдет дыру в моем варианте - свистите, буду рада
Автор: Shurik
Дата сообщения: 25.05.2003 13:23
lynx
а можно прикрутить ключик... Мол, если ключ = 0, то низя создавать и отвечать. Если 1 - можно... Можно даже без всяких равенств писать... по типу (() && ($key)) { }
А ключик изменять где-нибудь... Т.о. легко и непринужденно запрещать и позволять гостям писать.
Автор: lynx
Дата сообщения: 25.05.2003 18:09
Shurik


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


Не, ты давай пиши как у меня - все понятно, что на что менять на примере дефолтной конфы.
Автор: Shurik
Дата сообщения: 25.05.2003 18:37
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.

Вот и вся идея. Кто сделает?
Автор: Tahmasib
Дата сообщения: 17.04.2005 18:21
Хм.. я просто в админцентре снес профиль гостя и все... при попытке добавить сообщение ему (гостю) говорили, что он не зарегестрирован...
Автор: red27
Дата сообщения: 24.12.2005 15:38
lynx
Моё мнение, что лучше пресекать попытки "Гостей" в процедурах
newthread
reply
replyquote

Чтобы у них при нажатии на кнопку "Новая тема" или "Ответить" даже не возникало формочки для создания постинга.
Автор: drugold
Дата сообщения: 16.07.2006 08:13
Сделал все в точности как написано в шапке. Результата нет. При попытке создания гостем темы или ответа показывает стандартную форму с ошибкой:


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

Возможные причины для Создание темы Ошибка:
Неправильный пароль
Неправильное имя пользователя
Незарегистрированный Пользователь


В чем может быть проблема?
Автор: trew
Дата сообщения: 16.07.2006 12:47
drugold
Так оно и должно работать
Автор: drugold
Дата сообщения: 16.07.2006 12:53
В том-то и дело, что при доработке не так должно быть.


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


А работает так же как и было.
Автор: trew
Дата сообщения: 16.07.2006 13:23
drugold
Ну а строчка такая

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

Цитата:
sub addreply

После:

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

Добавляем:

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


Так я и сделал.
После, как я понял, означает ниже, ведь так?
Автор: trew
Дата сообщения: 17.07.2006 00:20
drugold
Попробуй эту строчку вот так написать:

Код: elsif ($inmembername eq "Guest") { &error("$ibtxt{'1432'}&$ibtxt{'9999'}"); }

Страницы: 1

Предыдущая тема: Хак PageNumber


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.