Init commit
This commit is contained in:
0
.gitignore
vendored
Normal file
0
.gitignore
vendored
Normal file
17
classes/MyDB.php
Normal file
17
classes/MyDB.php
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace classes;
|
||||||
|
|
||||||
|
use SQLite3;
|
||||||
|
|
||||||
|
class MyDB extends SQLite3
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->open('mysqlitedb.db');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$db = new MyDB();
|
||||||
|
|
||||||
|
$db->exec('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE, pass TEXT)');
|
||||||
45
index.php
Normal file
45
index.php
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once __DIR__ . '/classes/MyDB.php';
|
||||||
|
|
||||||
|
$title = 'SQLite';
|
||||||
|
$res = '';
|
||||||
|
$name = $_POST['name'];
|
||||||
|
$pass = $_POST['pass'];
|
||||||
|
|
||||||
|
if ($name === '' || $pass === '') {
|
||||||
|
$res = 'All strings required!';
|
||||||
|
unset($_POST);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($_POST['submit'] === 'OK') {
|
||||||
|
global $db;
|
||||||
|
$result = $db->query("SELECT * FROM users WHERE name = '$name'");
|
||||||
|
$auth = $result->fetchArray();
|
||||||
|
|
||||||
|
if ($auth['name'] !== $name || password_verify($pass, $auth['pass']) !== true) {
|
||||||
|
$res = 'Login or password is wrong!';
|
||||||
|
}
|
||||||
|
session_start();
|
||||||
|
$_SESSION['name'] = $auth['name'];
|
||||||
|
$_SESSION['id'] = $auth['id'];
|
||||||
|
header("Location: secret.php");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<?php require_once 'templates/header.php'; ?>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="auth">
|
||||||
|
<h1>Authorization</h1>
|
||||||
|
<form action="/" method="post">
|
||||||
|
<p><input type="text" name="name" id="name" placeholder="Login"></p>
|
||||||
|
<p><input type="password" name="pass" id="pass" placeholder="Password"></p>
|
||||||
|
<p class="error"><?= $res; ?></p>
|
||||||
|
<p><input type="submit" value="OK" name="submit"></p>
|
||||||
|
</form>
|
||||||
|
<p><a href="registration.php">Registration</a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php include_once 'templates/footer.php'; ?>
|
||||||
BIN
mysqlitedb.db
Normal file
BIN
mysqlitedb.db
Normal file
Binary file not shown.
43
registration.php
Normal file
43
registration.php
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
require_once __DIR__ . "/classes/MyDB.php";
|
||||||
|
|
||||||
|
$title = 'Registration';
|
||||||
|
$res = '';
|
||||||
|
|
||||||
|
if ($_POST['name'] === '' || $_POST['pass'] === '') {
|
||||||
|
$res = 'All strings required!';
|
||||||
|
unset($_POST);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($_POST['submit'] === 'OK') {
|
||||||
|
$name = $_POST['name'];
|
||||||
|
$pass = password_hash($_POST['pass'], PASSWORD_DEFAULT);
|
||||||
|
|
||||||
|
global $db;
|
||||||
|
|
||||||
|
$result = $db->query("SELECT * FROM users WHERE name = '$name'");
|
||||||
|
$arr = $result->fetchArray();
|
||||||
|
if ($arr !== false) {
|
||||||
|
$res = "This name is already used!";
|
||||||
|
} else {
|
||||||
|
$db->exec("INSERT INTO users (name, pass) VALUES ('$name', '$pass')");
|
||||||
|
header("Location: index.php");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<?php require_once 'templates/header.php'; ?>
|
||||||
|
|
||||||
|
<div class="auth">
|
||||||
|
<h1>Registration</h1>
|
||||||
|
<form action="registration.php" method="post">
|
||||||
|
<p><input type="text" name="name" id="name" placeholder="Name"></p>
|
||||||
|
<p><input type="password" name="pass" id="pass" placeholder="Password"></p>
|
||||||
|
<p class="error"><?= $res; ?></p>
|
||||||
|
<p><input type="submit" value="OK" name="submit"></p>
|
||||||
|
</form>
|
||||||
|
<p><a href="index.php">Authorization</a></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php include_once 'templates/footer.php'; ?>
|
||||||
28
secret.php
Normal file
28
secret.php
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
$title = 'Secret page';
|
||||||
|
|
||||||
|
if (!$_SESSION['id'] || !$_SESSION['name']) {
|
||||||
|
header("Location: index.php");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
echo 'Your ID: ' . $_SESSION['id'] . "</br>";
|
||||||
|
echo 'Your Name: ' . $_SESSION['name'] . "</br>";
|
||||||
|
|
||||||
|
if ($_GET['do'] === 'logout') {
|
||||||
|
session_destroy();
|
||||||
|
header("Location: index.php");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<?php require_once 'templates/header.php'; ?>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<a href="?do=logout">Logout</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php include_once 'templates/footer.php'; ?>
|
||||||
58
style.css
Normal file
58
style.css
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
* {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: #454444;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.auth {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 20%;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
width: 250px;
|
||||||
|
padding: 30px;
|
||||||
|
border: white solid 1px;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.auth h1 {
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
padding: 5px;
|
||||||
|
margin: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type=button], input[type=submit], input[type=reset] {
|
||||||
|
background-color: #04AA6D;
|
||||||
|
border: none;
|
||||||
|
color: white;
|
||||||
|
padding: 8px 16px;
|
||||||
|
text-decoration: none;
|
||||||
|
margin: 4px 2px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
form {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.auth a {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
2
templates/footer.php
Normal file
2
templates/footer.php
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
</body>
|
||||||
|
</html>
|
||||||
8
templates/header.php
Normal file
8
templates/header.php
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<link rel="stylesheet" href="style.css">
|
||||||
|
<title><?= $title; ?></title>
|
||||||
|
</head>
|
||||||
Reference in New Issue
Block a user