VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Надо было запретить повторную регу юзеров на форуме в локальной сети.
Собственно, проверяет ИП перед регистрацией в списке уже зареганных юзеров.
Простите за мое незнание движка, написано на скорую руку, чтоб не в никать в переменные булки. Когда буду писать для проекта большую ролевую систему - интегрирую с булкой это дополнение. А счас выкладываю что есть. Не судите строго.
Крайне полезная штука для локальных форумов.
в файле register.php найти:
PHP Code:
// pre-cache templates used by specific actions
$actiontemplates = array(
'requestemail' => array(
'activate_requestemail'
),
'none' => array(
'activateform'
)
);
и после добавить:
PHP Code:
$uname = имя пользователя БД;
$pwd = пароль;
$host = localhost;
$db = база банных;
$ip = $_SERVER["REMOTE_ADDR"];
$connect = @mysql_connect($host, $uname, $pwd) or die("DATABASE CONNECTION ERROR: Try again latter");
$mysql_select = mysql_select_db($db) or die(mysql_error());
$query = "SELECT * FROM user WHERE ipaddress = '".$ip."'";
$result = mysql_query($query);
if((mysql_num_rows($result) == 1) OR (mysql_num_rows($result) > 1))
{
unset ($uname, $pwd, $host, $db, $ip, $connect, $mysql_select, $query, $result);
echo ("<center><b>Вы уже зарегистрированы на форуме!!!</center></b>");
mysql_close();
exit;
}
snake007v, а тебе в голову не приходило что не у всех статические айпи??
OldEr
Специалист
Join Date: Jun 2007
Награды в конкурсах:
Posts: 4,731
Версия vB: 3.8.x
Пол:
Reputation:
Мастер 4230
Репутация в разделе: 2624
3
Quote:
Originally Posted by Тиджик
snake007v, а тебе в голову не приходило что не у всех статические айпи??
И что? Тогда можно вообще сказать, что все через прокси сидят. Человек делал для себя и выложил для всех. А умничать каждый может.
@snake007v
Знаток
Join Date: Aug 2007
Location: xakep land
Posts: 218
Версия vB: 4.0 Beta
Reputation:
Knowing 136
Репутация в разделе: 50
0
Quote:
Originally Posted by Тиджик
snake007v, а тебе в голову не приходило что не у всех статические айпи??
У меня в сети у всех 2,5 тысячи юзеров статический ип. Правка сделана именно для таких случаев. Если у тебе не подходит - не используй. А рассказывать какой ты продвинутый в IP протоколе можешь в другой теме. если кто-то толково впялит запрос к бд в код регистрации, использую переменные булки - буду благодарен.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,844
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20333
Репутация в разделе: 8468
2
snake007v, можно все это организовать без редактирования файла, простым плагином
долго это дело не ковырял, но можно и отдельный шаблон замутить, что бы выводило резулт не просто принтом на белую страницу, а как обычную страницу vB
можно так же добавить настройки к хаку (но это будет уже не плагин, а продукт), например если ты будешь регить тестовый аккаунт, а IP-шник твой и он уже есть в БД, тебе выдаст запрет на регистрацию
@snake007v
Знаток
Join Date: Aug 2007
Location: xakep land
Posts: 218
Версия vB: 4.0 Beta
Reputation:
Knowing 136
Репутация в разделе: 50
0
kerk, 1. спасибо за доведение до ума.
2. Не хотел вникать в переменные среды. Да, сложного ничего нет, но я не шарю в xml и страдаю нехваткой времени.
кстати, а что же настраивать то?
Last edited by snake007v : 09-07-2008 at 10:08 PM.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,844
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20333
Репутация в разделе: 8468
2
Quote:
Originally Posted by snake007v
но я не шарю в xml и страдаю нехваткой времени.
а там ненадо шарить в xml, форум сам за тебя все сделает, тебе просто нужно было добавить код в плагин и подключить его нужным хуком, хуки из файла регистер.пхп ты видел, раз ковырял этот файл
==
а времени потрачено на создание и тестирование этого плагина = 5 мин. =)
==
настраивать?
да хотя бы исключить user_ID админов из поиска в запросе
===
да, еще можно вместо print "<center><strong>You already registered!!!</strong></center>"; вбить в плагин print_no_permission();
тогда узер увидит стандартную страницу vB с запретом:
Quote:
Вы не авторизованы на форуме или не имеете доступа к этой странице. Это могло произойти по одной из нескольких причин:
............
............
............
можно перенаправить узера на любую страницу на форуме, можно сказать ему, какой у него ник, если найдется совпадение с его IP, да много чего можно =)
@Gostemilov
Специалист
Join Date: Jun 2007
Location: Одинцово Московская область
Награды в конкурсах:
Posts: 610
Версия vB: 3.8.4
Reputation:
Professional 630
Репутация в разделе: 495
0
А нельзя готовый продукт одним файлом? А то как-то непонятно, хватит ли одного импорта XML (у меня, кстати, после этого никаких изменений не произошло, для проверки зарегистрировался трижды с одного ИП) или надо еще что-то править. И если да, то где?
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,844
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20333
Репутация в разделе: 8468
1
Gostemilov, я где то на форуме выкладывал уже переделанный плагин (точно такой же), на компе не могу найти, (наверное) удалил за ненадобностью
там поправлен запрос в БД и некоторые мелочи
можно так же выдрать код плагина из хака "тестирование перед регистрацией", там он тоже есть и работает =)
===
нашел =)
Last edited by kerk : 02-16-2009 at 07:22 PM.
Reason: ooops... find it =)
@Gostemilov
Специалист
Join Date: Jun 2007
Location: Одинцово Московская область
Награды в конкурсах:
Posts: 610
Версия vB: 3.8.4
Reputation:
Professional 630
Репутация в разделе: 495
0
Работает, спасибо! Но возник дополнительный вопрос. В качестве сообщения об ошибке выбрана фраза alreadyregistered, которая по смыслу ну никак не подходит к данному случаю. Создал свою фразу, Double_IP_Registered, заменил в модуле одно на другое.
Получаю сообщение Phrase Double_IP_Registered not found
Понимаю, что все просто, но в чем тут загвоздка? Как можно подставить свою фразу?