113 ochrana proti vložení skriptu, přesměrování
This commit is contained in:
		@@ -38,10 +38,10 @@ if (isset($_GET["id"]) and is_numeric($_GET["id"])) {
 | 
			
		||||
        <?php if ($students === null): ?>
 | 
			
		||||
            <p>Žák nenalezen</p>
 | 
			
		||||
        <?php else : ?>
 | 
			
		||||
<h2><?php echo $students["first_name"]. " " .$students["second_name"] ?></h2>
 | 
			
		||||
        <p>Věk: <?php echo $students["age"] ?></p>
 | 
			
		||||
        <p>Dodatečné informace: <?= $students["life"] ?></p>
 | 
			
		||||
        <p>Kolej: <?= $students["college"] ?></p>
 | 
			
		||||
<h2><?= htmlspecialchars($students["first_name"]). " " .htmlspecialchars($students["second_name"]) ?></h2>
 | 
			
		||||
        <p>Věk: <?= htmlspecialchars($students["age"] ) ?></p>
 | 
			
		||||
        <p>Dodatečné informace: <?= htmlspecialchars($students["life"])?></p>
 | 
			
		||||
        <p>Kolej: <?= htmlspecialchars($students["college"])?></p>
 | 
			
		||||
        <?php endif ?>
 | 
			
		||||
    </section>
 | 
			
		||||
</main>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,33 @@
 | 
			
		||||
<?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 (?, ?, ?, ?, ?)";
 | 
			
		||||
 | 
			
		||||
@@ -19,11 +39,29 @@ if ($_SERVER ["REQUEST_METHOD"] === "POST") {
 | 
			
		||||
    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";
 | 
			
		||||
//            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);
 | 
			
		||||
        }
 | 
			
		||||
@@ -44,15 +82,16 @@ if ($_SERVER ["REQUEST_METHOD"] === "POST") {
 | 
			
		||||
<main>
 | 
			
		||||
    <section class="add-form">
 | 
			
		||||
        <form action="pridat-zaka.php" method="POST">
 | 
			
		||||
            <input type="text" name="first_name" placeholder="Křestní jméno" required>
 | 
			
		||||
            <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í" required>
 | 
			
		||||
            <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" required>
 | 
			
		||||
            <input type="number" name="age" placeholder="Věk" min="10" value="<?= htmlspecialchars($age)?>" required>
 | 
			
		||||
            <br>
 | 
			
		||||
            <textarea name="life" placeholder="Podrobnosti o žákovi" required></textarea>
 | 
			
		||||
            <!--  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" required>
 | 
			
		||||
            <input type="text" name="college" placeholder="Kolej" value="<?= htmlspecialchars($college) ?>" required>
 | 
			
		||||
            <br>
 | 
			
		||||
            <input type="submit" value="Přidat žáka">
 | 
			
		||||
        </form>
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,7 @@ if ($result === false) {
 | 
			
		||||
        <?php else: ?>
 | 
			
		||||
            <ul>
 | 
			
		||||
                <?php foreach ($students as $one_student): ?>
 | 
			
		||||
                    <li><?php echo $one_student["first_name"]. " " .$one_student["second_name"] ?></li>
 | 
			
		||||
                    <li><?= htmlspecialchars($one_student["first_name"]). " " .htmlspecialchars($one_student["second_name"]) ?></li>
 | 
			
		||||
                    <a href="jeden-zak.php?id=<?= $one_student['id'] ?>">Více informací</a>
 | 
			
		||||
                <?php endforeach; ?>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user