Файловый Архив

  • Неограниченное количество категорий и суб-категорий
  • Настройки прав доступа по группам
  • Настройки прав доступа по каждой категории
  • Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
  • Мультизагрузка файлов - SWFUploader
  • Добавление файлов с сервера
Подробности и история обновлений продукта в этой теме
 
 
 
 

 
 
Здесь скоро опять что то будет...
 
 
 
 
 
 
Loading

Вернуться   форум vBSupport.org > vBulletin > vBulletin 3.8.x > Хаки, моды и скрипты 3.8

Объявления
  • Изменения в правах
  • Каталог Фрилансеров
  • Добро пожаловать!
  • Premoderation
  • Новичкам!
  • For English speaking users
Ответ
 
Опции темы Опции просмотра
Старый 12.08.2009, 14:15   #1
Простоузер
Question вход пользователя с определённого ip

подскажите, как реализовать вход пользователя с определённым id только с определённого ip?
  Ответить с цитированием
Рекламка
Реклама на форуме
Старый 12.08.2009, 15:11   #2
Ghost
Гуру
 
Аватар для Ghost
на хук 'global_setup_complete' вешай модуль типа такого
PHP код:
if ($vbulletin->userinfo['userid'] == XXX AND ALT_IP != 'YYY'print_no_permission(); 
здесь вместо XXX вписывай id пользователя, вместо YYY -- разрешенный для него ip-адрес.
  Ответить с цитированием
Старый 12.08.2009, 15:27   #3
GiveMeABreak
Эксперт
 
Аватар для GiveMeABreak
Ghost, наверно так будет правельней
Цитата:
if ($vbulletin->userinfo['userid'] == XXX AND ALT_IP != 'YYY') { print_no_permission(); }
  Ответить с цитированием
Старый 12.08.2009, 15:39   #4
kerk
k0t
 
Аватар для kerk
без разницы =)
  Ответить с цитированием
Старый 12.08.2009, 15:43   #5
Ghost
Гуру
 
Аватар для Ghost
GiveMeABreak, это можно было записать даже так:
PHP код:
($vbulletin->userinfo['userid'] != XXX OR ALT_IP == 'YYY') OR print_no_permission(); 
что касается операторных скобок { и }, то их можно не использовать в ветвлениях и циклах в тех случаях, когда выполняться будет только один оператор. хотя лучше ставить -- для однообразия кода и упрощения его последующего чтения.
  Ответить с цитированием
Старый 12.08.2009, 18:13   #6
virty
Простоузер
спасибо ребят помогли=)
  Ответить с цитированием
Старый 14.08.2009, 12:32   #7
FlyAway
Простоузер
А как несколько ip разрешить + подсеть например.
  Ответить с цитированием
Старый 14.08.2009, 12:46   #8
Ghost
Гуру
 
Аватар для Ghost
Цитата:
Сообщение от FlyAway Посмотреть сообщение
как несколько ip разрешить
используй условие
PHP код:
in_array(ALT_IP, array('IP1''IP2''IP3')) 
Цитата:
Сообщение от FlyAway Посмотреть сообщение
подсеть
например, для подсети, адреса которой начинаются с '10.0.0'
PHP код:
preg_match('#^10\.0\.0\.(\d+)$#'ALT_IP
  Ответить с цитированием
Старый 14.08.2009, 14:33   #9
FlyAway
Простоузер
Так можно ж так зафигарить:

$usersId = array(1,2,3,4);
$ips = array('12.12.12.12', '12.12.12.13');
$subnets = array(
'#^10\.0\.0\.(\d+)$#',
'#^11\.0\.0\.(\d+)$#'
);

function in_subnet($ip, $subnet)
{
if (!sizeof($subnet))
{
return true;
}
$flag = false;
foreach ($subnet as $net)
{
if ( preg_match($net, $ip) )
{
$flag=true;
break;
}
}
return $flag;
}


//если id пользователя есть в списке
if ( in_array($vbulletin->userinfo['userid'], $usersId) )
{
//проверка на ips
$status = true;
if (sizeof($ips) )
{
$status = in_array( ALT_IP, $ips) ;
}
$status = $status && in_subnet(ALT_IP, $subnets);
if ($status==false)
{
//ошибка
print_no_permission();
}

}
  Ответить с цитированием
Ответ

Закладки

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



 
 

Текущее время: 14:16 25.05.2012. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.5.4
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd. Перевод: zCarot