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

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

vindeezel1993

Активный участник
Пользователь
Баллы
78
Многие задавались, задают и будут задавать, как сделать регистрацию на сервер через сайт.
Сейчас я расскажу вам основу, которую вы можете взять для себя.
Что нужно для этого?
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
    bd.zip
    Размер файла
    301 байт
    Просмотров
    110
  • AuthMe.zip
    AuthMe.zip
    Размер файла
    91,7 КБ
    Просмотров
    103
  • reg.zip
    reg.zip
    Размер файла
    1,4 КБ
    Просмотров
    121
POST данные отфильтруйте, sql инъекции.
REMOTE_ADDR не вернет реальный ип если пользователь за прокси, используйте также HTTP_X_FORWARDED_FOR.
 
POST данные отфильтруйте, sql инъекции.
REMOTE_ADDR не вернет реальный ип если пользователь за прокси, используйте также HTTP_X_FORWARDED_FOR.
ип не столь важно. все равно оно обновляться будет, после авторизации на сервере.
Какая разница какой ип будет первый. вообще можно пустое поле отправлять.
 
Access denied for user 'root'@'localhost' (using password: NO)
Че делать все правельно записано и Ip и логин и пароль
проверь еще раз введеные данные в reg.php . может доступ к mysql серверу из вне запрещен?

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

вот демо http://minecraft.empower.su/ тут все работает. ps сервер выключен на неопределенный срок, но веб работает.
 
17NgQ
:fp:​
 
я смотрю тут сразу вылезли гуру своего дела. Может выложите свои варианты?чтобы как с иголочки. да еще и бесплатно?
 
я смотрю тут сразу вылезли гуру своего дела. Может выложите свои варианты?чтобы как с иголочки. да еще и бесплатно?
Достаточно ввести, "регистрация и авторизация php" все. Там тебе столько бесплатного будет!
 

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

Назад
Верх