<?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"> <form action="pridat-zaka.php" method="POST"> <input type="text" name="first_name" placeholder="Křestní jméno" required value="<?= htmlspecialchars($first_name )?>"> <br> <input type="text" name="second_name" placeholder="Příjmení" value="<?= htmlspecialchars($second_name) ?>" required> <br> <input type="number" name="age" placeholder="Věk" min="10" value="<?= htmlspecialchars($age)?>" required> <br> <!-- text area pamatovátko vložit mezi tagy --> <textarea name="life" placeholder="Podrobnosti o žákovi" required><?= htmlspecialchars($life)?></textarea> <br> <input type="text" name="college" placeholder="Kolej" value="<?= htmlspecialchars($college) ?>" required> <br> <input type="submit" value="Přidat žáka"> </form> </section> </main> <?php require "assets/footer.php" ?> </body> </html>