jox Skrevet 5. mars 2005 Del Skrevet 5. mars 2005 hvordan får man så man legger alle "sidene" i f.eks /sider/ og når du skriver f.eks index.php?side=index henter man automatisk en fil som heter index.inc. Så du slipper å skrive inn i index fila for hver gang du har lagt ut en ny side at den skal hente den.?? Lenke til kommentar
Loomy Skrevet 5. mars 2005 Del Skrevet 5. mars 2005 Dette gjøres med et includescript. Du finner en drøss på google Lenke til kommentar
Gilbert Skrevet 5. mars 2005 Del Skrevet 5. mars 2005 <?php $fil = $_GET['side']; include "$fil.php"; ?> Står ikke dette greit forklart i en sticky her? Lenke til kommentar
jox Skrevet 7. mars 2005 Forfatter Del Skrevet 7. mars 2005 <?php $fil = $_GET['side']; include "$fil.php"; ?> Står ikke dette greit forklart i en sticky her? funket det men når jeg går inn på siden uten å skrive noe i ?side=asdad bare filnavnet kommer dette her: Warning: main(.php): failed to open stream: No such file or directory in /hsphere/local/home/************ on line 4 Warning: main(): Failed opening '.php' for inclusion (include_path='.:/usr/local/lib/php') in /hsphere/local/home/**************** on line 4 Hvordan fikse på det? Lenke til kommentar
FuLu Skrevet 7. mars 2005 Del Skrevet 7. mars 2005 (endret) Du kan sjekke om fila eksisterer før du inkluder. Men jeg for min del ville hatt bedre sjekk om fila er innenfor rett område. At du bare skal ha lov til å innkludere fil fra en spesifisert mappe. Hvis jeg hadde skrevet side=../../../osv så kunne jeg hatt muligheten for å innkludere en fil som ikke var ment for å innkludere. En utestet kodesnutt: $tillatt_mappe = '/hsphere/local/home/blablabla'; $side = realpath($_GET['side'].".php"); if($side !== false && strpos($side, $tillatt_mappe) !== false) { include($side); } En miniforklaring: $tillatt_mappe inneholder en string som tilsvarer path/mappe som path'en må begynne med. realpath sjekker om fila/mappa eksisterer og gjør den om til /hsphere/local/... osv, den gir en ekte realpath av fila du prøver å innkludere. Addet .php stringen slik du har i ditt eksempel. if'en sjekker om realpath ikke feilet (den gir false istedet for string når den feiler), sjekker at $tillatt_mappe stringen finnes i $side (realpath genererte en realpath string i $side). Når if'en gikk ok, vil den inkludere $side. Om siden du skal innkludere ligger i en annen mappe, så kan du f.eks si index.php?side=en_annen_mappe/siden_som_skal_lastes Da vil realpath (relativt) bli /hsphere/local/blabla/en_annen_mappe/siden_som_skal_lastes.php (vel å merke at fil og mappe eksisterer) Endret 7. mars 2005 av FuLu Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå