Пропустить

Помошь со скриптом

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Свернуть Развернуть Правила форума Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

Помошь со скриптом

Сообщение nixit » 27.08.2011 10:44

Здравствуйте, возникла такая проблема: есть скрипт, цепляющий параметры текущей сессии и передающий их. Конкретно - elfchat.php, он цепляет имя залосненного пользователя и передаёт его чату. Для чего это делается, думаю ясно. Так вот, мне необходимо, чтобы только что зарегистрированные пользователи, входящие в группу "новые пользователи" не имели доступа к чату. Я так понимаю, это делается условием, допустим: если группа админ, модератор, пользователь - цепляет параметры, иначе - нет. Подскажите, как оно будет выглядеть, а то в php я не силён. :roll:
Заранее спасибо.
Последний раз редактировалось FEAR93 27.08.2011 11:45, всего редактировалось 1 раз.
Причина: Перенесено.

nixit
phpBB 2.0.3
 
Сообщения: 184
Зарегистрирован: 05.03.2011 2:24
Благодарил (а): 13 раз.
Поблагодарили: 4 раз.

Re: Помошь со скриптом

Сообщение Sheer » 27.08.2011 13:21

if ($user->data['user_new'])
{
   trigger_error($user->lang['NOT_AUTHORISED']);
} 
Изображение
Аватара пользователя
Sheer
Поддержка
Поддержка
 
Сообщения: 1552
Зарегистрирован: 18.11.2009 1:40
Откуда: Рига, Латвия (нелепая страна)
Благодарил (а): 9 раз.
Поблагодарили: 292 раз.

Re: Помошь со скриптом

Сообщение nixit » 27.08.2011 13:45

Сейчас попробую, мерси.
Что-то не могу сообразить, как не пробовал, результата нет. Куда вставить, код выглядит так:
<?php
define( 'ELFCHAT_PATH'  , "./chat/" ); // Путь до файлов, например: /home/mysite/www/forum/chat/
define( 'ELFCHAT_LOCATION', "chat/"); // Адрес редиректа, например: http://mysite/forum/chat/
define( 'YOUR_CHARSET', "utf-8"); // Кодировка форума




define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
//require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
//require($phpbb_root_path . 'includes/functions_module.' . $phpEx);

// Basic parameter data
$id 	= request_var('i', '');
$mode	= request_var('mode', '');

if ($mode == 'login' || $mode == 'logout' || $mode == 'confirm')
{
	define('IN_LOGIN', true);
}

// Start session management
$user->session_begin();
//$auth->acl($user->data);


include_once(ELFCHAT_PATH."kernel/elfchat.php");
if ( $user->data['user_id'] != 1 )
{

	Elfchat::Session()->start();
	if(!Elfchat::Session()->logined())
	{
		Elfchat::Login(
		$user->data['user_id'],
		Elfchat::Session()->IPDetect(),
		iconv(YOUR_CHARSET, "UTF-8", $user->data['username_clean']),
		iconv(YOUR_CHARSET, "UTF-8", $user->data['username'])
		);
		Header("Location: ".ELFCHAT_LOCATION."chat.php");
	}
	else
	{
		Header("Location: ".ELFCHAT_LOCATION."chat.php");
	}
}
else
{
	Header("Location: ".ELFCHAT_LOCATION."index.php");
}

?>


Да, и ещё как исключить ботов?..

Пробовал так:
<?php
define( 'ELFCHAT_PATH'  , "./chat/" ); // Путь до файлов, например: /home/mysite/www/forum/chat/
define( 'ELFCHAT_LOCATION', "chat/"); // Адрес редиректа, например: http://mysite/forum/chat/
define( 'YOUR_CHARSET', "utf-8"); // Кодировка форума




define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
//require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
//require($phpbb_root_path . 'includes/functions_module.' . $phpEx);

// Basic parameter data
$id 	= request_var('i', '');
$mode	= request_var('mode', '');

if ($mode == 'login' || $mode == 'logout' || $mode == 'confirm')
{
	define('IN_LOGIN', true);
}

if ($user->data['user_new'])
{
   trigger_error('$user->lang['NOT_AUTHORISED']');
} 
else
{
// Start session management
$user->session_begin();
//$auth->acl($user->data);


include_once(ELFCHAT_PATH."kernel/elfchat.php");
if ( $user->data['user_id'] != 1 )
{

	Elfchat::Session()->start();
	if(!Elfchat::Session()->logined())
	{
		Elfchat::Login(
		$user->data['user_id'],
		Elfchat::Session()->IPDetect(),
		iconv(YOUR_CHARSET, "UTF-8", $user->data['username_clean']),
		iconv(YOUR_CHARSET, "UTF-8", $user->data['username'])
		);
		Header("Location: ".ELFCHAT_LOCATION."chat.php");
	}
	else
	{
		Header("Location: ".ELFCHAT_LOCATION."chat.php");
	}
}
else
{
	Header("Location: ".ELFCHAT_LOCATION."index.php");
}
}
?>

Самый на мой взгляд "верный" вариант, но, новые пользователи всё равно заходят.

nixit
phpBB 2.0.3
 
Сообщения: 184
Зарегистрирован: 05.03.2011 2:24
Благодарил (а): 13 раз.
Поблагодарили: 4 раз.

Re: Помошь со скриптом

Сообщение Sheer » 27.08.2011 21:18

nixit писал(а):новые пользователи всё равно заходят.

Еще бы!
Ну вот если самому подумать...
скрипт, цепляющий параметры текущей сессии и передающий их.

А ты втыкаешь условие проверки еще до того, как параметры сессии будут переданы.
Написано же в коде (причем в люмом подобном скрипте)
// Start session management
$user->session_begin(); 

Что значит Start session management - перевести?
Короче надо так. Найти
$user->session_begin(); 

после вставить
if ($user->data['user_new'])
{
   trigger_error($user->lang['NOT_AUTHORISED']);
} 

и усё!
nixit писал(а):как исключить ботов?

Точно так же.
if ($user->data['is_bot']) 

значит тогда полное условие проверки
if ($user->data['user_new'] or $user->data['is_bot']) 

ЗЫ. Ковыряясь в файлах, включайте debug, если бы вы это сделали бы, ошибку наверняка бы выловили, получив сообщение
[phpBB Debug] PHP Notice: in file /elfchat.php on line 25: Undefined index: user_new
Изображение
За это сообщение автора Sheer поблагодарил:
nixit (28.08.2011 2:45)
Аватара пользователя
Sheer
Поддержка
Поддержка
 
Сообщения: 1552
Зарегистрирован: 18.11.2009 1:40
Откуда: Рига, Латвия (нелепая страна)
Благодарил (а): 9 раз.
Поблагодарили: 292 раз.

Re: Помошь со скриптом

Сообщение nixit » 28.08.2011 2:37

О, мерси, убежал пробовать.
Говорю же, в php разбираюсь очень плохо.(

nixit
phpBB 2.0.3
 
Сообщения: 184
Зарегистрирован: 05.03.2011 2:24
Благодарил (а): 13 раз.
Поблагодарили: 4 раз.


Вернуться в Для авторов (phpBB 3.0.x)

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы