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.
- Tee php-kansiosi alle kansio demot ja kansio harjoitukset
- Siirrä ensimmäiset demot kansioon demot ja nimeä ne oikein (demo1.php, demo2.php jne)
- Siirrä ensimmäiset harjoitukset harjoituset-kansioon ja nimeä ne oikein (harj1.php, harj2.php jne)
- 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);
}