Indholdsinkludering med PHP

tutorials » php, asp, perl
skrevet 11/6 2009
af Frederik

StjerneStjerneStjerneStjerneStjerneStjerneStjerneStjerneStjerneStjerne
Meget simpel PHP inkludering i stedet for frames, iframes eller SSI. Denne artikel er for dem med begyndende eller øvet kendskab til PHP. For at dette skal virke skal man have PHP installeret på sit webhotel eller sin lokale server. Man bør ikke benytte dette script direkte, da der kan være huller, og det ikke er helt optimeret.


#1
Først har jeg lige lavet en lille HTML skabelon, som skal fungere som eksempel under hele artiklen:

<html>
<head><title>PHP-inkludering</title></he- - ad>
<body>

Menu: forside, omkring mig, gæstebogen<br><br>

Indholdet skal så være her.

</body>
</html>


Dette stykke kode gøres til en fil, der f.eks. kunne hedde index.php. Det vigtigste er bare at filen har endelsen .php, ligesom de næste par filer, der skal oprettes.
Illustration
(klik for zoom)
#1


#2
Ok, nu skal vi så oprette selve de filer, der skal være indhold i. Kald dem:

forside.php
mig.php
gaestebog.php


(husk lige at skrive noget i dem så du kan kende forskel)

I disse filer behøves der ikke at være de første og sidste standard tags som ellers, da filen jo kommer ind under hovedfilen index.php (her mener jeg <html>, <head>, <title>, <body> samt menuen).
#2


#3
Herefter tilføjer vi lidt kode til index.php:

<html>
<head><title>PHP-inkludering</title></he- - ad>
<body>

Menu: <a href="?side=forside">forside</a>, <a href="?side=mig">omkring mig</a>, <a href="?side=gaestebog">gæstebogen</a><- ;- ;br><br>

<?php
$side = addslashes($_GET["side"]); // Lidt sikkerhed vha. addslashes();
if($side) // Hvis strengen $side er sat
include("$side.php"); // Inkluder filen strengen peger på
else // Hvis strengen $side ikke var sat
include("forside.php"); // Inkluderer forsiden
?>

</body>
</html>


Det var en del kode der nu blev tilføjet. For det første blev menuen gjort aktiv med disse specielle links. F.eks. for at inkludere forsiden (forside.php) kan man nu gå til index.php?side=forside. For det andet kom PHP koden, der inkludere filerne også på (læs kommentarerne på selve koden for forklaringer).
#3


#4
Tilsidst, vil jeg gerne vise, hvordan det kan gøres lidt mere sikkert.

<html>
<head><title>PHP-inkludering</title></he- ad>
<body>

Menu: <a href="?side=forside">forside</a>, <a href="?side=mig">omkring mig</a>, <a href="?side=gaestebog">gæstebogen</a><- ;br><br>

<?php
$side = addslashes($_GET["side"]); // Lidt sikkerhed vha. addslashes();
if($side) // Hvis strengen $side er sat
if(file_exists("$side.php")) // Tjekker om filen der skal inkluderes findes
include("$side.php"); // Inkluder filen strengen peger på
else // Hvis filen ikke findes
echo "Siden eksisterer desværre ikke."; // Udskriv fejlmeddelelse
else // Hvis strengen $side ikke var sat
include("forside.php"); // Inkluderer forsiden
?>

</body>
</html>


Dette nye stykke kode gør, at man ikke kan inkludere en fil, der ikke eksisterer. En ting til er, at man bør putte alle de filer, der skal inkluderes, i en mappe for sig selv.

Held & lykke!
#4