denis denis
Активный участник
- Баллы
- 63
- Имя в Minecraft
- Lapos213
Когда будет дополнение Урока?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Дату темы посмотриМне кажется, или эта тема должна быть в разделе
Руководства, инструкции, утилиты?


-authme.registerЯ ооочень извиняюсь за ап темы, но все же
Все гуд! С сайта есть регистрация, но как запретить регистрацию в игре? Через /register
Решил проблему, забрал authme.register
да и я не советую ставить чудо которое дал ТСЯ ооочень извиняюсь за ап темы, но все же
Все гуд! С сайта есть регистрация, но как запретить регистрацию в игре? Через /register
Решил проблему, забрал authme.register
<form method="POST" action="register.php">
<input name="login" type="text" required title="Ник входа в игру" placeholder="Логин"><br>
<input name="email" type="email" required title="Ник входа в игру" placeholder="E-mail"><br>
<input name="password" type="password" required title="Придумайте пароль" placeholder="Пароль"><br>
<input name="password2" type="password" required title="Повторите пароль" placeholder="Пароль"><br>
<input type="submit" value="Зарегистрироваться!">
<input value="Авторизироваться" onclick="location.href='/ссылка на страницу авторизации'" type="button">
</form>
// хардкор
mysql_connect ("localhost", "user", "pass") /* Попытка подключения */ or die ("Невозможно подключиться к базе!"); // выводим ошибку
mysql_select_db("bd") or die ("База не существует");
if (isset($_POST["login"]) && isset($_POST["email"]) && isset($_POST["password"]) && isset($_POST["password2"])) {
$l = mysql_real_escape_string($_POST["login"]); // обзываем переменные
$mail = mysql_real_escape_string($_POST["email"]);
$pass = mysql_real_escape_string($_POST["password"]);
$pass2 = mysql_real_escape_string($_POST["password2"]);
$preg = '/[a-zA-Z_0-9]+/';
// пилим условия
// проверка на существование пользователя с таким же логином
$result = mysql_query("SELECT * FROM `accounts` WHERE login='".$l."'");
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {
$arr[] = "Пользователь с таким ником уже зарегистрирован, придумайте другой!";
}
$result2 = mysql_query("SELECT * FROM `accounts` WHERE email='".$mail."'");
$myrow2 = mysql_fetch_array($result2);
if (!empty($myrow2['id'])) {
$arr[] = "Пользователь с таким адресом почты уже зарегистрирован, введите другой!";
}
$result1 = mysql_query("SELECT * FROM `accounts` WHERE ip='$ip'");
$myrow1 = mysql_fetch_array($result1);
if (!empty($myrow1['id'])) {
$arr[] = "С этого ip уже зарегистрирован пользователь ".$myrow1['login'].", восстановите пароль или обратитесь к администратору!";
}
if (strlen($pass) < 4) {
$arr[] = "В пароле должно быть не менее 4 символов!";
}
if (strlen($l) < 4) {
$arr[] = "В логине должно быть не менее 4 символов!";
}
if (preg_match($preg, $pass) == false) {
$arr[] = " Пароль должен состоять только из латинских букв и цифр (Регистр букв учитывается) и цифр!".$preg;
}
if (preg_match($preg, $l) == false) {
$arr[] = "Логин должен состоять только из латинских букв и цифр (Регистр букв не учитывается) и цифр!".$preg;
}
if ($pass != $pass2) {
$arr[] = "Пароли не совпадают!";
}
if (count($arr) > 0) {
foreach ($arr as $value) {
echo $value;
}
} else {
mysql_query("INSERT INTO `accounts` (login, password, email, datetime, ip) VALUES ('".htmlspecialchars(strtolower(trim($l)))."', '".md5($pass)."', '".htmlspecialchars($mail)."', '".date('Y-m-d H:i:s')."', '$ip')");
echo 'Регистрация прошла успешно! Через 3 секунды вы будите перенаправлены на главную страницу.';
session_start(); // открываем сессию
$result = mysql_query("SELECT id, login FROM `accounts` WHERE login='".htmlspecialchars(strtolower(trim($l)))."'"); //извлекаем из базы все данные о пользователе с введенным логином
$myrow = mysql_fetch_array($result);
$_SESSION['login']=$myrow['login']; // записываем пользователя в сессию
$_SESSION['id']=$myrow['id'];
}
}

На дату гляньИ чему учит этот урок ? Копировать текст ? Где подробное объяснение и т.д.
Запили скрипт авторизации и смены пароля !Многие задавались, задают и будут задавать, как сделать регистрацию на сервер через сайт.
Сейчас я расскажу вам основу, которую вы можете взять для себя.
Что нужно для этого?
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 прикладываю в архивах фаил с текстом запроса в базу, сам скрипт и настроенный плагин(Указать подключение к базе все равно нужно).
делаешь проверку пароля, как я понял это MD5, делаешь проверку, далее сессии и делаешь доступ. а смена пароля это в начале проверка естественно md5 пароля в бд, потом сравнение, если всё получилось то UPDATE таблица SET password='$переменная с паролем' WHERE name='имя юзера'Запили скрипт авторизации и смены пароля !
убейся об стену! не трогай этото подобие скрипта!Запили скрипт авторизации и смены пароля !