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

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

Можно ли настроить скрипты так, чтобы их перевести на wordpress и Сделать на 1 ip доступную 1 регистрацию ника?
 
1 ип - 1 рега можно так впринципи.
[PHP2]if(mysql_num_rows(mysql_query('SELECT ip FROM users WHERE ip="'.$ip.'"')) > 1){
print("<br>С вашего ip уже была сделана регистрация.");
}[/code]
 
а как мне данные с authme.db в mysql базу запихать?
 
Я ооочень извиняюсь за ап темы, но все же :)
Все гуд! С сайта есть регистрация, но как запретить регистрацию в игре? Через /register
Решил проблему, забрал authme.register
 
Я ооочень извиняюсь за ап темы, но все же :)
Все гуд! С сайта есть регистрация, но как запретить регистрацию в игре? Через /register
Решил проблему, забрал authme.register
-authme.register
Я ооочень извиняюсь за ап темы, но все же :)
Все гуд! С сайта есть регистрация, но как запретить регистрацию в игре? Через /register
Решил проблему, забрал authme.register
да и я не советую ставить чудо которое дал ТС
вот кое-что посущественней ps возможны ошибки ибо писал в поле для сообщения (крч на коленках писал)
register.html
HTML:
<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>
register.php
PHP:
// хардкор
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='имя юзера'
 
Запили скрипт авторизации и смены пароля !
убейся об стену! не трогай этото подобие скрипта!
1. бери вот этот:http://www.rubukkit.org/threads/Простая-регистрация-и-авторизация-урок-№1.17492/page-2#post-717452
2. Почитай эту тему http://www.rubukkit.org/threads/Как-определить-плохой-продукт-web.53263/
не, ну если тебе не жалко свой сервер можешь взять тот, что дал тс.
 
Последнее редактирование:

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

Назад
Верх