<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--===============================================================================================-->
<link rel="icon" type="image/png" href="images/icons/favicon.ico"/>
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="vendor/bootstrap/css/bootstrap.min.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="fonts/font-awesome-4.7.0/css/font-awesome.min.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="fonts/Linearicons-Free-v1.0.0/icon-font.min.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="vendor/animate/animate.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="vendor/css-hamburgers/hamburgers.min.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="vendor/animsition/css/animsition.min.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="vendor/select2/select2.min.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="vendor/daterangepicker/daterangepicker.css">
<!--===============================================================================================-->
<link rel="stylesheet" type="text/css" href="css/util.css">
<link rel="stylesheet" type="text/css" href="css/main.css">
<!--===============================================================================================-->
</head>
<body>
<form method="POST">
<div class="limiter">
<div class="container-login100" style="background-image: url('images/bg-01.jpg');">
<div class="wrap-login100 p-l-110 p-r-110 p-t-62 p-b-33">
<form class="login100-form validate-form flex-sb flex-w">
<span class="login100-form-title p-b-53">
Авторизация
</span>
<div class="p-t-31 p-b-9">
<span class="txt1">
Логин
</span>
</div>
<div class="wrap-input100 validate-input" data-validate = "Username is required">
<input id="login" name = "login" class="input100" type="text" >
<span class="focus-input100"></span>
</div>
<div class="p-t-13 p-b-9">
<span class="txt1">
Пароль
</span>
</div>
<div class="wrap-input100 validate-input" data-validate = "Password is required">
<input id="password" name = "password" class="input100" type="password">
<span class="focus-input100"></span>
</div>
<div class="container-login100-form-btn m-t-17">
<button id = "sub" name="submit" class="login100-form-btn">
Войти
</button>
</div>
<div class="w-full text-center p-t-55">
<span class="txt2">
Нет аккаунта?
</span>
<a href="register.php" class="txt2 bo1">
Зарегистрировать новый
</a>
</div>
</form>
</div>
</div>
</div>
</form>
<div id="dropDownSelect1"></div>
<!--===============================================================================================-->
<script src="vendor/jquery/jquery-3.2.1.min.js"></script>
<!--===============================================================================================-->
<script src="vendor/animsition/js/animsition.min.js"></script>
<!--===============================================================================================-->
<script src="vendor/bootstrap/js/popper.js"></script>
<script src="vendor/bootstrap/js/bootstrap.min.js"></script>
<!--===============================================================================================-->
<script src="vendor/select2/select2.min.js"></script>
<!--===============================================================================================-->
<script src="vendor/daterangepicker/moment.min.js"></script>
<script src="vendor/daterangepicker/daterangepicker.js"></script>
<!--===============================================================================================-->
<script src="vendor/countdowntime/countdowntime.js"></script>
<!--===============================================================================================-->
<script src="js/main.js"></script>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="ajax.js"></script>
</body>
</html>
<?php
//Авторизация пользователя
//Подключаем скрипт с данными для подключения к БД
include 'connection.php';
// Функция для генерации случайной строки
function generateCode($length=6) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789";
$code = "";
$clen = strlen($chars) - 1;
while (strlen($code) < $length) {
$code .= $chars[mt_rand(0,$clen)];
}
return $code;
}
// Соединяемся с БД
$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка подключения к базе данных! ". mysqli_error($link));
if(isset($_POST['submit']))
{
// Вытаскиваем из БД запись, у которой логин равняется введенному
$query = mysqli_query($link,"SELECT user_id, user_password FROM users WHERE user_login='".mysqli_real_escape_string($link,$_POST['login'])."' LIMIT 1");
$data = mysqli_fetch_assoc($query);
// Сравниваем пароли
if($data['user_password'] === md5(md5($_POST['password'])))
{
// Генерируем случайное число и шифруем его
$hash = md5(generateCode(10));
if(!empty($_POST['not_attach_ip']))
{
// Если пользователя выбрал привязку к IP
// Переводим IP в строку
$insip = ", user_ip = INET_ATON('".$_SERVER['REMOTE_ADDR']."')";
}
// Записываем в БД новый хеш авторизации и IP
mysqli_query($link, "UPDATE users SET user_hash = '".$hash."' ".$insip." WHERE user_id = '".$data['user_id']."'");
// Ставим куки
setcookie("id", $data['user_id'], time() +60*60*24*30, "/");
setcookie("hash", $hash, time() +60*60*24*30, "/", null, null, true); // httponly !!!
// Переадресовываем браузер на страницу проверки нашего скрипта
header("Location: check.php"); exit();
}
else
{
echo "Вы ввели неправильный логин/пароль";
}
}
?>
$("#sub").click(function() {
let data_login = $('#login').value();
let data_password = $('#password').value();
$.post("login_ajax.php",
{
login: data_login,
password: data_password,
submit: "submit"
})
.done(function( data ) {
alert( "Сообщение: " + data );
});
});
(function ($) {
"use strict";
/*==================================================================
[ Validate ]*/
var input = $('.validate-input .input100');
$('.validate-form').on('submit',function(){
var check = true;
for(var i=0; i<input.length; i++) {
if(validate(input[i]) == false){
showValidate(input[i]);
check=false;
}
}
return check;
});
$('.validate-form .input100').each(function(){
$(this).focus(function(){
hideValidate(this);
});
});
function validate (input) {
if($(input).attr('type') == 'email' || $(input).attr('name') == 'email') {
if($(input).val().trim().match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\]?)$/) == null) {
return false;
}
}
else {
if($(input).val().trim() == ''){
return false;
}
}
}
function showValidate(input) {
var thisAlert = $(input).parent();
$(thisAlert).addClass('alert-validate');
}
function hideValidate(input) {
var thisAlert = $(input).parent();
$(thisAlert).removeClass('alert-validate');
}
})(jQuery);
<input id="login" name = "login" class="input100" type="text" >
<input id="password" name = "password" class="input100" type="password">
$("#sub").on('click', function() {
let data_login = document.getElementById("login").value;
let data_password = document.getElementById("password").value;
$.post("login_ajax.php", { login: data_login, password: data_password, submit: "submit" })
.done(function( data ) {
alert( "Сообщение: " + data );
});
});