Jakub Škrabánek 2 years ago
parent
commit
fad2db1dfd
  1. 24
      nk_part5/action_delete.php
  2. 25
      nk_part5/action_login.php
  3. 30
      nk_part5/action_reg.php
  4. 34
      nk_part5/action_update_prispevky.php
  5. 18
      nk_part5/action_write.php
  6. 3
      nk_part5/admin.css
  7. 90
      nk_part5/admin.php
  8. 4085
      nk_part5/css/bootstrap-grid.css
  9. 1
      nk_part5/css/bootstrap-grid.css.map
  10. 6
      nk_part5/css/bootstrap-grid.min.css
  11. 1
      nk_part5/css/bootstrap-grid.min.css.map
  12. 4084
      nk_part5/css/bootstrap-grid.rtl.css
  13. 1
      nk_part5/css/bootstrap-grid.rtl.css.map
  14. 6
      nk_part5/css/bootstrap-grid.rtl.min.css
  15. 1
      nk_part5/css/bootstrap-grid.rtl.min.css.map
  16. 591
      nk_part5/css/bootstrap-reboot.css
  17. 1
      nk_part5/css/bootstrap-reboot.css.map
  18. 6
      nk_part5/css/bootstrap-reboot.min.css
  19. 1
      nk_part5/css/bootstrap-reboot.min.css.map
  20. 588
      nk_part5/css/bootstrap-reboot.rtl.css
  21. 1
      nk_part5/css/bootstrap-reboot.rtl.css.map
  22. 6
      nk_part5/css/bootstrap-reboot.rtl.min.css
  23. 1
      nk_part5/css/bootstrap-reboot.rtl.min.css.map
  24. 5397
      nk_part5/css/bootstrap-utilities.css
  25. 1
      nk_part5/css/bootstrap-utilities.css.map
  26. 6
      nk_part5/css/bootstrap-utilities.min.css
  27. 1
      nk_part5/css/bootstrap-utilities.min.css.map
  28. 5388
      nk_part5/css/bootstrap-utilities.rtl.css
  29. 1
      nk_part5/css/bootstrap-utilities.rtl.css.map
  30. 6
      nk_part5/css/bootstrap-utilities.rtl.min.css
  31. 1
      nk_part5/css/bootstrap-utilities.rtl.min.css.map
  32. 12113
      nk_part5/css/bootstrap.css
  33. 1
      nk_part5/css/bootstrap.css.map
  34. 6
      nk_part5/css/bootstrap.min.css
  35. 1
      nk_part5/css/bootstrap.min.css.map
  36. 12077
      nk_part5/css/bootstrap.rtl.css
  37. 1
      nk_part5/css/bootstrap.rtl.css.map
  38. 6
      nk_part5/css/bootstrap.rtl.min.css
  39. 1
      nk_part5/css/bootstrap.rtl.min.css.map
  40. 5
      nk_part5/footer.php
  41. 44
      nk_part5/index.php
  42. 35
      nk_part5/informace.md
  43. 6295
      nk_part5/js/bootstrap.bundle.js
  44. 1
      nk_part5/js/bootstrap.bundle.js.map
  45. 7
      nk_part5/js/bootstrap.bundle.min.js
  46. 1
      nk_part5/js/bootstrap.bundle.min.js.map
  47. 4423
      nk_part5/js/bootstrap.esm.js
  48. 1
      nk_part5/js/bootstrap.esm.js.map
  49. 7
      nk_part5/js/bootstrap.esm.min.js
  50. 1
      nk_part5/js/bootstrap.esm.min.js.map
  51. 4469
      nk_part5/js/bootstrap.js
  52. 1
      nk_part5/js/bootstrap.js.map
  53. 7
      nk_part5/js/bootstrap.min.js
  54. 1
      nk_part5/js/bootstrap.min.js.map
  55. 84
      nk_part5/list.php
  56. 39
      nk_part5/login.php
  57. 6
      nk_part5/logout.php
  58. 23
      nk_part5/menu.php
  59. 56
      nk_part5/nk_part3.sql
  60. 55
      nk_part5/part2.sql
  61. 52
      nk_part5/reg.php
  62. 61
      nk_part5/update_prispevky.php
  63. 42
      nk_part5/write.php

24
nk_part5/action_delete.php

@ -0,0 +1,24 @@
<?php
session_start();
require("init.php");
// kontrola jestli to otevira clověk s dostatenym právem
if(isset($_SESSION["role"])){
if($_SESSION["role"] < 5){
header("Location: /?error=2");
}
}
$id = $_GET["id"];
$sql = "DELETE FROM nk_prispevky WHERE id=$id";
if (mysqli_query($conn,$sql)) {
echo "příkaz byl vykonán";
header("Location: /?del=$id");
} else {
echo "Error:" .$sql."<br>". mysqli_errno($conn);
}
?>

25
nk_part5/action_login.php

@ -0,0 +1,25 @@
<?php
session_start();
require("init.php");
$username = $_POST["username"];
$pw = $_POST["pw"];
$sql = "SELECT * FROM nk_users
WHERE username='$username' AND password='$pw'";
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) == 1) {
$row = mysqli_fetch_assoc($result);
$_SESSION["logged"] = 1; // stav přihlášení
$_SESSION["username"] = $row["username"]; // zobrazované jméno
$_SESSION["role"] = $row["role"]; //hodnota role
$_SESSION["userid"] = $row["id"]; // jednodušší write
header("Location: /");
} else {
header("Location: login.php?error=1");
}
?>

30
nk_part5/action_reg.php

@ -0,0 +1,30 @@
<?php
session_start();
include("init.php");
$username = $_POST["username"];
$pw1 = $_POST["pw1"];
$pw2 = $_POST["pw2"];
if ($pw1 != $pw2) {
header("Location: reg.php?error=1");
}
$sql = "INSERT INTO nk_users(username,password,role)
VALUES ('$username','$pw1','5')";
if (mysqli_query($conn,$sql)){
$last_id = mysqli_insert_id($conn);
echo "uživatel byl vytvořen, jeho id: ".$last_id ;
$_SESSION["logged"] = 1;
$_SESSION["username"] = $username;
$_SESSION["role"] = "5";
$_SESSION["userid"] = $last_id;
header("Location: /");
} else {
echo "error:" . mysqli_error($conn);
}
?>

34
nk_part5/action_update_prispevky.php

@ -0,0 +1,34 @@
<?php
session_start();
require("init.php");
// kontrola jestli to otevira clověk s dostatenym právem
if(isset($_SESSION["role"])){
if($_SESSION["role"] == 5){
header("Location: /?error=2");
}
}
//načtení odeslaných dat
$id = $_POST["id"];
$id_nk_users = $_POST["id_nk_users"];
$title = $_POST["title"];
$msg = $_POST["msg"];
$sql = "UPDATE nk_prispevky SET
id_nk_users='$id_nk_users',
title='$title',
msg='$msg'
WHERE id=$id";
if(mysqli_query($conn,$sql)) {
header("Location: /?update=1");
} else {
header("Location: /error=4");
}
?>

18
nk_part5/action_write.php

@ -0,0 +1,18 @@
<?php
session_start();
include("init.php");
$title = $_POST["title"];
$msg = $_POST["msg"];
$userid = $_SESSION["userid"];
$sql = "INSERT INTO nk_prispevky(id_nk_users,title,msg,created)
VALUES ('$userid','$title','$msg',now())";
if(mysqli_query($conn,$sql)){
echo "bylo zapsáno do knihy";
header("Location: /list.php");
} else{
echo "error:". mysqli_error($conn);
}
?>

3
nk_part5/admin.css

@ -0,0 +1,3 @@
td, th {
border: 1px solid black;
}

90
nk_part5/admin.php

@ -0,0 +1,90 @@
<?php
session_start();
include("init.php");
$ptitle = "Návštěvní kniha - ADMIN";
if(isset($_SESSION["role"])){
if($_SESSION["role"] != 1){
header("Location: /?error=2");
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Navštěvní kniha</title>
<link rel="stylesheet" href="admin.css">
<link rel="stylesheet" href="css/bootstrap.css">
</head>
<body class="d-flex flex-column min-vh-100">
<div class="container">
<?php
include "menu.php";
?>
<hr>
<!-- PHP výpis pro příspěvky -->
<h2>Příspěvky</h2>
<table>
<tr>
<th>id</th>
<th>title</th>
<th>msg</th>
<th>Autor</th>
<th>role autora</th>
<th>čas vytvoření</th>
<th>delete</th>
<th>update</th>
</tr>
<?php
$sql = "SELECT nk_prispevky.id, nk_users.username, nk_prispevky.title, nk_prispevky.msg, nk_prispevky.created, nk_users.role
FROM nk_prispevky
INNER JOIN nk_users ON nk_prispevky.id_nk_users = nk_users.id
ORDER BY nk_prispevky.id DESC";
$result = mysqli_query($conn,$sql);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)){
echo "<tr>";
echo "<td>".$row["id"]."</td>";
echo "<td>".$row["title"]."</td>";
echo "<td>".$row["msg"]."</td>";
echo "<td>".$row["created"]."</td>";
echo "<td>".$row["username"]."</td>";
echo "<td>".$row["role"]."</td>"; //id=5">
echo "<td> <a href=\"action_delete.php?id=".$row["id"]."\">Delete</a></td>";
echo "<td> <a href=\"update_prispevky.php?id=".$row["id"]."\">UPDATE</a></td>";
echo "</tr>";
}
}
?>
</table>
<h2>Users</h2>
<?php
$sql = "SELECT * FROM nk_users";
$result = mysqli_query($conn,$sql);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)){
echo "<p>id:".$row["id"]."; user:".$row["username"]."</p>";
}
}
?>
</div>
<?php
include "footer.php";
?>
<script src="js/bootstrap.bundle.js"></script>
</body>
</html>

4085
nk_part5/css/bootstrap-grid.css

File diff suppressed because it is too large

1
nk_part5/css/bootstrap-grid.css.map

File diff suppressed because one or more lines are too long

6
nk_part5/css/bootstrap-grid.min.css

File diff suppressed because one or more lines are too long

1
nk_part5/css/bootstrap-grid.min.css.map

File diff suppressed because one or more lines are too long

4084
nk_part5/css/bootstrap-grid.rtl.css

File diff suppressed because it is too large

1
nk_part5/css/bootstrap-grid.rtl.css.map

File diff suppressed because one or more lines are too long

6
nk_part5/css/bootstrap-grid.rtl.min.css

File diff suppressed because one or more lines are too long

1
nk_part5/css/bootstrap-grid.rtl.min.css.map

File diff suppressed because one or more lines are too long

591
nk_part5/css/bootstrap-reboot.css

@ -0,0 +1,591 @@
/*!
* Bootstrap Reboot v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
:root,
[data-bs-theme=light] {
--bs-blue: #0d6efd;
--bs-indigo: #6610f2;
--bs-purple: #6f42c1;
--bs-pink: #d63384;
--bs-red: #dc3545;
--bs-orange: #fd7e14;
--bs-yellow: #ffc107;
--bs-green: #198754;
--bs-teal: #20c997;
--bs-cyan: #0dcaf0;
--bs-black: #000;
--bs-white: #fff;
--bs-gray: #6c757d;
--bs-gray-dark: #343a40;
--bs-gray-100: #f8f9fa;
--bs-gray-200: #e9ecef;
--bs-gray-300: #dee2e6;
--bs-gray-400: #ced4da;
--bs-gray-500: #adb5bd;
--bs-gray-600: #6c757d;
--bs-gray-700: #495057;
--bs-gray-800: #343a40;
--bs-gray-900: #212529;
--bs-primary: #0d6efd;
--bs-secondary: #6c757d;
--bs-success: #198754;
--bs-info: #0dcaf0;
--bs-warning: #ffc107;
--bs-danger: #dc3545;
--bs-light: #f8f9fa;
--bs-dark: #212529;
--bs-primary-rgb: 13, 110, 253;
--bs-secondary-rgb: 108, 117, 125;
--bs-success-rgb: 25, 135, 84;
--bs-info-rgb: 13, 202, 240;
--bs-warning-rgb: 255, 193, 7;
--bs-danger-rgb: 220, 53, 69;
--bs-light-rgb: 248, 249, 250;
--bs-dark-rgb: 33, 37, 41;
--bs-primary-text-emphasis: #052c65;
--bs-secondary-text-emphasis: #2b2f32;
--bs-success-text-emphasis: #0a3622;
--bs-info-text-emphasis: #055160;
--bs-warning-text-emphasis: #664d03;
--bs-danger-text-emphasis: #58151c;
--bs-light-text-emphasis: #495057;
--bs-dark-text-emphasis: #495057;
--bs-primary-bg-subtle: #cfe2ff;
--bs-secondary-bg-subtle: #e2e3e5;
--bs-success-bg-subtle: #d1e7dd;
--bs-info-bg-subtle: #cff4fc;
--bs-warning-bg-subtle: #fff3cd;
--bs-danger-bg-subtle: #f8d7da;
--bs-light-bg-subtle: #fcfcfd;
--bs-dark-bg-subtle: #ced4da;
--bs-primary-border-subtle: #9ec5fe;
--bs-secondary-border-subtle: #c4c8cb;
--bs-success-border-subtle: #a3cfbb;
--bs-info-border-subtle: #9eeaf9;
--bs-warning-border-subtle: #ffe69c;
--bs-danger-border-subtle: #f1aeb5;
--bs-light-border-subtle: #e9ecef;
--bs-dark-border-subtle: #adb5bd;
--bs-white-rgb: 255, 255, 255;
--bs-black-rgb: 0, 0, 0;
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
--bs-body-font-family: var(--bs-font-sans-serif);
--bs-body-font-size: 1rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-body-color: #212529;
--bs-body-color-rgb: 33, 37, 41;
--bs-body-bg: #fff;
--bs-body-bg-rgb: 255, 255, 255;
--bs-emphasis-color: #000;
--bs-emphasis-color-rgb: 0, 0, 0;
--bs-secondary-color: rgba(33, 37, 41, 0.75);
--bs-secondary-color-rgb: 33, 37, 41;
--bs-secondary-bg: #e9ecef;
--bs-secondary-bg-rgb: 233, 236, 239;
--bs-tertiary-color: rgba(33, 37, 41, 0.5);
--bs-tertiary-color-rgb: 33, 37, 41;
--bs-tertiary-bg: #f8f9fa;
--bs-tertiary-bg-rgb: 248, 249, 250;
--bs-link-color: #0d6efd;
--bs-link-color-rgb: 13, 110, 253;
--bs-link-decoration: underline;
--bs-link-hover-color: #0a58ca;
--bs-link-hover-color-rgb: 10, 88, 202;
--bs-code-color: #d63384;
--bs-highlight-bg: #fff3cd;
--bs-border-width: 1px;
--bs-border-style: solid;
--bs-border-color: #dee2e6;
--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
--bs-border-radius: 0.375rem;
--bs-border-radius-sm: 0.25rem;
--bs-border-radius-lg: 0.5rem;
--bs-border-radius-xl: 1rem;
--bs-border-radius-xxl: 2rem;
--bs-border-radius-2xl: var(--bs-border-radius-xxl);
--bs-border-radius-pill: 50rem;
--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
--bs-focus-ring-width: 0.25rem;
--bs-focus-ring-opacity: 0.25;
--bs-focus-ring-color: rgba(13, 110, 253, 0.25);
--bs-form-valid-color: #198754;
--bs-form-valid-border-color: #198754;
--bs-form-invalid-color: #dc3545;
--bs-form-invalid-border-color: #dc3545;
}
[data-bs-theme=dark] {
color-scheme: dark;
--bs-body-color: #adb5bd;
--bs-body-color-rgb: 173, 181, 189;
--bs-body-bg: #212529;
--bs-body-bg-rgb: 33, 37, 41;
--bs-emphasis-color: #fff;
--bs-emphasis-color-rgb: 255, 255, 255;
--bs-secondary-color: rgba(173, 181, 189, 0.75);
--bs-secondary-color-rgb: 173, 181, 189;
--bs-secondary-bg: #343a40;
--bs-secondary-bg-rgb: 52, 58, 64;
--bs-tertiary-color: rgba(173, 181, 189, 0.5);
--bs-tertiary-color-rgb: 173, 181, 189;
--bs-tertiary-bg: #2b3035;
--bs-tertiary-bg-rgb: 43, 48, 53;
--bs-primary-text-emphasis: #6ea8fe;
--bs-secondary-text-emphasis: #a7acb1;
--bs-success-text-emphasis: #75b798;
--bs-info-text-emphasis: #6edff6;
--bs-warning-text-emphasis: #ffda6a;
--bs-danger-text-emphasis: #ea868f;
--bs-light-text-emphasis: #f8f9fa;
--bs-dark-text-emphasis: #dee2e6;
--bs-primary-bg-subtle: #031633;
--bs-secondary-bg-subtle: #161719;
--bs-success-bg-subtle: #051b11;
--bs-info-bg-subtle: #032830;
--bs-warning-bg-subtle: #332701;
--bs-danger-bg-subtle: #2c0b0e;
--bs-light-bg-subtle: #343a40;
--bs-dark-bg-subtle: #1a1d20;
--bs-primary-border-subtle: #084298;
--bs-secondary-border-subtle: #41464b;
--bs-success-border-subtle: #0f5132;
--bs-info-border-subtle: #087990;
--bs-warning-border-subtle: #997404;
--bs-danger-border-subtle: #842029;
--bs-light-border-subtle: #495057;
--bs-dark-border-subtle: #343a40;
--bs-link-color: #6ea8fe;
--bs-link-hover-color: #8bb9fe;
--bs-link-color-rgb: 110, 168, 254;
--bs-link-hover-color-rgb: 139, 185, 254;
--bs-code-color: #e685b5;
--bs-border-color: #495057;
--bs-border-color-translucent: rgba(255, 255, 255, 0.15);
--bs-form-valid-color: #75b798;
--bs-form-valid-border-color: #75b798;
--bs-form-invalid-color: #ea868f;
--bs-form-invalid-border-color: #ea868f;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
@media (prefers-reduced-motion: no-preference) {
:root {
scroll-behavior: smooth;
}
}
body {
margin: 0;
font-family: var(--bs-body-font-family);
font-size: var(--bs-body-font-size);
font-weight: var(--bs-body-font-weight);
line-height: var(--bs-body-line-height);
color: var(--bs-body-color);
text-align: var(--bs-body-text-align);
background-color: var(--bs-body-bg);
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
hr {
margin: 1rem 0;
color: inherit;
border: 0;
border-top: var(--bs-border-width) solid;
opacity: 0.25;
}
h6, h5, h4, h3, h2, h1 {
margin-top: 0;
margin-bottom: 0.5rem;
font-weight: 500;
line-height: 1.2;
color: var(--bs-heading-color, inherit);
}
h1 {
font-size: calc(1.375rem + 1.5vw);
}
@media (min-width: 1200px) {
h1 {
font-size: 2.5rem;
}
}
h2 {
font-size: calc(1.325rem + 0.9vw);
}
@media (min-width: 1200px) {
h2 {
font-size: 2rem;
}
}
h3 {
font-size: calc(1.3rem + 0.6vw);
}
@media (min-width: 1200px) {
h3 {
font-size: 1.75rem;
}
}
h4 {
font-size: calc(1.275rem + 0.3vw);
}
@media (min-width: 1200px) {
h4 {
font-size: 1.5rem;
}
}
h5 {
font-size: 1.25rem;
}
h6 {
font-size: 1rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title] {
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul {
padding-left: 2rem;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: 0.5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 0.875em;
}
mark {
padding: 0.1875em;
background-color: var(--bs-highlight-bg);
}
sub,
sup {
position: relative;
font-size: 0.75em;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
a {
color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
text-decoration: underline;
}
a:hover {
--bs-link-color-rgb: var(--bs-link-hover-color-rgb);
}
a:not([href]):not([class]), a:not([href]):not([class]):hover {
color: inherit;
text-decoration: none;
}
pre,
code,
kbd,
samp {
font-family: var(--bs-font-monospace);
font-size: 1em;
}
pre {
display: block;
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
font-size: 0.875em;
}
pre code {
font-size: inherit;
color: inherit;
word-break: normal;
}
code {
font-size: 0.875em;
color: var(--bs-code-color);
word-wrap: break-word;
}
a > code {
color: inherit;
}
kbd {
padding: 0.1875rem 0.375rem;
font-size: 0.875em;
color: var(--bs-body-bg);
background-color: var(--bs-body-color);
border-radius: 0.25rem;
}
kbd kbd {
padding: 0;
font-size: 1em;
}
figure {
margin: 0 0 1rem;
}
img,
svg {
vertical-align: middle;
}
table {
caption-side: bottom;
border-collapse: collapse;
}
caption {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
color: var(--bs-secondary-color);
text-align: left;
}
th {
text-align: inherit;
text-align: -webkit-match-parent;
}
thead,
tbody,
tfoot,
tr,
td,
th {
border-color: inherit;
border-style: solid;
border-width: 0;
}
label {
display: inline-block;
}
button {
border-radius: 0;
}
button:focus:not(:focus-visible) {
outline: 0;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
select {
text-transform: none;
}
[role=button] {
cursor: pointer;
}
select {
word-wrap: normal;
}
select:disabled {
opacity: 1;
}
[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
display: none !important;
}
button,
[type=button],
[type=reset],
[type=submit] {
-webkit-appearance: button;
}
button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
cursor: pointer;
}
::-moz-focus-inner {
padding: 0;
border-style: none;
}
textarea {
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
float: left;
width: 100%;
padding: 0;
margin-bottom: 0.5rem;
font-size: calc(1.275rem + 0.3vw);
line-height: inherit;
}
@media (min-width: 1200px) {
legend {
font-size: 1.5rem;
}
}
legend + * {
clear: left;
}
::-webkit-datetime-edit-fields-wrapper,
::-webkit-datetime-edit-text,
::-webkit-datetime-edit-minute,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-year-field {
padding: 0;
}
::-webkit-inner-spin-button {
height: auto;
}
[type=search] {
outline-offset: -2px;
-webkit-appearance: textfield;
}
/* rtl:raw:
[type="tel"],
[type="url"],
[type="email"],
[type="number"] {
direction: ltr;
}
*/
::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-color-swatch-wrapper {
padding: 0;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
::file-selector-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
iframe {
border: 0;
}
summary {
display: list-item;
cursor: pointer;
}
progress {
vertical-align: baseline;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.css.map */

1
nk_part5/css/bootstrap-reboot.css.map

File diff suppressed because one or more lines are too long

6
nk_part5/css/bootstrap-reboot.min.css

File diff suppressed because one or more lines are too long

1
nk_part5/css/bootstrap-reboot.min.css.map

File diff suppressed because one or more lines are too long

588
nk_part5/css/bootstrap-reboot.rtl.css

@ -0,0 +1,588 @@
/*!
* Bootstrap Reboot v5.3.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
:root,
[data-bs-theme=light] {
--bs-blue: #0d6efd;
--bs-indigo: #6610f2;
--bs-purple: #6f42c1;
--bs-pink: #d63384;
--bs-red: #dc3545;
--bs-orange: #fd7e14;
--bs-yellow: #ffc107;
--bs-green: #198754;
--bs-teal: #20c997;
--bs-cyan: #0dcaf0;
--bs-black: #000;
--bs-white: #fff;
--bs-gray: #6c757d;
--bs-gray-dark: #343a40;
--bs-gray-100: #f8f9fa;
--bs-gray-200: #e9ecef;
--bs-gray-300: #dee2e6;
--bs-gray-400: #ced4da;
--bs-gray-500: #adb5bd;
--bs-gray-600: #6c757d;
--bs-gray-700: #495057;
--bs-gray-800: #343a40;
--bs-gray-900: #212529;
--bs-primary: #0d6efd;
--bs-secondary: #6c757d;
--bs-success: #198754;
--bs-info: #0dcaf0;
--bs-warning: #ffc107;
--bs-danger: #dc3545;
--bs-light: #f8f9fa;
--bs-dark: #212529;
--bs-primary-rgb: 13, 110, 253;
--bs-secondary-rgb: 108, 117, 125;
--bs-success-rgb: 25, 135, 84;
--bs-info-rgb: 13, 202, 240;
--bs-warning-rgb: 255, 193, 7;
--bs-danger-rgb: 220, 53, 69;
--bs-light-rgb: 248, 249, 250;
--bs-dark-rgb: 33, 37, 41;
--bs-primary-text-emphasis: #052c65;
--bs-secondary-text-emphasis: #2b2f32;
--bs-success-text-emphasis: #0a3622;
--bs-info-text-emphasis: #055160;
--bs-warning-text-emphasis: #664d03;
--bs-danger-text-emphasis: #58151c;
--bs-light-text-emphasis: #495057;
--bs-dark-text-emphasis: #495057;
--bs-primary-bg-subtle: #cfe2ff;
--bs-secondary-bg-subtle: #e2e3e5;
--bs-success-bg-subtle: #d1e7dd;
--bs-info-bg-subtle: #cff4fc;
--bs-warning-bg-subtle: #fff3cd;
--bs-danger-bg-subtle: #f8d7da;
--bs-light-bg-subtle: #fcfcfd;
--bs-dark-bg-subtle: #ced4da;
--bs-primary-border-subtle: #9ec5fe;
--bs-secondary-border-subtle: #c4c8cb;
--bs-success-border-subtle: #a3cfbb;
--bs-info-border-subtle: #9eeaf9;
--bs-warning-border-subtle: #ffe69c;
--bs-danger-border-subtle: #f1aeb5;
--bs-light-border-subtle: #e9ecef;
--bs-dark-border-subtle: #adb5bd;
--bs-white-rgb: 255, 255, 255;
--bs-black-rgb: 0, 0, 0;
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
--bs-body-font-family: var(--bs-font-sans-serif);
--bs-body-font-size: 1rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-body-color: #212529;
--bs-body-color-rgb: 33, 37, 41;
--bs-body-bg: #fff;
--bs-body-bg-rgb: 255, 255, 255;
--bs-emphasis-color: #000;
--bs-emphasis-color-rgb: 0, 0, 0;
--bs-secondary-color: rgba(33, 37, 41, 0.75);
--bs-secondary-color-rgb: 33, 37, 41;
--bs-secondary-bg: #e9ecef;
--bs-secondary-bg-rgb: 233, 236, 239;
--bs-tertiary-color: rgba(33, 37, 41, 0.5);
--bs-tertiary-color-rgb: 33, 37, 41;
--bs-tertiary-bg: #f8f9fa;
--bs-tertiary-bg-rgb: 248, 249, 250;
--bs-link-color: #0d6efd;
--bs-link-color-rgb: 13, 110, 253;
--bs-link-decoration: underline;
--bs-link-hover-color: #0a58ca;
--bs-link-hover-color-rgb: 10, 88, 202;
--bs-code-color: #d63384;
--bs-highlight-bg: #fff3cd;
--bs-border-width: 1px;
--bs-border-style: solid;
--bs-border-color: #dee2e6;
--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
--bs-border-radius: 0.375rem;
--bs-border-radius-sm: 0.25rem;
--bs-border-radius-lg: 0.5rem;
--bs-border-radius-xl: 1rem;
--bs-border-radius-xxl: 2rem;
--bs-border-radius-2xl: var(--bs-border-radius-xxl);
--bs-border-radius-pill: 50rem;
--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
--bs-focus-ring-width: 0.25rem;
--bs-focus-ring-opacity: 0.25;
--bs-focus-ring-color: rgba(13, 110, 253, 0.25);
--bs-form-valid-color: #198754;
--bs-form-valid-border-color: #198754;
--bs-form-invalid-color: #dc3545;
--bs-form-invalid-border-color: #dc3545;
}
[data-bs-theme=dark] {
color-scheme: dark;
--bs-body-color: #adb5bd;
--bs-body-color-rgb: 173, 181, 189;
--bs-body-bg: #212529;
--bs-body-bg-rgb: 33, 37, 41;
--bs-emphasis-color: #fff;
--bs-emphasis-color-rgb: 255, 255, 255;
--bs-secondary-color: rgba(173, 181, 189, 0.75);
--bs-secondary-color-rgb: 173, 181, 189;
--bs-secondary-bg: #343a40;
--bs-secondary-bg-rgb: 52, 58, 64;
--bs-tertiary-color: rgba(173, 181, 189, 0.5);
--bs-tertiary-color-rgb: 173, 181, 189;
--bs-tertiary-bg: #2b3035;
--bs-tertiary-bg-rgb: 43, 48, 53;
--bs-primary-text-emphasis: #6ea8fe;
--bs-secondary-text-emphasis: #a7acb1;
--bs-success-text-emphasis: #75b798;
--bs-info-text-emphasis: #6edff6;
--bs-warning-text-emphasis: #ffda6a;
--bs-danger-text-emphasis: #ea868f;
--bs-light-text-emphasis: #f8f9fa;
--bs-dark-text-emphasis: #dee2e6;
--bs-primary-bg-subtle: #031633;
--bs-secondary-bg-subtle: #161719;
--bs-success-bg-subtle: #051b11;
--bs-info-bg-subtle: #032830;
--bs-warning-bg-subtle: #332701;
--bs-danger-bg-subtle: #2c0b0e;
--bs-light-bg-subtle: #343a40;
--bs-dark-bg-subtle: #1a1d20;
--bs-primary-border-subtle: #084298;
--bs-secondary-border-subtle: #41464b;
--bs-success-border-subtle: #0f5132;
--bs-info-border-subtle: #087990;
--bs-warning-border-subtle: #997404;
--bs-danger-border-subtle: #842029;
--bs-light-border-subtle: #495057;
--bs-dark-border-subtle: #343a40;
--bs-link-color: #6ea8fe;
--bs-link-hover-color: #8bb9fe;
--bs-link-color-rgb: 110, 168, 254;
--bs-link-hover-color-rgb: 139, 185, 254;
--bs-code-color: #e685b5;
--bs-border-color: #495057;
--bs-border-color-translucent: rgba(255, 255, 255, 0.15);
--bs-form-valid-color: #75b798;
--bs-form-valid-border-color: #75b798;
--bs-form-invalid-color: #ea868f;
--bs-form-invalid-border-color: #ea868f;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
@media (prefers-reduced-motion: no-preference) {
:root {
scroll-behavior: smooth;
}
}
body {
margin: 0;
font-family: var(--bs-body-font-family);
font-size: var(--bs-body-font-size);
font-weight: var(--bs-body-font-weight);
line-height: var(--bs-body-line-height);
color: var(--bs-body-color);
text-align: var(--bs-body-text-align);
background-color: var(--bs-body-bg);
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
hr {
margin: 1rem 0;
color: inherit;
border: 0;
border-top: var(--bs-border-width) solid;
opacity: 0.25;
}
h6, h5, h4, h3, h2, h1 {
margin-top: 0;
margin-bottom: 0.5rem;
font-weight: 500;
line-height: 1.2;
color: var(--bs-heading-color, inherit);
}
h1 {
font-size: calc(1.375rem + 1.5vw);
}
@media (min-width: 1200px) {
h1 {
font-size: 2.5rem;
}
}
h2 {
font-size: calc(1.325rem + 0.9vw);
}
@media (min-width: 1200px) {
h2 {
font-size: 2rem;
}
}
h3 {
font-size: calc(1.3rem + 0.6vw);
}
@media (min-width: 1200px) {
h3 {
font-size: 1.75rem;
}
}
h4 {
font-size: calc(1.275rem + 0.3vw);
}
@media (min-width: 1200px) {
h4 {
font-size: 1.5rem;
}
}
h5 {
font-size: 1.25rem;
}
h6 {
font-size: 1rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title] {
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul {
padding-right: 2rem;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: 0.5rem;
margin-right: 0;
}
blockquote {
margin: 0 0 1rem;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 0.875em;
}
mark {
padding: 0.1875em;
background-color: var(--bs-highlight-bg);
}
sub,
sup {
position: relative;
font-size: 0.75em;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
a {
color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
text-decoration: underline;
}
a:hover {
--bs-link-color-rgb: var(--bs-link-hover-color-rgb);
}
a:not([href]):not([class]), a:not([href]):not([class]):hover {
color: inherit;
text-decoration: none;
}
pre,
code,
kbd,
samp {
font-family: var(--bs-font-monospace);
font-size: 1em;
}
pre {
display: block;
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
font-size: 0.875em;
}
pre code {
font-size: inherit;
color: inherit;
word-break: normal;
}
code {
font-size: 0.875em;
color: var(--bs-code-color);
word-wrap: break-word;
}
a > code {
color: inherit;
}
kbd {
padding: 0.1875rem 0.375rem;
font-size: 0.875em;
color: var(--bs-body-bg);
background-color: var(--bs-body-color);
border-radius: 0.25rem;
}
kbd kbd {
padding: 0;
font-size: 1em;
}
figure {
margin: 0 0 1rem;
}
img,
svg {
vertical-align: middle;
}
table {
caption-side: bottom;
border-collapse: collapse;
}
caption {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
color: var(--bs-secondary-color);
text-align: right;
}
th {
text-align: inherit;
text-align: -webkit-match-parent;
}
thead,
tbody,
tfoot,
tr,
td,
th {
border-color: inherit;
border-style: solid;
border-width: 0;
}
label {
display: inline-block;
}
button {
border-radius: 0;
}
button:focus:not(:focus-visible) {
outline: 0;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
select {
text-transform: none;
}
[role=button] {
cursor: pointer;
}
select {
word-wrap: normal;
}
select:disabled {
opacity: 1;
}
[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {
display: none !important;
}
button,
[type=button],
[type=reset],
[type=submit] {
-webkit-appearance: button;
}
button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
cursor: pointer;
}
::-moz-focus-inner {
padding: 0;
border-style: none;
}
textarea {
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
float: right;
width: 100%;
padding: 0;
margin-bottom: 0.5rem;
font-size: calc(1.275rem + 0.3vw);
line-height: inherit;
}
@media (min-width: 1200px) {
legend {
font-size: 1.5rem;
}
}
legend + * {
clear: right;
}
::-webkit-datetime-edit-fields-wrapper,
::-webkit-datetime-edit-text,
::-webkit-datetime-edit-minute,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-year-field {
padding: 0;
}
::-webkit-inner-spin-button {
height: auto;
}
[type=search] {
outline-offset: -2px;
-webkit-appearance: textfield;
}
[type="tel"],
[type="url"],
[type="email"],
[type="number"] {
direction: ltr;
}
::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-color-swatch-wrapper {
padding: 0;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
::file-selector-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
iframe {
border: 0;
}
summary {
display: list-item;
cursor: pointer;
}
progress {
vertical-align: baseline;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.rtl.css.map */

1
nk_part5/css/bootstrap-reboot.rtl.css.map

File diff suppressed because one or more lines are too long

6
nk_part5/css/bootstrap-reboot.rtl.min.css

File diff suppressed because one or more lines are too long

1
nk_part5/css/bootstrap-reboot.rtl.min.css.map

File diff suppressed because one or more lines are too long

5397
nk_part5/css/bootstrap-utilities.css

File diff suppressed because it is too large

1
nk_part5/css/bootstrap-utilities.css.map

File diff suppressed because one or more lines are too long

6
nk_part5/css/bootstrap-utilities.min.css

File diff suppressed because one or more lines are too long

1
nk_part5/css/bootstrap-utilities.min.css.map

File diff suppressed because one or more lines are too long

5388
nk_part5/css/bootstrap-utilities.rtl.css

File diff suppressed because it is too large

1
nk_part5/css/bootstrap-utilities.rtl.css.map

File diff suppressed because one or more lines are too long

6
nk_part5/css/bootstrap-utilities.rtl.min.css

File diff suppressed because one or more lines are too long

1
nk_part5/css/bootstrap-utilities.rtl.min.css.map

File diff suppressed because one or more lines are too long

12113
nk_part5/css/bootstrap.css

File diff suppressed because it is too large

1
nk_part5/css/bootstrap.css.map

File diff suppressed because one or more lines are too long

6
nk_part5/css/bootstrap.min.css

File diff suppressed because one or more lines are too long

1
nk_part5/css/bootstrap.min.css.map

File diff suppressed because one or more lines are too long

12077
nk_part5/css/bootstrap.rtl.css

File diff suppressed because it is too large

1
nk_part5/css/bootstrap.rtl.css.map

File diff suppressed because one or more lines are too long

6
nk_part5/css/bootstrap.rtl.min.css

File diff suppressed because one or more lines are too long

1
nk_part5/css/bootstrap.rtl.min.css.map

File diff suppressed because one or more lines are too long

5
nk_part5/footer.php

@ -0,0 +1,5 @@
<div class="container mt-auto">
<footer class="footer">
<p class="text-muted"> Návštěvní kniha 2023 - BETA VERZE</p>
</footer>
</div>

44
nk_part5/index.php

@ -0,0 +1,44 @@
<?php
session_start();
include("init.php");
$ptitle = "Návštěvní kniha";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Navštěvní kniha</title>
<link rel="stylesheet" href="css/bootstrap.css">
</head>
<body class="d-flex flex-column min-vh-100">
<div class="container">
<?php
include "menu.php";
?>
<?php
if(isset($_SESSION["username"])){
echo "<h2> vítej uživateli: ".$_SESSION["username"]."</h2>";
echo "<h5>username: ".$_SESSION["username"]."</h5>";
echo "<h5>userid: ".$_SESSION["userid"]."</h5>";
echo "<h5>role: ".$_SESSION["role"]."</h5>";
if ($_SESSION["role"] == 1){
echo "<p>". var_dump($_SESSION). "</p>";
}
} else {
echo "<h2> Prosím přihlaš se </h2>";
}
?>
</div>
<?php
include "footer.php";
?>
<script src="js/bootstrap.bundle.js"></script>
</body>
</html>

35
nk_part5/informace.md

@ -0,0 +1,35 @@
# Informace
## Seznam rolí
- 1 = admin
- 3 = moderátor
- 5 = uživatel
## Vlastnosti rolí
### Admin
povolení:
- [X] Wožnost mazat příspěvky (vlastní + role 3, 5)
- [ ] možnosti mazat uživatele
### Moderator
povolení:
- [ ] možnost mazat příspvěky (vlastní + role 5)
zákaz:
- [ ] možnost mazat uživatele
### Uživatel
povolení:
- [ ] možnost mazat příspěvky (pouze vlastní)
## Admin Panel
- [ ] Zobrazit příspěvky
- [ ] Zobrazit uživatele
- [ ] možnost změna hesla pro uživatele
- [ ] možnost vymazat uživatele
- [ ] možnost změnit příspěvěk
- [ ] možnost vymazat příspěvěk

6295
nk_part5/js/bootstrap.bundle.js

File diff suppressed because it is too large

1
nk_part5/js/bootstrap.bundle.js.map

File diff suppressed because one or more lines are too long

7
nk_part5/js/bootstrap.bundle.min.js

File diff suppressed because one or more lines are too long

1
nk_part5/js/bootstrap.bundle.min.js.map

File diff suppressed because one or more lines are too long

4423
nk_part5/js/bootstrap.esm.js

File diff suppressed because it is too large

1
nk_part5/js/bootstrap.esm.js.map

File diff suppressed because one or more lines are too long

7
nk_part5/js/bootstrap.esm.min.js

File diff suppressed because one or more lines are too long

1
nk_part5/js/bootstrap.esm.min.js.map

File diff suppressed because one or more lines are too long

4469
nk_part5/js/bootstrap.js

File diff suppressed because it is too large

1
nk_part5/js/bootstrap.js.map

File diff suppressed because one or more lines are too long

7
nk_part5/js/bootstrap.min.js

File diff suppressed because one or more lines are too long

1
nk_part5/js/bootstrap.min.js.map

File diff suppressed because one or more lines are too long

84
nk_part5/list.php

@ -0,0 +1,84 @@
<?php
session_start();
include("init.php");
$ptitle= "Výpis knihy";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Výpis knihy</title>
<link rel="stylesheet" href="css/bootstrap.css">
</head>
<body class="d-flex flex-column min-vh-100">
<div class="container">
<?php
include "menu.php";
?>
<!-- <h2>Nadpis</h2>
<h4>od: jméno</h4>
<h5>cas</h5>
<p>zpráva</p>
<hr> -->
<?php
$sql = "SELECT nk_prispevky.id, nk_users.username, nk_prispevky.title, nk_prispevky.msg, nk_prispevky.created, nk_users.role
FROM nk_prispevky
INNER JOIN nk_users ON nk_prispevky.id_nk_users = nk_users.id
ORDER BY nk_prispevky.id DESC";
$result = mysqli_query($conn,$sql);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)){
echo "<h2>".$row["title"] ."</h2>";
echo "<h4> od: " . $row["username"]."</h4>";
echo "<h5>". $row["created"] . "</h5>";
echo "<p>" . $row["msg"] . "</p>";
//kontrola přihlášenosti
if(isset($_SESSION["logged"])){
if ($_SESSION["role"] < 5) {
echo "<p> role vytvoření: ". $row["role"] . "</p>";
}
//pohled pro moderatora
if($_SESSION["role"] == 3 && $row["role"] == 5) {
echo "<a href=\"action_delete.php?id=".$row["id"]."\">Smazat příspěvek</a>";
}
//pohled nad vlasstní příspěvek
if( $row["username"] == $_SESSION["username"]){
echo "<a href=\"action_delete.php?id=".$row["id"]."\">Smazat příspěvek</a>";
}
//pohled pro admina
if($_SESSION["role"] == 1 && $row["username"] != $_SESSION["username"]) {
echo "<a href=\"action_delete.php?id=".$row["id"]."\">Smazat příspěvek</a>";
}
// if($_SESSION["role"] < 5){ //počíta se s tím že hodnota existuje
// echo "<a href=\"action_delete.php?id=".$row["id"]."\">Smazat příspěvek</a>";
// }
}
echo "<hr>";
}
}
mysqli_close($conn);
?>
</div>
<?php
include "footer.php";
?>
<script src="js/bootstrap.bundle.js"></script>
</body>
</html>

39
nk_part5/login.php

@ -0,0 +1,39 @@
<?php
session_start();
include("init.php");
$ptitle = "Login";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
<link rel="stylesheet" href="css/bootstrap.css">
</head>
<body class="d-flex flex-column min-vh-100">
<div class="container">
<?php
include "menu.php";
?>
<form action="action_login.php" method="post" class="form">
<label for="username">Uživatelské jméno</label>
<br>
<input type="text" name="username" id="username">
<br>
<label for="pw">Heslo</label>
<br>
<input type="password" name="pw" id="pw">
<br>
<input type="submit" value="Login">
</form>
</div>
<?php
include "footer.php";
?>
<script src="js/bootstrap.bundle.js"></script>
</body>
</html>

6
nk_part5/logout.php

@ -0,0 +1,6 @@
<?php
session_start();
session_unset();
session_destroy();
header("Location: /?logout=1");
?>

23
nk_part5/menu.php

@ -0,0 +1,23 @@
<header class="py-3 d-flex flex-wrap justify-content-center border-bottom mb-4">
<a href="/" class="d-flex align-items-center me-md-auto text-decoration-none text-dark">
<h1>
<?php echo $ptitle; ?>
</h1>
</a>
<ul class="nav nav-pills">
<li class="nav-item"><a href="/" class="nav-link">HOME</a></li>
<li class="nav-item"><a href="list.php" class="nav-link">Vypsat knihu</a></li>
<li class="nav-item"><a href="write.php" class="nav-link">Zapsat do knihy</a></li>
<?php
if(isset($_SESSION["logged"])) {
echo '<li class="nav-item" ><a href="logout.php" class="nav-link">Odhlásit se</a></li>';
if ($_SESSION["role"] == 1) {
echo '<li class="nav-item"><a href="admin.php" class="nav-link">ADMIN</a></li>';
}
} else {
echo '<li class="nav-item"><a href="reg.php" class="nav-link">Registrovat se</a></li>'; // kombinace uvozovek
echo "<li class=\"nav-item\"><a href=\"login.php\" class=\"nav-link\">Přihlásit se</a></li>"; //"escape" znaků
}
?>
</ul>
</header>

56
nk_part5/nk_part3.sql

@ -0,0 +1,56 @@
-- Adminer 4.7.6 MySQL dump
SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
DROP TABLE IF EXISTS `nk_log`;
CREATE TABLE `nk_log` (
`id` int(11) NOT NULL,
`id_nk_users` int(11) unsigned NOT NULL,
`logintime` datetime NOT NULL,
KEY `id_nk_users` (`id_nk_users`),
CONSTRAINT `nk_log_ibfk_1` FOREIGN KEY (`id_nk_users`) REFERENCES `nk_users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
DROP TABLE IF EXISTS `nk_prispevky`;
CREATE TABLE `nk_prispevky` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_nk_users` int(11) unsigned NOT NULL,
`title` varchar(128) COLLATE utf8_czech_ci NOT NULL,
`msg` text COLLATE utf8_czech_ci NOT NULL,
`created` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `id_nk_users` (`id_nk_users`),
CONSTRAINT `nk_prispevky_ibfk_1` FOREIGN KEY (`id_nk_users`) REFERENCES `nk_users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
INSERT INTO `nk_prispevky` (`id`, `id_nk_users`, `title`, `msg`, `created`) VALUES
(1, 3, 'Lorem 1', 'Lorem Ipsum supres', '2023-03-01 23:36:52'),
(2, 2, 'Lorem 11', 'Lorem ipsumus loremos spravenost', '2023-03-01 23:37:30'),
(4, 9, 'Test z PHP', 'LOREM lipsum', '2023-03-09 10:12:35'),
(5, 10, 'Hodnocení', 'Je to tu boží, mám to tady rád ☺', '2023-03-09 10:22:39'),
(7, 1, 'Ctcrřtky jsou fajne v2', 'testxt', '2023-03-23 09:57:45'),
(8, 4, 'Zapis od Mod1', 'AHOJ DĚTI', '2023-03-23 10:07:55');
DROP TABLE IF EXISTS `nk_users`;
CREATE TABLE `nk_users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(32) COLLATE utf8_czech_ci NOT NULL,
`password` varchar(64) COLLATE utf8_czech_ci NOT NULL,
`role` int(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
INSERT INTO `nk_users` (`id`, `username`, `password`, `role`) VALUES
(1, 'admin', 'admin', 1),
(2, 'user1', 'user1', 5),
(3, 'user2', 'user2', 5),
(4, 'mod1', 'mod1', 3),
(5, 'mod2', 'mod2', 3),
(9, 'asd', 'asd', 5),
(10, 'xyz', 'xyz', 5);
-- 2023-03-23 09:32:22

55
nk_part5/part2.sql

@ -0,0 +1,55 @@
-- Adminer 4.7.6 MySQL dump
SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
DROP TABLE IF EXISTS `nk_log`;
CREATE TABLE `nk_log` (
`id` int(11) NOT NULL,
`id_nk_users` int(11) unsigned NOT NULL,
`logintime` datetime NOT NULL,
KEY `id_nk_users` (`id_nk_users`),
CONSTRAINT `nk_log_ibfk_1` FOREIGN KEY (`id_nk_users`) REFERENCES `nk_users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
DROP TABLE IF EXISTS `nk_prispevky`;
CREATE TABLE `nk_prispevky` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_nk_users` int(11) unsigned NOT NULL,
`title` varchar(128) COLLATE utf8_czech_ci NOT NULL,
`msg` text COLLATE utf8_czech_ci NOT NULL,
`created` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `id_nk_users` (`id_nk_users`),
CONSTRAINT `nk_prispevky_ibfk_1` FOREIGN KEY (`id_nk_users`) REFERENCES `nk_users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
INSERT INTO `nk_prispevky` (`id`, `id_nk_users`, `title`, `msg`, `created`) VALUES
(1, 3, 'Lorem 1', 'Lorem Ipsum supres', '2023-03-01 23:36:52'),
(2, 2, 'Lorem 11', 'Lorem ipsumus loremos spravenost', '2023-03-01 23:37:30'),
(3, 2, 'Lorem 12', 'Luromes jolontos procentos', '2023-03-01 23:37:40'),
(4, 9, 'Test z PHP', 'LOREM lipsum', '2023-03-09 10:12:35'),
(5, 10, 'Hodnocení', 'Je to tu boží, mám to tady rád ☺', '2023-03-09 10:22:39');
DROP TABLE IF EXISTS `nk_users`;
CREATE TABLE `nk_users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(32) COLLATE utf8_czech_ci NOT NULL,
`password` varchar(64) COLLATE utf8_czech_ci NOT NULL,
`role` int(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
INSERT INTO `nk_users` (`id`, `username`, `password`, `role`) VALUES
(1, 'admin', 'admin', 1),
(2, 'user1', 'user1', 5),
(3, 'user2', 'user2', 5),
(4, 'mod1', 'mod1', 3),
(5, 'mod2', 'mod2', 3),
(9, 'asd', 'asd', 5),
(10, 'xyz', 'xyz', 5);
-- 2023-03-09 09:24:37

52
nk_part5/reg.php

@ -0,0 +1,52 @@
<?php
session_start();
include("init.php");
$ptitle = "Registrace";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body class="d-flex flex-column min-vh-100">
<div class="container">
<?php
include "menu.php";
?>
<?php
if(isset($_GET["error"])){
if ($_GET["error"] == "1") {
echo "<h2>Hesla nejsou stejná</h2>";
}
}
?>
<form action="action_reg.php" method="post">
<label for="username">Přihlašovací jméno:</label><br>
<input type="text" name="username" id="username">
<br>
<label for="pw1">Heslo:</label><br>
<input type="password" name="pw1" id="pw1">
<br>
<label for="pw2">Opakovat heslo:</label><br>
<input type="password" name="pw2" id="pw2">
<br>
<br>
<input type="submit" value="Registrovat">
</form>
</div>
<?php
include "footer.php";
?>
<script src="js/bootstrap.bundle.js"></script>
</body>
</html>

61
nk_part5/update_prispevky.php

@ -0,0 +1,61 @@
<?php
session_start();
include("init.php");
if(!isset($_SESSION["logged"])){
header("Location: /?error=3"); //error 3 = přístup odepřen
}
if(!isset($_GET["id"])){
header("Location: /?error=4"); //error 4 = špatný vstup
}
$id = $_GET["id"];
$sql = "SELECT * FROM nk_prispevky WHERE id=$id";
$result = mysqli_query($conn,$sql);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)){
$title = $row["title"];
$id_nk_users = $row["id_nk_users"];
$msg = $row["msg"];
}
} else {
header("Location: /?error=4");
}
$ptitle = "Uprava ID: $id";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Update</title>
<link rel="stylesheet" href="css/bootstrap.css">
</head>
<body class="d-flex flex-column min-vh-100">
<div class="container">
<?php
include "menu.php";
?>
<form action="action_update_prispevky.php" method="post">
<?php
echo '<input type="text" hidden name="id" id="id" value="'.$id.'">';
echo '<input type="text" name="title" id="title" value="'.$title.'"> <br>';
echo '<input type="text" name="id_nk_users" id="id_nk_users" value="'.$id_nk_users.'"> <br>';
echo '<textarea name="msg" id="msg" cols="30" rows="10">'.$title.'</textarea>'
?>
<br>
<input type="submit" value="UPDATE">
</form>
</div>
<?php
include "footer.php";
?>
<script src="js/bootstrap.bundle.js"></script>
</body>
</html>

42
nk_part5/write.php

@ -0,0 +1,42 @@
<?php
session_start();
include("init.php");
if(!isset($_SESSION["logged"])){
header("Location: /?error=3"); //error 3 = přístup odepřen
}
$ptitle="Zápis do knihy";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Zápis do knihy</title>
<link rel="stylesheet" href="css/bootstrap.css">
</head>
<body class="d-flex flex-column min-vh-100">
<div class="container">
<?php
include "menu.php";
?>
<form action="action_write.php" method="post">
<label for="title">Nadpis:</label><br>
<input type="text" name="title" id="title"><br>
<label for="msg">Zpráva do knihy:</label><br>
<textarea name="msg" id="msg" cols="30" rows="10"></textarea>
<br>
<input type="submit" value="Zapsat do knihy">
</form>
</div>
<?php
include "footer.php";
?>
<script src="js/bootstrap.bundle.js"></script>
</body>
</html>
Loading…
Cancel
Save