PhpBBIdentity — авторизация юзеров PhpBB3
Re: PhpBBIdentity — авторизация юзеров PhpBB3
Не помогает (база 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
Re: PhpBBIdentity — авторизация юзеров PhpBB3
Проблема в том, что экстеншн цепляет class User (от phpbb), но класс User уже используется в проекте. И тут ошибка возникает
joomla->drupal->yii
Re: PhpBBIdentity — авторизация юзеров PhpBB3
Может кто-нибудь подскажет как сделать совместную авторизацию Yii и phpBB?
Re: PhpBBIdentity — авторизация юзеров PhpBB3
RSol, спасибо за расширение. Такой вопрос: у меня нормально работают функции: user_add, user_delete, change_password, user_update,
а с login, logout, loggedin проблемы. Что может быть причиной? Никаких ошибок я не получаю. Если при авторизации сделать:
Результат будет SUCCESS. Но при переходе в форум пользователь не авторизован.
Соответственно при logout - не выходит, а loggedin возвращает FAIL даже если я авторизовался напрямую через форум.
а с login, logout, loggedin проблемы. Что может быть причиной? Никаких ошибок я не получаю. Если при авторизации сделать:
Код: Выделить всё
echo Yii::app()->phpBB->login($this->username,$original_pas);
exit;
Соответственно при logout - не выходит, а loggedin возвращает FAIL даже если я авторизовался напрямую через форум.
- RSol
- Сообщения: 325
- Зарегистрирован: 2010.05.07, 08:36
- Откуда: Северодонецк, Украина
- Контактная информация:
Re: PhpBBIdentity — авторизация юзеров PhpBB3
Я уже совсем не помню, что там было и как. И, к сожалению, совершенно нет времени на разбор полета.
Мне часто пишут и в личку по поводу этого расширения, но ....
Попробуйте сами разобраться и потом отписать здесь, я буду преочень благодарен.
Мне часто пишут и в личку по поводу этого расширения, но ....
Попробуйте сами разобраться и потом отписать здесь, я буду преочень благодарен.
Re: PhpBBIdentity — авторизация юзеров PhpBB3
У меня проблемы возникали по двум причинам:
1) Неправильно настроенные куки на форуме ( неверно указанный домен)
2) Использование функции loggedin(). Если её не вызывать - всё работает отлично. Но при её вызове в куках изменяется ид юзера, и на форум попадаю неавторзованным. Думаю, эти строчки к этому причастны:
Вместо loggedin() юзаю Yii::app()->user->isGuest
1) Неправильно настроенные куки на форуме ( неверно указанный домен)
2) Использование функции loggedin(). Если её не вызывать - всё работает отлично. Но при её вызове в куках изменяется ид юзера, и на форум попадаю неавторзованным. Думаю, эти строчки к этому причастны:
Код: Выделить всё
$this->init(false);
$user->session_begin();
Re: PhpBBIdentity — авторизация юзеров PhpBB3
Набрался смелости и написал модуль для интеграции в Yii с использование вашего расширения.RSol писал(а):Попробуйте сами разобраться и потом отписать здесь, я буду преочень благодарен.
Re: PhpBBIdentity — авторизация юзеров PhpBB3
Я вот так вышел из положения.
Код: Выделить всё
$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']);
}
Re: PhpBBIdentity — авторизация юзеров PhpBB3
PhpBBIdentity не работает с русскими никами. Пишет неправильное имя пользователя или пароль.Sam Dark писал(а):Очень сырая, но всё-таки рабочая версия нестандартного UserIdentity для авторизации через базу PhpBB3.
Как решить эту проблему?
Re: PhpBBIdentity — авторизация юзеров PhpBB3
А сам форум русские ники поддерживает?frazelli писал(а):PhpBBIdentity не работает с русскими никами
Re: PhpBBIdentity — авторизация юзеров PhpBB3
Сам форум конечно поддерживает.ElisDN писал(а):А сам форум русские ники поддерживает?frazelli писал(а):PhpBBIdentity не работает с русскими никами
UPD: хм.. посмотрел что происходит с русскими никами в 'username_clean'. Почему их там так уродует?
Поменял в запросе на 'username' и убрал LOWER. Теперь работает.
Да, и в setRole нужно добавить что-то вроде
Код: Выделить всё
default:
$role = 'user';
break;
Re: PhpBBIdentity — авторизация юзеров PhpBB3
Нашёл ошибочку, которая не позволяла открывать из админки форума раздел "профиль пользователя", ошибка заключается в том, что при использовании данного дополнения в файле ext.phpBB.phpbbClass.php line 136 устанавливался язык нового пользователя по-умолчанию "ro" (Румынский), а в таблице языков обычно отсутствует данный язык, в следствии чего была ошибка.
- RSol
- Сообщения: 325
- Зарегистрирован: 2010.05.07, 08:36
- Откуда: Северодонецк, Украина
- Контактная информация:
Re: PhpBBIdentity — авторизация юзеров PhpBB3
Рецепт фикса есть?demisang писал(а):Нашёл ошибочку, которая не позволяла открывать из админки форума раздел "профиль пользователя", ошибка заключается в том, что при использовании данного дополнения в файле ext.phpBB.phpbbClass.php line 136 устанавливался язык нового пользователя по-умолчанию "ro" (Румынский), а в таблице языков обычно отсутствует данный язык, в следствии чего была ошибка.
Re: PhpBBIdentity — авторизация юзеров PhpBB3
в файле ext.phpBB.phpbbClass.php line 136:RSol писал(а):Рецепт фикса есть?
Код: Выделить всё
//default user info
$user_row = array(
"username" => $phpbb_vars["username"],
"user_password" => phpbb_hash($phpbb_vars["password"]),
"user_email" => $phpbb_vars["user_email"],
"group_id" => !isset($phpbb_vars["group_id"]) ? "2" : $phpbb_vars["group_id"],
"user_timezone" => "2.00",
"user_dst" => 0,
"user_lang" => "ro", // ТУТ LINE 136
"user_type" => !isset($phpbb_vars["user_type"]) ? "0" : $phpbb_vars["user_type"],
"user_actkey" => "",
"user_dateformat" => "D M d, Y g:i a",
"user_style" => "1",
"user_regdate" => time(),
"user_colour" => "9E8DA7",
);
Код: Выделить всё
"user_lang" => "ro"
Код: Выделить всё
"user_lang" => $phpbb_vars["user_lang"]
Код: Выделить всё
public function userAdd($username, $password, $email, $group_id = 2) {
return $this->_phpbb->user_add(array(
"username"=>$username,
"user_password"=>$password,
"user_email"=>$email,
"group_id"=>$group_id,
));
}
Код: Выделить всё
"user_lang"=>"ru"