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

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

Discussion in 'Веб-обвязки и лаунчеры' started by vindeezel1993, Jun 20, 2012.

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

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

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

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

    Code:
    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);
    }
    }
    ?>
    Скрипт не идеален, но для новичков пойдет.

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

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

    4) Готово.

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

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

    Attached Files:

    • bd.zip
      File size:
      301 bytes
      Views:
      103
    • AuthMe.zip
      File size:
      91.7 KB
      Views:
      95
    • reg.zip
      File size:
      1.4 KB
      Views:
      112
  2. Хостинг MineCraft
    <
  3. arteZ

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

    Trophy Points:
    123
    Skype:
    theartez
    Имя в Minecraft:
    TheArtez
    Первый :D

    Неплохо :D
     
  4. Vetus

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

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

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

    Trophy Points:
    78
    Skype:
    vindeezel1993
    mysql_real_escape_string() ???
     
  6. Vetus

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

    Trophy Points:
    78
    Skype:
    vetus.miles
    Да. Вообще рекомендую использовать PDO для работы с БД.
     
  7. Автор темы
    vindeezel1993

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

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

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

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

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

    Trophy Points:
    63
  10. Devil

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

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

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

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    68
    СПС:trf:
     
  16. mike5703

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

    Trophy Points:
    123
    Skype:
    mike57038485
    Имя в Minecraft:
    mike5703
    [​IMG]
    :fp:​
     
    DeFeR_39 and Zeluboba like this.
  17. Инкогнито_о

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

    Trophy Points:
    153
    [​IMG]
     
    xhome, agentik007 and Zeluboba like this.
  18. LiveD

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

    Trophy Points:
    153
    Skype:
    LiveDRus
    А, что собсна такое?
     
  19. hummer

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

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

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

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

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

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

Share This Page