Alkupuhe

Dynaamisyys tarkoittaa tässä yhteydessä sitä, että on olemassa tietty pohjusta, johon sisällytetään sivuston eri sivuja. Tällä vältetään muunmuassa se, ettei pienen muutoksen takia tarvitse muokata jokaista sivua erikseen. Tässä oppaassa neuvotaan vaihe vaiheelta miten saat sivustostasi dynaamisen turvallisesti. Internetissä liikkuu useita koodipätkiä sekä oppaita jotka jättävät turvallisuudessa toivomisen varaa. Väärin tehtynä sen avulla voi päästä käsiksi sellaisiin tiedostoihin, joiden ei pitäisi näkyä käyttäjälle lainkaan.

Valmistelu.

Homma aloitetaan luomalla kansio, johon laitetaan tiedostot joita on mahdollista sisällyttää verkkosivulle. Luo siis kansio sivut verkkohakemistoosi (paikka, jossa sijaitsee index-tiedosto).

Kansion sisällön suojaaminen uteliailta kasvoilta on todella suotavaa. Tämä on hoidettavissa htaccess-suojauksella helposti. Luo tiedosto .htaccess (huomaa, ettei tiedostolla ole varsinaista nimeä, vain pääte). Kirjoita tiedostoon seuraava teksti (ilman lainausmerkkejä): "deny from all". Siirrä .htaccess-tiedostosi sivut/-kansioon.

Nyt hakemiston pitäisi olla suojattu. Voit vielä varmistaa asian menemällä verkkoselaimellasi sivut/-kansioon (esim. www.sivusi.com/sivut). Pitäisi tulla virhe "Forbidden". Jos näin ei tapahtunut, varmista, että olet tehnyt kaiken ohjeiden mukaan.

Sivujen hakeminen indexiin.

Seuraava vaihe on PHP-koodin lisääminen index-tiedostoon sekä sopivien linkkien lisääminen sivullesi. Koodin tehtävänä on sisällyttää haettu sivu halutulle paikalle.

Lisää seuraava koodi index-tiedostoosi (huomaa, että tiedoston päätteen tulee olla .php) siihen kohtaan, johon sivut tulee sisällyttää:

<?php
$sallitut = array(
   
"00"=>"ensimmainen.php",

"01"=>"toinen.php",
);
$valinta = (!empty($_GET["sivu"]))?$_GET["sivu"]:"00"; 
   
if(isset($sallitut[$valinta])&&file_exists("sivut/".$sallitut[$valinta]))
{

    include_once("sivut/".$sallitut[$valinta]);
   
}
else
{
    echo "<h1>Forbidden</h1>

   
    <p>You don't have permission to access ".$_SERVER["PHP_SELF"].

    "?sivu=".$_GET["sivu"]." on this server.</p>";
   
}
?>

Ensimmäisillä riveillä lisäämme $sallitut-taulukkoon kakso kohtaa.00 joka sisältää tekstin ensimmainen.php ja 01 joka sisältää tekstin toinen.php. Käytännön kautta selittäen tämä tarkoittaa sitä, että osoitteella index.php?sivu=00 aukeaa koodin paikalle sivu sivut/ensimmainen.php ja näin ollen osoitteella index.php?sivu=01 aukeaa sivut/toinen.php. Sivulle index.php mennessä aukeaa oletuksena ensimmainen.php (00).

Esimerkkinä sivulista voi näyttää vaikkapa seuraavanlaiselta:

"00"=>"etusivu.php",
"01"=>"info.php",
"02"=>"tekstit.php",
"03"=>"tilastot.php",

Tällöin tiedosto/hakemistorakenne näyttäisi seuraavalta:

Sivustolla olevat linkit olisivat vaikkapa seuraavasti:

<ul>
	<li><a href="index.php?sivu=00">Etusivu</a></li>
	<li><a href="index.php?sivu=01">Info</a></li>
	<li><a href="index.php?sivu=02">Tekstit</a></li>
	<li><a href="index.php?sivu=03">Tilastot</a></li>
</ul>

Loppusanat

Tässä oli melko ytimekkäästi selostettuna miten saat sivuistasi dynaamisesti toimivat ja näin ollen helpommin ylläpidettävät. Toivon, että joku oppii tästä oppaasta jotain, ettei täysin hukkaan menisi :)

d-hunter 18.10.2006