Demo 5, palautussivu

Laadi tiedosto index.php, joka näyttää linkkilistan demoista ja harjoituksista. Kun klikkaa linkkiä, se avaa samalle sivulle näkyviin sekä työn että sen lähdekoodin.

  1. Tee php-kansiosi alle kansio demot ja kansio harjoitukset
  2. Siirrä ensimmäiset demot kansioon demot ja nimeä ne oikein (demo1.php, demo2.php jne)
  3. Siirrä ensimmäiset harjoitukset harjoituset-kansioon ja nimeä ne oikein (harj1.php, harj2.php jne)
  4. Tee kansio partials, tänne tallennamme tiedostot alku.php, navi.php ja loppu.php

Lisää kaikki tekemäsi tiedostot palautussivulle.

Huom! Lomakkeen action on oltava muodossa index.php?sivu=lomakkeenkasittelija, jos käytät sisällyttämistä käyttävää palautussivustoa.

alku.php

<!DOCTYPE HTML>
<html>
  <head>
  <meta charset="utf-8">
  <title>PHP-harjoitukset</title>
  </head>
  <body>

loppu.php

</body>
</html>

index.php

<?php
include "./partials/alku.php";
include "./partials/navi.php";

/*******************
Tähän väliin sijoitetaan ohjelmakoodi, joka lukee pyynnön mukaisen 
sisällytettävän tiedoston, tarkistaa, että sen saa sisällyttää, 
tulostaa työn ja samalla lähdekoodin ruudulle.
********************/

include "./partials/loppu.php";
?>

navi.php

<h2>Demot</h2>
<ul>
    <li><a href="./index.php?sivu=demo1&kansio=demot">Demo 1</a></li>
    <li><a href="./index.php?sivu=demo2&kansio=demot">Demo 2</a></li>
    <li><a href="./index.php?sivu=demo4&kansio=demot">Demo 4</a></li>
    <li><a href="./index.php?sivu=demo5&kansio=demot">Demo 5</a></li>
</ul>
<h2>Harjoitukset</h2>
<ul>
    <li><a href="./index.php?sivu=harj1&kansio=harj">Harjoitus 1</a></li>
    <li><a href="./index.php?sivu=harj2&kansio=harj">Harjoitus 2</a></li>
</ul>
<hr>

Toiminta

Toiminta index.php-sivulla tapahtuu seuraavalla tavalla. Tarkistetaan sivu ja kansio $_GET-muuttujasta, varmistetaan että sivu löytyy sallituista sivuista ja tämän jälkeen avataan php-sivu näkyviin. highlight_file-funktion avulla saadaan näppärästi näkyviin lähdekoodi.

if(isset($_GET["sivu"])) $sivu = htmlentities($_GET["sivu"]);
else $sivu = "demo1"; //oletusarvo, jos ei pyyntöä

if(isset($_GET["kansio"])) $kansio = htmlentities($_GET["kansio"]);
else $kansio = "demot";

$sallitut = array("demo1","demo2","demo3","demo4",
"demo4_lomakkeenkasittelija","demo6","demo7","demo8",
"demo9","demo10","demo11","demo12","demo13", "harj1","harj2",
"harj3","harj4","harj5","harj6","harj7","harj8","harj9",
"harj10","harj11","harj12","harj13","harj14","harj15");

if(in_array($sivu,$sallitut)) {
    $polku = "./$kansio/$sivu.php";
    require $polku;
    echo "<h3>Lähdekoodi</h3>";
    echo highlight_file($polku,1);
}