nilsnilspils Skrevet 7. februar 2011 Skrevet 7. februar 2011 Hei! Jeg ser litt på enkle oppsett av sider, og ser på f.eks denne her : http://www.maxdesign.com.au/articles/css-layouts/one-fixed/# Den ser veldig grei ut, men så tenkte jeg at det måtte være bedre å ha php include, så det ikke ble så mye nytt? Men det er her problemet mitt kommer opp. Jeg kan ingenting om php eller websider generelt, ville bare ha en ryddig og grei side. Men sett at jeg vil ha kanskje 10 linker på toppen, hvordan gjør man det best med include, sånn at content blir nytt, men ikke det andre?
Warz Skrevet 7. februar 2011 Skrevet 7. februar 2011 (endret) Vel, for å gjøre det veldig enkelt kan du jo bare skrive <?php include 'header.php'; ?> øverst i html filen (men du må kalle html filen ".php" og IKKE ".html"). Så lager du en fil som heter header.php i samme mappe og putter header greiene der. Så kan du jo lage en footer også, helt nederst i filen din. <?php include 'footer.php'; ?> En annen mulighet er å lage en fil som heter index.php hvor du includer både header, inneholdet og en footer Altså, index.php: <?php include 'header.php'; $page = $_GET['page']; switch($page) { case 'home': include 'home.php'; break; case 'about': include 'about.php'; break; default: include 'main.php'; } include 'footer.php'; ?> Da kan du gå inn på ulike sider slik: index.php?page=home index.php?page=about index.php (vil gå til main.php) Endret 7. februar 2011 av Warz
Yankes Skrevet 8. februar 2011 Skrevet 8. februar 2011 (endret) <?php if(isset($_GET['side'])) $side = $_GET['side']; else $side = "hovedsiden"; $mappe = "./MINE_SIDER/"; // endre den til navnet på mappen du har alle sidene i $filendelse = ".php"; // filendelsen på filene du har i mappen over $incfile = $mappe . $side . $filendelse; if(file_exists($incfile)) { include($incfile); } else { echo "404, siden finnes ikke"; } ?> Dette blir da i index.php der du vil at hovedinnholdet på siden skal vises EDIT: hvis du går for denne varianten blir da linkene www.minside.com/index.php?side=hovedsiden f.eks.. eller bare www.minside.com/?side=hovedsiden Endret 8. februar 2011 av YaNkEs
slacky Skrevet 8. februar 2011 Skrevet 8. februar 2011 (endret) require_once "header.php"; $page = $_GET['x']; $flevel = "pages/"; if ($page != "") { $open = $page; //URL: EnSide.no?x=news } else { $open = "index"; //Altså index.php i mappen pages } if (!file_exists($flevel."".$open.".php")) { include $flevel."index.php"; } else { include $flevel."".$open.".php"; } require_once "footer.php"; Endret 8. februar 2011 av tROOP4H
JohndoeMAKT Skrevet 8. februar 2011 Skrevet 8. februar 2011 tROOP4H: Du glemte å legge til overskriften "Dette er et pent eksempel på hvordan dette _IKKE_ må gjøres.". (?x=../../../hide/databasepassword)
nilsnilspils Skrevet 9. februar 2011 Forfatter Skrevet 9. februar 2011 Tusen takk for svar, Etter som jeg prøvde meg videre, forstår jeg at jeg egentlig bare vil ha inkludert en navigasjonsbar på toppen av siden, for alle sidene i navigasjonsbaren. det jeg gjorde så, var: lagde en mappe (css) med nav.css lagde en nav.php; <ul id="list-nav"> <li><a href"home.php">Home</a></li> <li><a href"test2.php">test2</a></li> <li><a href"test3.php">test3</a></li> <li><a href"test4.php">test4</a></li> <li><a href"http:\\www.sol.no">Other</a></li> </ul> Og så lagde jeg en index.php: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> <link href="css/nav.css" rel="stylesheet" type="text/css"> </head> <body> <?php include_once('nav.inc.php'); ?> </body> </html> Det som er problemet for meg nå, er at når jeg lager test2.php, og legger inn noe annen tekst der etter include-funksjonen, så får jeg ikke kommet til linken. altså uanset hva jeg klikker på av linker, bare viser den samme navigasjonsbaren... Jeg trodde jeg hadde tenkt "rett", men er det noen som ser hvor jeg har feilet?
nilsnilspils Skrevet 9. februar 2011 Forfatter Skrevet 9. februar 2011 Der var jeg for rask ja. a href="url Glemt likhetstegn. Tusen takk for alle svar, ser ut som det fungerer greit nå! Brukte include som Warz limte inn i første innlegg, resten så for komplisert ut
slacky Skrevet 9. februar 2011 Skrevet 9. februar 2011 sweet JohnDoe.. Den la jeg ikke merke til! Til tross for at de ikke kommer seg så veldig langt med den der.. Såa KAN det føre til sikkerhetsrisiko ved større systemer (= Takker for tipset, la ikke merke til det. Og har selv benyttet meg av en ligende variant på et par systemer :b
JohndoeMAKT Skrevet 9. februar 2011 Skrevet 9. februar 2011 Bra. Det er ikke mye som skal til for å gjøre den sikker dog, det er bare viktig å vite at filsystem på et *NIX-system inneholder mye magi. En whitelistende glob() er nok alt som skal til.
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å