1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Туториал Интеграция FMXLauncher с разными CMS

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем Starr, 15 авг 2015.

  1. Автор темы
    Starr

    Starr Активный участник Пользователь

    Баллы:
    98
    Прошу протестить авторизацию под xenforo :)
    PHP:
    <?php
        
    include_once('settings.php');

        
    define('USER_EXISTS'    0);
        
    define('USER_NOT_EXISTS'1);
        
    define('SQL_ERROR'      2);
      
        function 
    IsPlayerInBase($db_handle$login$password) {
          
            global 
    $players_table_name;
          
            
    $sth $db_handle->prepare("SELECT `salt` FROM `{$players_table_name}` WHERE `login`=:login");
          
            
    $sth->execute(array(
                
    'login' => $login,
            ));
          
            
    $getsalt=$sth->fetch(PDO::FETCH_ASSOC);
            
    $salt $getsalt['salt'];
              
            
    $rpass hash('sha256',hash('sha256',$password).$salt);
          
            
    $user = array(
                
    'login'    => $login,
                
    'password' => $rpass
            
    );
          
            
    $sql $db_handle->prepare("SELECT COUNT(1) FROM `{$players_table_name}` WHERE `login`=:login AND BINARY `password`=:password");
          
            if (
    $sql->execute($user)) {
                if (
    $sql->fetchColumn()) {      
                    return 
    USER_EXISTS;      
                } else {
                    return 
    USER_NOT_EXISTS;
                }  
              
            } else {
                return 
    SQL_ERROR;
            }
          
        }
    ?>
     
    Последнее редактирование: 2 сен 2015
  2. OsipXD

    OsipXD Старожил Пользователь

    Баллы:
    173
    Skype:
    osip.fatkullin
    Имя в Minecraft:
    OsipXD
    @Starr, а ведь в authme не login, а username
    И еще мне кажется, что если делается еще один запрос, то его тоже надо проверять на успешность
    PHP:
    if (!sth->execute(array('login' => $login))) {
            return 
    SQL_ERROR;
    }

    А вообще, раз уж мы уже получили зашифрованный пароль из бд, можно и не делать второй запрос, а сравнивать с полученным изначально.
     
  3. Автор темы
    Starr

    Starr Активный участник Пользователь

    Баллы:
    98
    Спасибо, исправлю.
     
    Последнее редактирование: 8 сен 2015
  4. Автор темы
    Starr

    Starr Активный участник Пользователь

    Баллы:
    98
    Лишняя строка юзабельности не нарушает, а за скобку спасибо, исправлено ;)
    Up, прошу проверить юзверей ксенфоры :)
     
  5. RockIsLife

    RockIsLife Активный участник Пользователь

    Баллы:
    78
    под vbulletin можно?
     
  6. Автор темы
    Starr

    Starr Активный участник Пользователь

    Баллы:
    98
    Можно, сегодня выложу.
     
  7. RockIsLife

    RockIsLife Активный участник Пользователь

    Баллы:
    78
    Хы. Хеширование поменял у PunBB) Ток чет все равно не заходит. Лаунчер пишет: Error at SQL query
     
  8. Автор темы
    Starr

    Starr Активный участник Пользователь

    Баллы:
    98
    Скинь структуру таблицы юзверй, хотел вчера попросить)
     
  9. RockIsLife

    RockIsLife Активный участник Пользователь

    Баллы:
    78
    в личку отправил
     
  10. Автор темы
    Starr

    Starr Активный участник Пользователь

    Баллы:
    98
    Проверяй.
     
  11. RockIsLife

    RockIsLife Активный участник Пользователь

    Баллы:
    78
    все ок. спасибо
     
  12. boatswain

    boatswain Активный участник Пользователь

    Баллы:
    61
    Как на счет IPB?
     
  13. 11dimonchik22

    11dimonchik22 Активный участник Пользователь

    Баллы:
    76
    Там на изи самому можно
     
  14. Автор темы
    Starr

    Starr Активный участник Пользователь

    Баллы:
    98
    Можно. Кидай структуру бд юзеров.
     
  15. boatswain

    boatswain Активный участник Пользователь

    Баллы:
    61
    Название бд юзеров "members"
    members.jpg
    PHP:
    md5(md5($salt).md5($password))
     
  16. Автор темы
    Starr

    Starr Активный участник Пользователь

    Баллы:
    98
    Не вижу в таблице колонки с солью.
    Она генерируется в отдельном скрипте?
     
  17. boatswain

    boatswain Активный участник Пользователь

    Баллы:
    61
    нет, идет сразу за members_pass_hash, называется members_pass_salt
     
  18. Автор темы
    Starr

    Starr Активный участник Пользователь

    Баллы:
    98
    А, спасибо. Не заметил.
    @boatswain, проверяйте.
     
  19. boatswain

    boatswain Активный участник Пользователь

    Баллы:
    61
    Спасибо, все работает.
    При обновлении IPB до 4.0.* лаунчер выдает "User not found".
    Изменилось название бд юзеров теперь вместо "members" - "core_members", в настройках вебчасти заменил. Все названия колонок остались прежними. Там новый метод хэширования пароля, или что?
     
  20. 11dimonchik22

    11dimonchik22 Активный участник Пользователь

    Баллы:
    76
    Ну по идее если правильно заменил то скорее всего да, хеширование наверное другое...
    А таблица с солью не изменилась?
     

Поделиться этой страницей