Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление
  2. Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб Простая регистрация и авторизация. урок №1.

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем vindeezel1993, 20 июн 2012.

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

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

    Баллы:
    78
    Skype:
    vindeezel1993
    Многие задавались, задают и будут задавать, как сделать регистрацию на сервер через сайт.
    Сейчас я расскажу вам основу, которую вы можете взять для себя.
    Что нужно для этого?
    AuthMe плагин на сервере.
    Хостинг с поддержкой php и mysql.

    И так, начнем.
    1) Создадим базу данных в mysql. Дадим ей название minecraft(Вы можете дать и другое название).
    Создали? Теперь делаем SQL запрос.

    Код:
    CREATE TABLE IF NOT EXISTS `users` (
      `login` text,
      `pass` text NOT NULL,
      `id` int(5) NOT NULL AUTO_INCREMENT,
      `ip` text NOT NULL,
      `x` smallint(6) NOT NULL,
      `y` smallint(6) NOT NULL,
      `z` smallint(6) NOT NULL,
      `lastlogin` bigint(20) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=80 ;
    
    Готово.

    2) Теперь создадим простенький php скрипт регистрации. Назовем его reg.php.

    PHP:
    <?
    $host "127.0.0.1"//адрес до mysql сервера
    $user "login"//логин к mysql
    $password "pass";//пароль к логину
    $dbase "minecraft";//название базы данных
     
    $ip $_SERVER['REMOTE_ADDR'];// ip пользователя
     
    $id $_GET['id'];//гет можете убрать, если не нравится
    //если пустой гет запрос, выводим форму для регистрации
    if ($id == ''){
    echo 
    '<fieldset><br><fieldset><center><span style="color: red; font-weight: bold;">Для регистрации в браузере должны быть включены cookies</span></center></fieldset><br><br>
          <br><form action="reg.php?id=go" name="registration" method="post">
    <span style="color: red;">* </span><input type="text" name="login" maxlength="35" size="20"> Ваша ник в игре (Регистр букв важен!)<br> <br>
    <span style="color: red;">* </span><input type="password" name="pass" maxlength="20" size="20"> Ваш пароль<br> <br>
    <span style="color: red;">* </span><input type="password" name="pass2" maxlength="20" size="20"> Повторите ваш пароль<br> <br>
    <span style="color: red;">* </span><input type="checkbox" name="right" value="yes"> Я прочитал(а) правила и полностью согласен(а) с ними.<br /><br />
    <input type="submit" value="готово" id="submit" class="button" />
    </form>
    <br><fieldset><center><span style="color: red; font-weight: bold;">ВНИМАНИЕ! Красным помечены поля,<b> обязательные</b> для заполнения.</span></center></fieldset><br><br></fieldset>'
    ;
    }
     
    //обрабатываем запрос
    if ($id == 'go')
    {
    session_start();
    $login $_POST['login'];
    $pass $_POST['pass'];
    $pass2 $_POST['pass2'];
    $right $_POST['right'];
    //немного проверок на введеные поля
    if (empty($login) || empty($pass) || empty($pass2) || empty($right)){
    print(
    "<br> <br>Все поля обязательны для заполнения.");
    }
    if (
    $pass != $pass2){
    print(
    "<br> <br>Пароли не совпадают! Похоже вы ошиблись. Попробуйте еще.");
    }
    if (
    $_POST["right"] != "yes" ){
    print(
    "<br>Извините, вы не cогласились с условиями.");
    }
     
    //все в порядке, записываем, проверив, существует ли аккаунт.
    else{
    $md5pass md5($pass);
    $db mysql_connect($host$user$password);
    mysql_select_db("$dbase"$db);
    mysql_real_escape_string($login);
    if(
    mysql_num_rows(mysql_query('SELECT login FROM users WHERE login="'.$login.'"')) > 0) {echo 'Данный логин занят';} else {
    mysql_query("INSERT INTO users (`login`, `pass`, `id`, `ip`,  `x`, `y`, `z`,  `lastlogin`) VALUES ('$login', '$md5pass', '', '$ip', '', '', '', '0')",$db) or die(mysql_error());
    print(
    "<br> Регистрация выполнена.");}
    mysql_close($db);
    }
    }
    ?>
    Скрипт не идеален, но для новичков пойдет.

    Открываем скрипт и меняем настройки подключения к базе данных

    Код:
    $host = "127.0.0.1"; //адрес до mysql сервера
    $user = "login"; //логин к mysql
    $password = "pass";//пароль к логину
    $dbase = "minecraft";//название базы данных
    
    3) Теперь настраиваем AuthMe.
    Заходим в папку /plugins/AuthMe и открываем фаил config.yml.
    Далее ищем и заменям в этих строчках на свои значения.
    Код:
    mySQLTablename: users
     
    mySQLUsername: пользователь mysql
    backend: mysql
    mySQLDatabase: название базы
    mySQLColumnIp: ip
    mySQLHost: адрес mysql
     
     
    mySQLColumnPassword: pass
    mySQLPassword: ваш пароль mysql
    kickNonRegistered: true
    passwordHash: MD5
     
    
    Открываем messages.yml и ищем строчки:
    Код:
    reg_voluntarily:
    usage_reg:
    reg_msg:
    reg_only:
    
    Пишем в этих строчках, что нужна регистрация по адрес http://ваш адрес/reg.php

    4) Готово.

    Статья будет дописываться. "Тупорылыми" прошу не писать. Если кто может предложить вариант скрипта получше - предлагайте.

    PS прикладываю в архивах фаил с текстом запроса в базу, сам скрипт и настроенный плагин(Указать подключение к базе все равно нужно).
     

    Вложения:

    • bd.zip
      Размер файла:
      301 байт
      Просмотров:
      103
    • AuthMe.zip
      Размер файла:
      91,7 КБ
      Просмотров:
      95
    • reg.zip
      Размер файла:
      1,4 КБ
      Просмотров:
      112
  2. Хостинг MineCraft
    <
  3. arteZ

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

    Баллы:
    123
    Skype:
    theartez
    Имя в Minecraft:
    TheArtez
    Первый :D

    Неплохо :D
     
    ВремяПриключений нравится это.
  4. Vetus

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

    Баллы:
    78
    Skype:
    vetus.miles
    POST данные отфильтруйте, sql инъекции.
    REMOTE_ADDR не вернет реальный ип если пользователь за прокси, используйте также HTTP_X_FORWARDED_FOR.
     
    Сало нравится это.
  5. Автор темы
    vindeezel1993

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

    Баллы:
    78
    Skype:
    vindeezel1993
    mysql_real_escape_string() ???
     
  6. Vetus

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

    Баллы:
    78
    Skype:
    vetus.miles
    Да. Вообще рекомендую использовать PDO для работы с БД.
     
    Сникерсни, caNek и Инкогнито_о нравится это.
  7. Автор темы
    vindeezel1993

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

    Баллы:
    78
    Skype:
    vindeezel1993
    ип не столь важно. все равно оно обновляться будет, после авторизации на сервере.
    Какая разница какой ип будет первый. вообще можно пустое поле отправлять.
     
  8. Владлен

    Владлен Активный участник

    Баллы:
    63
    Access denied for user 'root'@'localhost' (using password: NO)
    Че делать все правельно записано и Ip и логин и пароль
     
  9. Devil

    Devil Активный участник

    Баллы:
    63
  10. Devil

    Devil Активный участник

    Баллы:
    63
    в чём проблема
     
  11. Автор темы
    vindeezel1993

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

    Баллы:
    78
    Skype:
    vindeezel1993
    проверь еще раз введеные данные в reg.php . может доступ к mysql серверу из вне запрещен?

    bd_con.php отсуствует.

    вот демо http://minecraft.empower.su/ тут все работает. ps сервер выключен на неопределенный срок, но веб работает.
     
  12. Dizzy

    Dizzy Активный участник

    Баллы:
    78
    Имя в Minecraft:
    Dizzy
    ты чего то лишнего накалякал на скрипте или убрал пишет на строчке 2ой ошибка
     
  13. Devil

    Devil Активный участник

    Баллы:
    63
    я другой поставил нормально всё
     
  14. gGG

    gGG Активный участник

    Баллы:
    61
    Подойдет ли эта таблица для Xauth?
     
  15. v0dil

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

    Баллы:
    68
    СПС:trf:
     
  16. mike5703

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

    Баллы:
    123
    Skype:
    mike57038485
    Имя в Minecraft:
    mike5703
    [​IMG]
    :fp:​
     
    DeFeR_39 и Zeluboba нравится это.
  17. Инкогнито_о

    Инкогнито_о Старожил

    Баллы:
    153
    [​IMG]
     
    xhome, agentik007 и Zeluboba нравится это.
  18. LiveD

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

    Баллы:
    153
    Skype:
    LiveDRus
    А, что собсна такое?
     
  19. hummer

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

    Баллы:
    123
    Skype:
    bond_russia
    Ну зач делаешь такие гадости?
     
  20. Автор темы
    vindeezel1993

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

    Баллы:
    78
    Skype:
    vindeezel1993
    я смотрю тут сразу вылезли гуру своего дела. Может выложите свои варианты?чтобы как с иголочки. да еще и бесплатно?
     
    I-Am-Black-Overlord нравится это.
  21. LiveD

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

    Баллы:
    153
    Skype:
    LiveDRus
    Достаточно ввести, "регистрация и авторизация php" все. Там тебе столько бесплатного будет!
     

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