Viljaladu
Information
Kokku reisid: 1
Kokku sisenemismass: 4
Kokku väljumismass: 0
Information
Kokku reisid: 1
Kokku sisenemismass: 3
Kokku väljumismass: 6
Information
Kokku reisid: 1
Kokku sisenemismass: 45
Kokku väljumismass: 56
Information
Kokku reisid: 1
Kokku sisenemismass: 55
Kokku väljumismass: 0
Information
Kokku reisid: 2
Kokku sisenemismass: 140
Kokku väljumismass: 25
Information
Kokku reisid: 2
Kokku sisenemismass: 140
Kokku väljumismass: 25
PHP Koodid
Lehe PHP Kood
<?php
global $yhendus;
if (!empty($_SERVER['QUERY_STRING'])) {
$location_add = implode("&", array_map(fn($el) => implode("=", $el),
array_filter(array_map(fn($el) => explode("=", $el), explode("&", $_SERVER['QUERY_STRING'])),
fn($el) => !in_array($el[0], array("sort", "sortby")))
));
}
$sort = isset($_REQUEST["sort"]) ? $_REQUEST["sort"] : "id";
$otsi = isset($_REQUEST["otsi"]) ? $_REQUEST["otsi"] : "";
$sort_by = isset($_REQUEST["sortby"]) ? $_REQUEST["sortby"] : "DESC";
if (!in_array($sort, array("autonr", "sisenemismass", "lahkumismass")))
$sort = "id";
if (!in_array($sort_by, array("ASC", "DESC")))
$sort_by = "DESC";
$otsi_esc = $yhendus->real_escape_string($otsi);
$kask = $yhendus->prepare("SELECT id, autonr, sisenemismass, lahkumismass FROM koormad WHERE autonr LIKE '%$otsi_esc%' ORDER BY $sort $sort_by");
$kask->bind_result($id, $autonr_, $sisenemismass, $lahkumismass);
$kask->execute();
$autod = array();
while ($kask->fetch()) {
$auto = new stdClass();
$auto->id = $id;
$auto->autonr = htmlspecialchars($autonr_);
$auto->sisenemismass = $sisenemismass;
$auto->lahkumismass = $lahkumismass;
array_push($autod, $auto);
}
$sort_str_autonr = $sort == 'autonr' && $sort_by == 'DESC' ? '&sortby=ASC' : '';
$sort_str_sisene = $sort == 'sisenemismass' && $sort_by == 'DESC' ? '&sortby=ASC' : '';
$sort_str_lahkum = $sort == 'lahkumismass' && $sort_by == 'DESC' ? '&sortby=ASC' : '';
$location_add_links = "?" . (!empty($location_add) ? $location_add . "&" : "");
?>
<div class="container-fluid mb-5">
<h2 class="display-5 mb-5">Viljaladu</h2>
<div class="row g-2 mb-3">
<div class="col-auto">
<button type="button" class="btn btn-info" data-bs-toggle="modal" data-bs-target="#lehti-koodid">
PHP Koodid
</button>
<?php if ($_SESSION["admin"] === true): ?>
<button type="button" class="btn btn-warning" data-bs-toggle="modal" data-bs-target="#lisa-auto-modal">
Lisa auto
</button>
<?php endif; ?>
<a href="index.php" class="btn btn-outline-info">
Tühista
</a>
</div>
</div>
<form action="?">
<div class="row g-3 mb-5 col-sm-3">
<div class="input-group col col-auto">
<!-- name="otsisona" aria-label="Otsi" aria-describedby="otsisona" -->
<input class="form-control" list="otsi" name="otsi" id="otsilist" placeholder="Otsi auto..." aria-label="Otsi" aria-describedby="otsi" <?= ($otsi != "") ? "value='$otsi'" : "" ?>>
<datalist id="otsi">
<?php foreach ($autod as $auto): ?>
<option value="<?= $auto->autonr ?>">
<?php endforeach; ?>
</datalist>
<button type="submit" class="btn btn-primary">Otsi</button>
</div>
</div>
</form>
<form method="post" action="">
<table class="table table-striped table-hover table-responsive">
<tr>
<th><a class="link-body-emphasis link-offset-2 link-offset-3-hover link-underline link-underline-opacity-0 link-underline-opacity-75-hover" href="<?=$location_add_links?>sort=autonr<?=$sort_str_autonr?>">Auto nr. <i class="fa-solid fa-sort"></i></a></th>
<th><a class="link-body-emphasis link-offset-2 link-offset-3-hover link-underline link-underline-opacity-0 link-underline-opacity-75-hover" href="<?=$location_add_links?>sort=sisenemismass<?=$sort_str_sisene?>">Sisenemismass <i class="fa-solid fa-sort"></i></a></th>
<th><a class="link-body-emphasis link-offset-2 link-offset-3-hover link-underline link-underline-opacity-0 link-underline-opacity-75-hover" href="<?=$location_add_links?>sort=lahkumismass<?=$sort_str_lahkum?>">Väljumismass <i class="fa-solid fa-sort"></i></a></th>
<th></th>
</tr>
<?php foreach($autod as &$auto): ?>
<?php $modal_name = "auto". $auto->id; ?>
<tr>
<td><a class="link-info link-offset-2" href="#<?php echo $modal_name; ?>-modal" data-bs-toggle="modal" data-bs-target="#<?php echo $modal_name; ?>-modal"><?= $auto->autonr ?></a></td>
<td><?= $auto->sisenemismass ?></td>
<td><?= $auto->lahkumismass ?></td>
<?php if ($_SESSION["admin"] === true): ?>
<td>
<a class="link-primary link-offset-2" href="#lisa-mass-modal" data-bs-toggle="modal" data-bs-target="#lisa-mass-modal" data-bs-auto_id="<?= $auto->id ?>">
<i class="fa-solid fa-file-pen"></i> Lisa/Muuda väljumismass
</a>
</td>
<?php else: ?>
<td></td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
</table>
</form>
</div>
<!-- Modals -->
<form method="post" action="">
<div class="modal fade" id="lisa-auto-modal" tabindex="-1" aria-labelledby="lisa-auto-modal-label" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="lisa-auto-modal-label">Auto lisamine</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body g-3">
<dl>
<dd>
<div class="input-group col">
<span class="input-group-text">Auto number (eg. 789ZXC)</span>
<input class="form-control" type="text" maxlength="6" name="autonr" aria-label="Auto number" required />
</div>
</dd>
<dd>
<div class="input-group col">
<span class="input-group-text">Sisenemismass</span>
<input class="form-control" type="number" name="sisenemismass" aria-label="Sisenemismass" required />
</div>
</dd>
</dl>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary" name="autolisamine">Lisa</button>
</div>
</div>
</div>
</div>
</form>
<form method="post" action="">
<div class="modal fade" id="lisa-mass-modal" tabindex="-1" aria-labelledby="lisa-mass-modal-label" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="lisa-mass-modal-label">Väljumismass lisamine</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<input type="hidden" id="auto_id" name="auto_id" />
<div class="input-group col">
<span class="input-group-text">Väljumismass</span>
<input class="form-control" type="number" name="valjumismass" aria-label="Väljumismass" required />
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary" name="masslisamine">Lisa</button>
</div>
</div>
</div>
</div>
</form>
<?php foreach($autod as &$auto): ?>
<?php $modal_name = "auto". $auto->id; ?>
<div class="modal fade" id="<?php echo $modal_name; ?>-modal" tabindex="-1" aria-labelledby="<?php echo $modal_name; ?>-modal-label" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="<?php echo $modal_name; ?>-modal-label">Information</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<?php
$r = array_filter($autod, function($elem) use($auto) {
return $elem->autonr == $auto->autonr;
});
?>
<div class="container-fluid mx-2">
<div class="row">
Kokku reisid: <?php echo count($r); ?>
</div>
<div class="row">
Kokku sisenemismass: <?php echo array_sum(array_column($r, 'sisenemismass')); ?>
</div>
<div class="row">
Kokku väljumismass: <?php echo array_sum(array_column($r, 'lahkumismass')); ?>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
<div class="modal fade" id="lehti-koodid" tabindex="-1" aria-labelledby="lehti-koodid-label" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="lehti-koodid-label">PHP Koodid</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="p-1">
<button type="button" class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#lehti-main-kood" data-bs-page="content/main.php">
PHP Kood (main.php)
</button>
</div>
<div class="p-1">
<button type="button" class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#lehti-index-kood" data-bs-page="index.php">
PHP Kood (index.php)
</button>
</div>
<div class="p-1">
<button type="button" class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#lehti-func-kood" data-bs-page="libs/func.php">
PHP Kood (func.php)
</button>
</div>
<div class="p-1">
<button type="button" class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#lehti-headers-kood" data-bs-page="libs/headers.php">
PHP Kood (headers.php)
</button>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="lehti-main-kood" tabindex="-1" aria-labelledby="lehti-main-kood-label" aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable modal-xl">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="lehti-main-kood-label">Lehe PHP Kood</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<?php highlight_file('content/main.php'); ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#lehti-koodid">Tagasi</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="lehti-index-kood" tabindex="-1" aria-labelledby="lehti-index-kood-label" aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable modal-xl">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="lehti-index-kood-label">Lehe PHP Kood</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<?php highlight_file('index.php'); ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#lehti-koodid">Tagasi</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="lehti-func-kood" tabindex="-1" aria-labelledby="lehti-func-kood-label" aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable modal-xl">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="lehti-func-kood-label">Lehe PHP Kood</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<?php highlight_file('libs/func.php'); ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#lehti-koodid">Tagasi</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="lehti-headers-kood" tabindex="-1" aria-labelledby="lehti-headers-kood-label" aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable modal-xl">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="lehti-headers-kood-label">Lehe PHP Kood</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<?php highlight_file('libs/headers.php'); ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#lehti-koodid">Tagasi</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<script>
const lisaMassMadal = document.querySelector('#lisa-mass-modal');
lisaMassMadal.addEventListener('show.bs.modal', function(event) {
const button = event.relatedTarget;
const auto_id = button.getAttribute('data-bs-auto_id');
document.getElementById('auto_id').value = auto_id;
});
</script>
Lehe PHP Kood
<?php
require('libs/func.php');
require('libs/conf.php');
require('libs/headers.php');
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Viljaladu</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="style/style.css">
</head>
<body>
<?php
include('template/header.php');
include('template/navigation.php');
?>
<main>
<?php
if (isset($_REQUEST['init_ok'])) {
echo "<h1>Database initialized</h1>";
}
?>
<?php
$container_ = !empty($_GET["container"]) ? $_GET["container"] : "content";
$page_ = !empty($_GET["page"]) ? $_GET["page"] : "main";
$page_ .= !str_contains($page_, '.php') ? '.php' : '';
if ($page_ == 'login.php')
include('template/login.php');
else if ($page_ == 'ylesanne.php') {
$filename = !empty($_GET['lang']) && $_GET['lang'] == 'ru' ? 'ulesanne_rus.txt' : 'ulesanne.txt';
$file = fopen($filename, 'r');
if ($file == false) {
echo "<pre>Error in opening file</pre>";
} else {
$filesize = filesize($filename);
$filetext = fread($file, $filesize);
fclose($file);
echo "<pre>$filetext</pre>";
}
} else if (file_exists($container_ . '/' . $page_)) {
include($container_.'/'.$page_);
}
?>
</main>
<?php
include('template/footer.php');
?>
<script src="https://code.jquery.com/jquery-3.7.1.slim.min.js" integrity="sha256-kmHvs0B+OpCW5GVHUNjv9rOmY0IvSIRcf7zGUDTDQM8=" crossorigin="anonymous"></script>
<script src="https://unpkg.com/@popperjs/core@2"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL" crossorigin="anonymous"></script>
</body>
</html>
Lehe PHP Kood
<?php
// based on original work from the PHP Laravel framework
if (!function_exists('str_contains')) {
function str_contains($haystack, $needle)
{
return $needle !== '' && mb_strpos($haystack, $needle) !== false;
}
}
Lehe PHP Kood
<?php
global $yhendus;
session_start();
$page_ = isset($_REQUEST['page']) ? $_REQUEST['page'] : "main";
$page_check = !str_contains($page_, '.php') ? $page_ . '.php' : $page_;
$tagasi = (isset($_REQUEST['tagasi']) && !empty($_REQUEST['tagasi'])) ? $_REQUEST['tagasi'] : "main";
$tagasi_check = !str_contains($tagasi, '.php') ? $tagasi . '.php' : $tagasi;
if (!file_exists('content/' . $tagasi_check)) {
$tagasi = "main";
}
if (!isset($_SESSION["error"])) {
$_SESSION["error"] = "";
}
if (!isset($_SESSION["admin"])) {
$_SESSION["admin"] = false;
}
if ($page_check == 'login.php') {
if (isset($_SESSION['tuvastamine'])) {
header("Location: $_SERVER[PHP_SELF]?page=$tagasi");
exit();
}
if (!empty($_POST['login']) && !empty($_POST['pass'])) {
$login = htmlspecialchars(trim($_POST['login']));
$pass = htmlspecialchars(trim($_POST['pass']));
$sool = 'taiestisuvalinetekst';
$krypt = crypt($pass, $sool);
// kontrollime kas andmebaasis on selline kasutaja
$kask = $yhendus->prepare("SELECT id, kasutaja, parool, isadmin FROM kasutajad WHERE kasutaja=?");
$kask->bind_param("s", $login);
$kask->bind_result($id, $kasutajanimi, $parool, $onadmin);
$kask->execute();
if ($kask->fetch() && $krypt == $parool) {
$_SESSION['kasutaja'] = $login;
if ($onadmin == 1) {
$_SESSION['admin'] = true;
}
header("Location: index.php");
exit();
} else {
header("Location: $_SERVER[PHP_SELF]?page=$page_&errormsg=1");
exit();
}
}
}
if ($page_check == 'logout.php') {
session_destroy();
header("Location: $_SERVER[PHP_SELF]?page=$tagasi");
exit();
}
if ($page_check == 'main.php') {
if (isset($_REQUEST["masslisamine"])) {
if (!empty($_REQUEST["valjumismass"]) && !empty($_REQUEST["auto_id"]) && !preg_match("#[A-z]#", $_REQUEST["valjumismass"])) {
$kask = $yhendus->prepare("UPDATE koormad SET lahkumismass=? WHERE id=?");
$kask->bind_param("ii", $_REQUEST["valjumismass"], $_REQUEST["auto_id"]);
$kask->execute();
}
}
if (isset($_REQUEST["autolisamine"])) {
if (!empty($_REQUEST["autonr"]) && !empty($_REQUEST["sisenemismass"]) && !preg_match("#[A-z]#", $_REQUEST["sisenemismass"])) {
$kask = $yhendus->prepare("INSERT INTO koormad (autonr, sisenemismass, lahkumismass) VALUES (?, ?, 0)");
$kask->bind_param("si", $_REQUEST["autonr"], $_REQUEST["sisenemismass"]);
$kask->execute();
}
}
}