added login

This commit is contained in:
2022-06-07 22:03:52 +02:00
parent 430eaa8586
commit d12782ae5c
10 changed files with 190 additions and 10 deletions

View File

@@ -0,0 +1,15 @@
<?php
$dbhost = "mysql";
$dbuser = "grisu";
$dbpass = "secret";
$dbname = "ksp";
try {
$con = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOExeption $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}

View File

@@ -1,5 +1,10 @@
<?php
function handle_pdo_exception($e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
function get_Station() {
try {
$dbh = new PDO('mysql:host=mysql;dbname=ksp', 'grisu', 'secret');
@@ -8,9 +13,53 @@ function get_Station() {
}
$dbh = null;
} catch(PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
handle_pdo_exception($e);
}
}
?>
function check_user_id($con, $user_id) {
try {
$stmt = $con->prepare('SELECT user_id FROM users WHERE user_id = :user_id limit 1');
$stmt->execute(['user_id' => $user_id]);
if($stmt) {
return true;
} else {
return false;
}
} catch(PDOException $e) {
handle_pdo_exception($e);
}
}
function get_user_data_name($con, $user_name) {
try {
$stmt = $con->prepare('SELECT * FROM users WHERE user_name = :user_name limit 1');
$stmt->execute(['user_name' => $user_name]);
$stmt->setFetchMode(PDO::FETCH_ASSOC);
return $stmt->fetch();
} catch(PDOException $e) {
handle_pdo_exception($e);
}
}
function get_user_data_id($con, $user_id) {
try {
$stmt = $con->prepare('SELECT * FROM users WHERE user_id = :user_id limit 1');
$stmt->execute(['user_id' => $user_id]);
$stmt->setFetchMode(PDO::FETCH_ASSOC);
return $stmt->fetch();
} catch(PDOException $e) {
handle_pdo_exception($e);
}
}
function add_user($con, $username, $user_id, $user_group, $password, $salt) {
try {
$stmt = $con->prepare("INSERT INTO users (user_id, password, user_name, salt, user_group) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("sssss", $user_id, $password, $username, $salt, $user_group);
$stmt->execute();
} catch(PDOExeption $e) {
handle_pdo_exception($e);
}
}

34
app/scripts/functions.php Normal file
View File

@@ -0,0 +1,34 @@
<?php
include("database_queries.php");
function check_login($con) {
if(isset($_SESSION['user_id'])) {
$id = $_SESSION['user_id'];
if(check_user_id($con, $id)) {
return get_user_data_id($con, $id);
} else {
header("Location: login.php");
die;
}
} else {
header("Location: login.php");
die;
}
}
function generate_salt() {
return substr(bin2hex(random_bytes(128)), 0, 128);
}
function generate_user_id($username, $salt) {
$uname = $username . $salt;
return hash('sha3-512', $uname);
}
function generate_password_hash($password, $salt) {
$pword = $password . $salt;
return hash('sha3-512', $pword);
}