PhpBBIdentity — авторизация юзеров PhpBB3

Выкладываем свои наработки
Аватара пользователя
samdark
Администратор
Сообщения: 8817
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение samdark » 2011.05.05, 16:07

Вот до этого я не добрался…

Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение RSol » 2011.05.18, 17:21

Сделал расширение которое умеет:
* login
* logout
* user_add
* user_delete
* change_password
* user_update
* loggedin

Подключение в секции компонентов:

Код: Выделить всё

...
        'phpBB'=>array(
            'class'=>'ext.phpBB.phpBB',
            'path'=>dirname(dirname(dirname(__FILE__))).'/forum/',
            'php'=>'php',//default
            'user_table'=>'phpbb_users',//default
        ),
...
 
Использование:

Код: Выделить всё

Yii::app()->phpBB->login($user->phpBBLogin,$this->password);
 
и.т.д.

P.S. Для корректной работы необходимо в настройках форума "Общие - Регистрация пользователей" отключить опцию "Активация аккаунта".
Вложения
phpBB.7z
папка компонента
(3.02 КБ) 644 скачивания

Аватара пользователя
aZlo
Сообщения: 15
Зарегистрирован: 2010.12.29, 15:21
Откуда: Moscow

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение aZlo » 2011.08.03, 01:11

RSol , большое спасибо за расширение очень сильно пригодилось.
Как в прочем и Sam Dark'у за авторизацию.

Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение RSol » 2011.08.03, 07:48

aZlo писал(а):RSol , большое спасибо за расширение очень сильно пригодилось.
Как в прочем и Sam Dark'у за авторизацию.
Обращаетесь. :-)

Stepan
Сообщения: 23
Зарегистрирован: 2010.09.09, 18:48

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение Stepan » 2011.08.09, 20:21

RSol, не получается воспользоваться твоим расширением:

1. Форум на sqlite 3.0.9, инсталл чистый. Регистрация пользователей выключена.
2. Когда делаю вызов user_add(передаю первые 3 параметра), сначала такой набор ошибок(файлы на месте и доступ к ним тоже):

Код: Выделить всё

[phpBB Debug] PHP Warning: in file /home/yii-1.1.8/framework/YiiBase.php on line 421: include(utf_normalizer.php) [function.include]: failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /home/yii-1.1.8/framework/YiiBase.php on line 421: include() [function.include]: Failed opening 'utf_normalizer.php' for inclusion (include_path='.....')

General Error
SQL ERROR [ sqlite ]

SQL logic error or missing database [1]
 
3. Но пользователь на форум добавляется(возможно криво, обычный логин на форуме не срабаывает пароль в user_add() на прямую пишу "123456"), дальнейший автологин через login ествественно тоже не срабатывает из-за ошибок.

Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение RSol » 2011.08.10, 11:44

Была у меня как-то такая проблема.

Как решил убей не помню... :-(

Попробуйте вот так:

Код: Выделить всё

public function init()
    {
        if(!$this->path)
            throw new CException("Don't set forum path");

        Yii::import($this->path.'/includes/utf/utf_normalizer.php');

        $this->_phpbb = new phpbbClass($this->path, $this->php);
    } 
хотя не уверен

Stepan
Сообщения: 23
Зарегистрирован: 2010.09.09, 18:48

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение Stepan » 2011.08.10, 15:12

RSol писал(а):Была у меня как-то такая проблема.

Как решил убей не помню... :-(

Попробуйте вот так:

Код: Выделить всё

public function init()
    {
        if(!$this->path)
            throw new CException("Don't set forum path");

        Yii::import($this->path.'/includes/utf/utf_normalizer.php');

        $this->_phpbb = new phpbbClass($this->path, $this->php);
    } 
Спасибо, на счет импорта думал не самое лучшее решение, потому что мало ли что оно там еще захочет подключить, Yii::import('webroot. ... .utf_normalizer') убрал warnings, теперь видимо осталась проблема самого phpBB с sqlite -> SQL logic error or missing database [1]

Stepan
Сообщения: 23
Зарегистрирован: 2010.09.09, 18:48

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение Stepan » 2011.08.10, 19:11

Вобщем с sqlite не будет работать.

Аватара пользователя
usualdesigner
Сообщения: 119
Зарегистрирован: 2011.08.08, 13:23
Откуда: Киев, Украина
Контактная информация:

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение usualdesigner » 2011.12.16, 11:16

bzz писал(а):аа, все. разобрался.
еще бы как-нибуть сделать, что бы оно логинилось и на форуме сразу. :)

Подскажи, КАК разобрался? А то у меня проблема аналогичная, победить не могу никак...все это же сообщение "Конфигурация объекта должна быть представлена массивом, содержащим элемент "class". " Тут подробно http://img1.uploadscreenshot.com/images ... 7-orig.png

Werewolf
Сообщения: 98
Зарегистрирован: 2010.02.27, 14:37
Контактная информация:

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение Werewolf » 2012.01.19, 23:06

usualdesigner писал(а):Подскажи, КАК разобрался? А то у меня проблема аналогичная, победить не могу никак...все это же сообщение "Конфигурация объекта должна быть представлена массивом, содержащим элемент "class". " Тут подробно http://img1.uploadscreenshot.com/images ... 7-orig.png

Код: Выделить всё

'forumDb'=>array(
            'connectionString' => 'mysql:host=localhost;dbname=phpbb',
            'emulatePrepare' => true,
            'username' => 'phpbb',
            'password' => 'пароль',
            'charset' => 'utf8',
            'tablePrefix' => '',
            'class' => 'CDBConnection',
        ),
 
Вот тут нужно не забыть class указать, так впрочем для всех новых соединений с базой в Yii.

Аватара пользователя
jedi
Сообщения: 82
Зарегистрирован: 2010.12.01, 08:49

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение jedi » 2012.04.17, 09:38

интересно
joomla->drupal->yii

Аватара пользователя
jedi
Сообщения: 82
Зарегистрирован: 2010.12.01, 08:49

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение jedi » 2012.04.17, 14:47

Не помогает (база MySQL)
RSol писал(а):Была у меня как-то такая проблема.

Как решил убей не помню... :-(

Попробуйте вот так:

Код: Выделить всё

public function init()
    {
        if(!$this->path)
            throw new CException("Don't set forum path");

        Yii::import($this->path.'/includes/utf/utf_normalizer.php');

        $this->_phpbb = new phpbbClass($this->path, $this->php);
    } 
вспомните пожалуйста
joomla->drupal->yii

Аватара пользователя
jedi
Сообщения: 82
Зарегистрирован: 2010.12.01, 08:49

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение jedi » 2012.04.18, 15:28

Проблема в том, что экстеншн цепляет class User (от phpbb), но класс User уже используется в проекте. И тут ошибка возникает
joomla->drupal->yii

Аватара пользователя
Kuklovod
Сообщения: 211
Зарегистрирован: 2011.11.22, 08:15

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение Kuklovod » 2012.04.27, 11:40

Может кто-нибудь подскажет как сделать совместную авторизацию Yii и phpBB?

swoop
Сообщения: 3
Зарегистрирован: 2012.09.10, 12:06

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение swoop » 2012.09.10, 12:26

RSol, спасибо за расширение. Такой вопрос: у меня нормально работают функции: user_add, user_delete, change_password, user_update,
а с login, logout, loggedin проблемы. Что может быть причиной? Никаких ошибок я не получаю. Если при авторизации сделать:

Код: Выделить всё

echo Yii::app()->phpBB->login($this->username,$original_pas);
exit; 
Результат будет SUCCESS. Но при переходе в форум пользователь не авторизован.
Соответственно при logout - не выходит, а loggedin возвращает FAIL даже если я авторизовался напрямую через форум.

Аватара пользователя
RSol
Сообщения: 325
Зарегистрирован: 2010.05.07, 08:36
Откуда: Северодонецк, Украина
Контактная информация:

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение RSol » 2012.09.10, 12:32

Я уже совсем не помню, что там было и как. И, к сожалению, совершенно нет времени на разбор полета. :-(

Мне часто пишут и в личку по поводу этого расширения, но ....

Попробуйте сами разобраться и потом отписать здесь, я буду преочень благодарен. :-)

swoop
Сообщения: 3
Зарегистрирован: 2012.09.10, 12:06

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение swoop » 2012.09.10, 22:18

У меня проблемы возникали по двум причинам:
1) Неправильно настроенные куки на форуме ( неверно указанный домен)
2) Использование функции loggedin(). Если её не вызывать - всё работает отлично. Но при её вызове в куках изменяется ид юзера, и на форум попадаю неавторзованным. Думаю, эти строчки к этому причастны:

Код: Выделить всё

$this->init(false);
$user->session_begin();
Вместо loggedin() юзаю Yii::app()->user->isGuest

Аватара пользователя
ElisDN
Сообщения: 5043
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение ElisDN » 2013.01.04, 19:42

RSol писал(а):Попробуйте сами разобраться и потом отписать здесь, я буду преочень благодарен. :-)
Набрался смелости и написал модуль для интеграции в Yii с использование вашего расширения.

Аватара пользователя
Zzevvsess
Сообщения: 100
Зарегистрирован: 2011.08.19, 21:19
Откуда: Уральск
Контактная информация:

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение Zzevvsess » 2013.01.05, 11:02

Я вот так вышел из положения.

Код: Выделить всё

    $post_data = array(
        'username' => $arr[0],
        'password' => $arr[1],
        'autologin' => 1,
        'login' => 'Вход',
        'redirect' => 'index.php',
        'sid' => 'dae7a979b7814c37be6e0734af1acc4f',
        );
    
    $ch = curl_init();
    // Стандартные настройки
    curl_setopt($ch, CURLOPT_URL, 'http://'.$_SERVER['HTTP_HOST'].'/forum/ucp.php?mode=login');
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT,
        'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13');
    
    
    // указываем, что у нас POST запрос и передаем массив с данными
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    
    // получаем HTML в качестве результата
    $output = curl_exec($ch);
    // закрываем соединение 
    curl_close($ch);
    
    // Парс куков
    // Устанавливаю куки
            preg_match_all('#phpbb3_mr7se_k=([A-z0-9]+);#',$output,$out);
            foreach($out[1] as $item){
                setcookie('phpbb3_mr7se_k',$item,time()+(60*60*24*30),'/',$_SERVER['HTTP_HOST']);
            }
            preg_match_all('#phpbb3_mr7se_u=([A-z0-9]+);#',$output,$out);
            foreach($out[1] as $item){
                setcookie('phpbb3_mr7se_u',$item,time()+(60*60*24*30),'/',$_SERVER['HTTP_HOST']);
            }
            preg_match_all('#phpbb3_mr7se_sid=([A-z0-9]+);#',$output,$out);
            foreach($out[1] as $item){
                setcookie('phpbb3_mr7se_sid',$item,time()+(60*60*24*30),'/',$_SERVER['HTTP_HOST']);
            } 

frazelli
Сообщения: 54
Зарегистрирован: 2013.04.20, 07:38

Re: PhpBBIdentity — авторизация юзеров PhpBB3

Сообщение frazelli » 2013.04.20, 07:43

Sam Dark писал(а):Очень сырая, но всё-таки рабочая версия нестандартного UserIdentity для авторизации через базу PhpBB3.
PhpBBIdentity не работает с русскими никами. Пишет неправильное имя пользователя или пароль.
Как решить эту проблему?

Ответить