Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Indholds inkludering med PHP

Forord

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 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:

  1. <html>
  2.  <head><title>PHP inkludering</title></head>
  3. <body>

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

  5. Indholdet skal så være her.

  6. </body>
  7. </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:

  1. <html>
  2.  <head><title>PHP inkludering</title></head>
  3. <body>

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

  5. <?php
  6. $side = addslashes($_GET['side']); // Lidt sikkerhed
  7. if ($side) { // Hvis strengen $side er sat
  8. include("".$side.".php"); // Inkluder filen strengen peger på
  9. } else { // Hvis strengen $side ikke var sat
  10. include("forside.php"); // Inkluderer forsiden
  11. }
  12. ?>

  13. </body>
  14. </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.

  1. <html>
  2.  <head><title>PHP inkludering</title></head>
  3. <body>

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

  5. <?php
  6. $side = addslashes($_GET['side']); // Lidt sikkerhed
  7. if ($side) { // Hvis strengen $side er sat
  8. if (file_exists("".$side.".php")) { // Tjekker om filen der skal inkluderes findes
  9. include("".$side.".php"); // Inkluder filen strengen peger på
  10. } else { // Hvis filen ikke findes
  11. echo "Siden eksisterer desværre ikke."; // Udskriv fejlmeddelelse
  12. }
  13. } else { // Hvis strengen $side ikke var sat
  14. include("forside.php"); // Inkluderer forsiden
  15. }
  16. ?>

  17. </body>
  18. </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
Oprettet af:
  Mail
15:21 14/07/2007
God artikel... :)
Oprettet af:
  Mail
17:52 14/07/2007
Godt lavet !
Oprettet af:
  Mail
00:59 15/07/2007
Det var dog den dårligste artikel jeg nogensinde har læst. Lorte slamkode!
Oprettet af:
  Mail
17:56 15/07/2007
Tror ikke det var den dårligste.

Btw, det ville være meget lettere vha. switch()
Oprettet af:
  Mail
19:13 15/07/2007
Jeg er enig med Jesper, det er heller ikke lige det fedeste kode jeg har set.
Oprettet af:
  Mail
11:27 16/07/2007
Hm. Det ville være rart med en begrundelse..
Oprettet af:
  Mail
17:57 16/07/2007
God idé med at putte file_exists() ind. :)
Oprettet af:
  Mail
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....
Oprettet af:
  Mail
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å :)
Oprettet af:
  Mail
00:36 26/08/2007
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes