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.. 5/5 |
15:21 14/07/2007
|
|
God artikel... :) |
Oprettet af:
Ukendt bruger
17:52 14/07/2007
|
|
Godt lavet ! |
00:59 15/07/2007
|
|
Det var dog den dårligste artikel jeg nogensinde har læst. Lorte slamkode! |
Oprettet af:
Ukendt bruger
17:56 15/07/2007
|
Tror ikke det var den dårligste.
Btw, det ville være meget lettere vha. switch() |
19:13 15/07/2007
|
|
Jeg er enig med Jesper, det er heller ikke lige det fedeste kode jeg har set. |
11:27 16/07/2007
|
|
Hm. Det ville være rart med en begrundelse.. |
17:57 16/07/2007
|
|
God idé med at putte file_exists() ind. :) |
10:11 19/07/2007
|
|
Det var dog den dårligste artikel jeg nogensinde har læst. Lorte slamkode!
Ja, det kan vi jo ikke bruge til noget vel?
Så læg et eksempel, så vi alle sammen ikke koder slam.... |
22:10 26/07/2007
|
Hehe jeg bruger bare
<?php
$side = isset($_GET['page'])? $_GET['page'] : "forside";
$side .= ".php";
if(file_exists($side)) {
include $side;
}
else {
include "fejl.php";
}
?>
Der hvor der står forside så skal man bare lave forside.php så :) |
00:36 26/08/2007
|
Du skal være oprettet og logget ind for at kommentere en artikel