95 lines
3.0 KiB
PHP
95 lines
3.0 KiB
PHP
<?php
|
|
|
|
/** XSS - cross-site scripting (ochrana proti spuštění scriptu)
|
|
* konvertuje speciální znaky na HTML
|
|
* vložit ho do HTML jako < ?= htmlspecialchars($first_name);?> do values, p či h1 atd.
|
|
* Notno ošetřit kde pomocí php zobrazuji data
|
|
*
|
|
*/
|
|
|
|
global $connection;
|
|
require "assets/database.php";
|
|
|
|
/**....proměnné pro zapamatování hodnot formuláře.... */
|
|
$first_name = null;
|
|
$second_name = null;
|
|
$age = null;
|
|
$life = null;
|
|
$college = null;
|
|
|
|
|
|
if ($_SERVER ["REQUEST_METHOD"] === "POST") {
|
|
|
|
/**....nastavení proměnných formuláře co si má pamatovat ( html část Value.... */
|
|
$first_name = $_POST["first_name"];
|
|
$second_name = $_POST["second_name"];
|
|
$age = $_POST["age"];
|
|
$life = $_POST["life"];
|
|
$college = $_POST["college"];
|
|
|
|
/**....vytvoření SQL dotazu pro vložení nového žáka + ochrana proti SQL injection.... */
|
|
$sgl = "INSERT INTO student (first_name, second_name, age, life, college)
|
|
VALUES (?, ?, ?, ?, ?)";
|
|
|
|
$connection = connectionDB();
|
|
|
|
|
|
$statement = mysqli_prepare($connection, $sgl);
|
|
|
|
if ($statement === false) {
|
|
echo mysqli_error($connection);
|
|
} else {
|
|
/**..ochrana SQL injecton pomocí types (jako integer či string..*/
|
|
mysqli_stmt_bind_param($statement, "ssiss", $_POST["first_name"], $_POST["second_name"], $_POST["age"], $_POST["life"], $_POST["college"]);
|
|
|
|
/**.. provedení SQL dotazu pro vložení žáka..*/
|
|
if (mysqli_stmt_execute($statement)) {
|
|
$id = mysqli_insert_id($connection);
|
|
// echo "Úspěšně vložen žák s ID: $id";
|
|
/**..Máš povolený https server? Pokud máš HTTPS nastavený a není vypnutý nastav header na HTTPS (!= nesmí být vypnutý)
|
|
* else jinak nastav http:// na headeru
|
|
* */
|
|
if (isset($_SERVER["HTTPS"]) and $_SERVER["HTTPS"] != "off") {
|
|
$url_protocol = "https";
|
|
} else {
|
|
$url_protocol = "http";
|
|
}
|
|
|
|
// localhost = $_SERVER["HTTP_HOST"];
|
|
|
|
/**..po úspěšném vložení žáka přesměrujeme na stránku onoho žáka (relativní cesta) apsolutní by byla https://... ..*/
|
|
// header("location: jeden-zak.php?id=$id");
|
|
|
|
/**.. varianta apsolutní adresy kdy na webu nahradím localhost už jen adresou */
|
|
header("location: $url_protocol://" . $_SERVER["HTTP_HOST"] . "/PHP_DS_Project/www2databaze/jeden-zak.php?id=$id");
|
|
} else {
|
|
echo mysgli_stmt_error($statement);
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html lang="cs">
|
|
<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>
|
|
<?php require "assets/header.php" ?>
|
|
|
|
<main>
|
|
<section class="add-form">
|
|
<?php require "assets/formular-zak.php"; ?>
|
|
|
|
</section>
|
|
|
|
</main>
|
|
|
|
|
|
<?php require "assets/footer.php" ?>
|
|
|
|
</body>
|
|
</html>
|