Jos nettisivuilla ei ole julkaisujärjestelmää ja halutaan helpottaa eri sivujen kanssa työskentelyä, sivuille voidaan PHP:n avulla taikoa yksinkertainen "dynaamisena sivujärjestelmänä" tunnettu toiminnallisuus. Sen avulla URL-osoite vaikuttaa siihen mitä juttuja nettisivuilla näytetään. Tällä koodilla nettisivuston eri sivut löytyvät osoitteesta, joka on muotoa nettisivu.fi/?sivu=sivunnimi
. Esimerkiksi jokin palautelomake voisi löytyä osoitteesta ?sivu=palautelomake
ja linkkilista osoitteesta ?sivu=linkkilista
.
<?php
// TÄSSÄ TEHDÄÄN TARKISTUKSIA
if ((isset($_GET['sivu'])) &&
(!empty($_GET['sivu'])) &&
(!is_numeric($_GET['sivu'])) &&
(!is_array($_GET['sivu'])) &&
(strlen($_GET['sivu']) <= 50) &&
(ctype_alnum($_GET['sivu']))) {
$sivu =
strip_tags(trim(strtolower(filter_var($_GET['sivu'],
FILTER_SANITIZE_STRING,FILTER_FLAG_STRIP_HIGH))));
?>
<?php
// TÄSSÄ PALAUTELOMAKE
if ($sivu === 'palautelomake') { ?>
<p>Tässä on palautelomake.</p>
<?php } ?>
<?php
// TÄSSÄ LINKKILISTA
if ($sivu === 'linkkilista') { ?>
<p>Tässä on linkkilista.</p>
<?php } ?>
<?php } else { ?>
// JOS SIVUA EI OLE MÄÄRITELTY,
// OLLAAN VAIKKAPA ETUSIVULLA
?>
<p>Tässä on etusivu.</p>
<?php } ?>
Tuossa koodiesimerkissäni tsekataan, että $_GET['sivu']
on asetettu (isset
), ettei se ole tyhjä (!empty
), ettei se ole pelkkä numero (!is_numeric
), ettei se ole array (!is_array
), ettei sen pituus ole enempää kuin 50 merkkiä (strlen
) ja ettei se sisällä kuin aakkosia ja numeroita (ctype_alnum
). Jos nämä ehdot täyttyvät, silloin $_GET['sivu']
siistitään ja homma jatkuu. Tätä hommaa voisi kehitellä eteenpäin laittamalla .htaccessin avulla sivulle puhtaat URL-osoitteet.