Файл: moduls/registration.php
Строк: 45
<?php
/*
* Author: Евгений
* http://bymas.ru/id17706
*/
$title = 'Регистрация';
require ('../core/sys.php');
require('../core/head.php');
if(isset($user['id'])){
header('Location: /');
exit;
}
if(isset($_POST['name'])){
$name = htmlspecialchars(trim($_POST['name']));
$password = htmlspecialchars(trim($_POST['password']));
$email = htmlspecialchars(trim($_POST['email']));
$em = $db->prepare("SELECT * FROM `users` WHERE `email` = ?");
$em -> execute([$email]);
$em = $em->rowCount();
if(empty($_POST['captcha'])) $msg = 'Введите код с картинки!';
elseif(mb_strlen($name) < 3 || mb_strlen($name) > 15) $msg = 'Длина имени должна быть от 3 до 15 символов';
elseif($em > 0) $msg = 'Пользователь с таким E-Mail уже зарегестрирован';
elseif(!preg_match('/[0-9a-z_-]+@[0-9a-z_-^.]+.[a-z]{2,6}/i' , $email)) $msg = 'Неверный формат E-Mail';
elseif(mb_strlen($password) < 5 || mb_strlen($password) > 20) $msg = 'Длина пароля должна быть от 5 до 20 символов';
elseif($_SESSION['Captcha.Code'] != $_POST['captcha']) $msg = ('Неверный код с картинки!');
if(isset($msg)){
$_SESSION['message'] = $msg;
exit(header('Location: /registration.aspx'));
}else{
////Отправка письма
$mail_to = new mailer($email);
$mail_to->add('Здравствуйте!<br />
Вы успешно прошли регистрацию на ресурсе '.$_SERVER['HTTP_HOST'].'.<br />
Данные для входа:<br />
E-mail: '.$email.'<br />
Пароль: '.$password);
$sql = $db->prepare('INSERT INTO `users` (`name`,`password`,`email`) VALUES (?,?,?)');
$sql -> execute([$name,md5($password),$email]);
$id = $db->lastInsertId();
$add_men_all = $db->prepare('INSERT INTO `history_logs` SET `us` = ?,`err` = ?,`who` = ?,`ip` = ?, `soft` = ?,`time` = ?');
$add_men_all -> execute([$id,0,1,htmlspecialchars($_SERVER['REMOTE_ADDR']),htmlspecialchars($_SERVER['HTTP_USER_AGENT']),time()]);
setcookie('id', $crypt->crypt($id), time()+86400*365, '/');
setcookie('password', $crypt->crypt(md5($password)), time()+86400*365, '/');
setcookie('token', $crypt->crypt(htmlspecialchars($_SERVER['REMOTE_ADDR']).':'.$name), time()+86400*365, '/');
$_SESSION['time'] = time();
header('Location: /');
exit;
}
}
?>
<div class="container">
<div class="row mt-5">
<div class="col-md-6 offset-md-3">
<div class="card">
<div class="card-body">
<form action="" method="post">Введите ваше имя [3-15]:</br><input type="text" name="name" maxlength="15"></br> Пароль [5-20]</br><input type="text" name="password" maxlength="20"></br> E-mail:<br/><input type="email" name="email"><br/>
<img src="/design/kcaptcha/kcaptcha.php" title="Нажмите для обновления" onclick="this.setAttribute('src','/design/kcaptcha/kcaptcha.php?hash='+Math.random());var captcha=document.getElementById('captcha');if(captcha){captcha.focus()}">
<br />Код с картинки : <br />
<input name="captcha" class="form-control" type="text" /><br />
<input type="submit" value="Регистрация"></form>
</div></div>
<div class="card-body">* На e-mail будут отправлены регистрационные данные.</div>
</div></div></div>
<?
require ('../core/foot.php');
?>