<?PHP
require_once "database.php";
//получаем логин(через Post) и проверяем его на вредоносные символы методом CheckUserData
@ $username = $this->CheckUserData($_POST['user_login']);
//получаем пароль(через Post) и проверяем его на вредоносные символы методом CheckUserData
@ $passwd = $this->CheckUserData($_POST['user_passwd']);
//класс для обработки данных, этот класс является родителем всех остальных
class kolvousers extends dataprocessing
{
public function kolvous(){
$result = $mysqli->query("SELECT login FROM users");
$rs = $result;
$rows = $rs->rowCount();
}
}
$rows = new kolvousers();
$rows->kolvous();
class dataprocessing
{
//конструктор класса dataprocessing @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
public function __construct()
{
//начинаем сессию
}
//проверка на вредоносные символы @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
public function CheckUserData($var)
{
//обрабатываем вредоносные символы
//при возвращении результата обрабатываем строку слешами
return addslashes($res); // addslashes — Экранирует строку с помощью слэшей //описание работы htmlspecialchars и addslashes вы можете посмотреть в любом справочнике php
}
//этот метод необходим для вырезания из текстовой строки всего кроме чисел
//например после обработки строки "43rtrt56" останется "4356"
//зачем это нужно увидите дальше @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
public function CheckUserNumber($number)
{
//составляем шаблон
$patt = '[[:alpha:]]|[[:punct:]]|[[:cntrl:]]|[[:space:]]';
//меняем на '', т.е. на пустое место
$replace = '';
//ereg_replace - функция php для работы с регулярными выражениями
}
//Поиск логина в базе данных @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
public function FindLogin($login)
{
//осуществляем поиск $login в базе данных
$result = $mysqli->query("select id from users where login = '$login'");
//получаем количество результатов поиска
$colich_results = $result->num_rows;
//возвращаем количество результатов поиска
return $colich_results;
}
//Поиск email'а в базе данных @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
public function FindEmail($email)
{
$result = $mysqli->query("select id from users where email = '$email'");
//получаем количество результатов поиска
$colich_results = $result->num_rows;
//возвращаем количество результатов поиска
return $colich_results;
}
//Запрос minXP, maxXP, minARMOR, maxARMOR из таблици users
public function ZaprosParamUsers($login)
{
//выбор значений minXP, maxXP, minARMOR, maxARMOR из таблици users для определенного пользователя
$result = $mysqli->query("SELECT minXP, maxXP, minARMOR, maxARMOR FROM users WHERE user_login = '$login' ");
//в переменную $row выводим ассоциативный массив
$row = $result->fetch_assoc_all();
//возвращяем результаты, весь массив таблици users со всеми ее значениями у нас в $row
return $row;
//return $result;
}
}
// обрабатываем полученные данные от формы регистрации методом CheckUserData
$user_login = $this->CheckUserData($_POST['login']);
$user_passwd = $this->CheckUserData($_POST['pass1']);
$user_passwd2 = $this->CheckUserData($_POST['pass2']);
$user_email = $this->CheckUserData($_POST['email']);
// если все поля заполнены то продолжаем работу с данными
if ($user_login != "" && $user_passwd != "" && $user_passwd2 != "" && $user_email)
{
// если пароль и проверочный пароли равны, то продолжаем работу
if ($user_passwd == $user_passwd2)
{
// если указанного при регистрации логина не нашлось в бд, продолжаем работу (логины должны быть уникальными)
if ($this->FindLogin($user_login) == 0)
{
// если указанного при регистрации email не нашлось в бд, продолжаем работу (email тоже должен быть уникальным)
if ($this->FindEmail($user_email) == 0)
{
// теперь нам нужно отправить ссылку на указанную почту, для активации пользователя
$from = 'gragonvlad@gmail.com';
$hash_code = rand(100000
, 999999
); $subject = "Подтвержение регистрации";
// здесь вам нужно поменять значение yousite на свой домен
$message = "Вы подали заявку на регистрацию в игре Developer new. " .
"TEST " .
"TEST: " .
"http://192.168.1.2:85/online/activate.php?hash=" . $hash_code;
// отправляем письмо
if (!mail($user_email, $subject, $message, 'From: ' . $from)) // если письмо не отправлено то значит пользователь некорректно указал свою почту
echo "<center><br><a href='index.php?id=registration_form'>Вы не правильно указали почту.</a></center>";
else
{
// если письмо отправилось, то добавляем пользователя в базу данных с сгенерированным хеш кодом для активации
// после false четыре значения minXP maxXP minARMOR maxARMOR
$test = $mysqli->query("insert into users values ('$user_login', '$user_passwd', '$user_email', '$hash_code')");
echo "<center><br><a href='index.php'>На указанный почтовый ящик отправлено письмо с ссылкой для активации вашего личного кабинета.</a></center>";
}
}
else
echo '<center><a href="index.php?id=registration_form">Такой email уже есть в системе.</a></center>';
}
else
echo '<center><a href="index.php?id=registration_form">Такой логин уже есть в системе.</a></center>';
}
else
echo '<center><a href="index.php?id=registration_form">Пароли не совпадают.</a></center>';
}
?>