Indholds inkludering med PHP
ForordMeget 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 på sit webhotel. Dette er en simplificeret version, af det include(); script jeg selv bruger. De vedhæftede filer, er det endelige eksempel af denne artikel.
Vedhæftning kan downloades her!
Først har jeg lige lavet en lille HTML skabelon, som skal fungere som eksempel under hele artiklen:
<html>
<head><title>PHP inkludering</title></head>
<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.
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 hoved filen index.php (her mener jeg <html>, <head>, <title>, <body>)
Herefter tilføjer vi lidt kode til index.php:
<html>
<head><title>PHP inkludering</title></head>
<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
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 speciele 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)
Tilsidst vil jeg gerne vise, hvordan det kan gøres lidt mere sikkert.
<html>
<head><title>PHP inkludering</title></head>
<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
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.
Jeg har vedhæftet mit endelig eksempel som en zip-fil. (kan hentes i toppen af artiklen) Sidst redigeret 13:27 14/07/2007 |
Oprettet af:
PHP
Point modtaget: 200
Rate:
12:19 14/07/2007
|
Kommentarer
Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
Rigtig god artikel, godt formuleret og god forklaring. men jeg kunne godt bruge lidt mere om at sætte menuen op med et bedre udsens men jeg giver 4/5 :-)
|
12:16 27/09/2007
|
Julle det kan du gøre med css..
dvs er jeg den eneste der bare bruger
#index.php
<?php
include ("top.php");
Echo ("Hej");
include ("bund.php");
?>
#top.php
<html ....... og så videre..+doctype
<table><tr>td>
#bund.php</td></tr></table>
</body>
</html> |
15:57 07/11/2007
|
hej igen
Trilo
jeg kunne godt bruge en guide til at sætte det op er det noget du/i ved hvor er ?? |
07:58 12/11/2007
|
|
Tusind tak for den artikel! - Den skal jeg hvert fald bruge en masse :D |
16:54 23/08/2008
|
Meget brugbart :-)
Tak! |
20:53 15/11/2008
|
Du skal være oprettet og logget ind for at kommentere en artikel