TheClown Skrevet 30. april 2007 Del Skrevet 30. april 2007 Heisann, driver å lager en ny side til et skoleprosjekt Til dette hadde jeg tenkt til å utvide mine HTML og PHP kunnskaper Har derfor tenkt til å prøve å lage en side som bruker ?s= systemet. Dvs. når du trykker en link byttes innholdet i en rute ut med det i et annent ett. Slik som include funker. Problemet er bare det at jeg ikke får det til å funke! Ta denne siden: http://www.infwar.org/ den bruker ?s= systemet og nede i kildekoden kan man finne dette: <iframe name="content" scrolling="auto" src="inc/index.inc.php" width="437" height="449" border="0" frameborder="0"> Men jeg skjønner ikke hvordan dette skal brukes. Hvordan velger jeg ut hvilke frame som skal byttes ut osv. Kan noen hjelpe meg? Testside: http://vikings-of-norway.com/pizza4life/index.php Lenke til kommentar
tehextinct Skrevet 30. april 2007 Del Skrevet 30. april 2007 (endret) Jeg vill gjort dette: Dette scriptet henter teksten fra en fil i samme mappe Linkene: <a href="index.php?s=index">1</a> <a href="index.php?s=om">2</a> <a href="index.php?s=oss">3</a> <?php if (isset($_GET['s'])) { $side = $_GET['s']; include($side . '.inc.php'); } Dette scriptet legger du der du vil vises innholdet og innholdet legger du i index.inc.php / om.inc.php osv. Håper du skjønte det Du kan også kalle filene index.txt/html/htm egentlig samma det Vet ikke om det virker, men noe i den duren Endret 30. april 2007 av tehextinct Lenke til kommentar
Anders Moen Skrevet 30. april 2007 Del Skrevet 30. april 2007 (endret) <?php $p = $_GET['page']; // ?page= $ex = "php"; // File extension $folder = "includes"; // Folder where the files you want to include is $main = "main"; // Main page $error = "404"; // 404 error page if (empty($p)) { include("$folder/$main.$ex"); } else if (file_exists("$folder/$p.$ex")) { include("$folder/$p.$ex"); } else if (!file_exists("$folder/$p.$ex")) { include("$folder/$error.$ex"); } ?> Skrev denne her til en fyr på W3Schools forumet, derfor er forklaringene på engelsk. Linkene vil være: <a href="index.php?page=et_eller_annet">Klikk her da :D</a> og filene som inkluderes ligger i en mappe kalt "includes" (uten quotes). 404 error siden kan hete 404.php og hovedsiden main.php Håper du lærte noe av meg Endret 30. april 2007 av Anders-Moen Lenke til kommentar
TheClown Skrevet 30. april 2007 Forfatter Del Skrevet 30. april 2007 Fy F det funka! YES! Dere aner ikke hvor mye arbeid dere sparte med for der! TAKK TAKK TAKK! Lenke til kommentar
TheClown Skrevet 30. april 2007 Forfatter Del Skrevet 30. april 2007 Ok nytt problem. Har brukt det første eksempelet som ble postet i tråden her. Men når folk kommer inn på siden står det ikke ?s=index.php bak URLen (selvfølgelig), og derfor kommer ikke index.php teksten opp. Er det mulig å sette en som standar med en gang men kommer inn på siden? Anntar at script 2 var litt mer ordentlig laget, men jeg forsto den ikke ordentlig, det gjorde jeg med script 1. Hjelp PLX! Lenke til kommentar
Anders Moen Skrevet 30. april 2007 Del Skrevet 30. april 2007 (endret) Skjønte du ikke scriptet mitt? Prøver en gang til, men med norsk forklaring da. <?php // "Config" $p = $_GET['side']; // ?side= $ex = "php"; // Filendelse $folder = "includes"; // Mappa hvor filene som blir inkludert ligger $main = "main"; // Hovedsida (hvis ?side= er tom $error = 404; // Finnes ikke // Hvis side er tom if (empty($p)) { include("$folder/$main.$ex"); // Hovedsiden inkluderes } // Hvis ?side=noe og noe.php finnes blir den inkludert her: else if (file_exists("$folder/$p.$ex")) { include("$folder/$p.$ex"); } // Hvis ?side=noe og noe.php ikke finnes blir 404 siden inkludert: else if (!file_exists("$folder/$p.$ex")) { include("$folder/$error.$ex"); } ?> Nå må du vel ha skjønt noe? Hehe Endret 30. april 2007 av Anders-Moen Lenke til kommentar
Bakke Skrevet 30. april 2007 Del Skrevet 30. april 2007 (endret) Hovedsida blir includert om $s er tom... Edit: Eller i dette tilfellet $side Endret 30. april 2007 av mhbakke Lenke til kommentar
TheClown Skrevet 30. april 2007 Forfatter Del Skrevet 30. april 2007 (endret) Nei Men det funka helt fint nå Har sett litt nærmere på scriptet nå, var ikke SÅ vanskelig Bare veldig mange $$$ her og der. Men, takk for hjelpa! ----------------------------------- Ok, nå er det noe feil her.... Gjorde om fila slik, og JA DET SKAL STÅ INDEXX <?php // "Config" $p = $_GET['side']; // ?side= $ex = "php"; // Filendelse $main = "indexx"; // Hovedsida (hvis ?side= er tom $error = 404; // Finnes ikke // Hvis side er tom if (empty($p)) { include("$main.$ex"); // Hovedsiden inkluderes } // Hvis ?side=noe og noe.php finnes blir den inkludert her: else if (file_exists("$p.$ex")) { include("$$p.$ex"); } // Hvis ?side=noe og noe.php ikke finnes blir 404 siden inkludert: else if (!file_exists("$p.$ex")) { include("$error.$ex"); } ?> Men den skifter ikke side: http://vikings-of-norway.com/pizza4life/index.php Endret 30. april 2007 av TheClown Lenke til kommentar
Anders Moen Skrevet 30. april 2007 Del Skrevet 30. april 2007 $p = $_GET['side']; // ?side= Legg merke til den...du linker til index.php?s= Gjør om den linja her: $p = $_GET['side']; til $p = $_GET['s']; så skal den nok fungere Lenke til kommentar
Martin A. Skrevet 30. april 2007 Del Skrevet 30. april 2007 PHP // Hvis ?side=noe og noe.php finnes blir den inkludert her:else if (file_exists("$p.$ex")) { include("$$p.$ex"); } en $for mye der, skal være PHP // Hvis ?side=noe og noe.php finnes blir den inkludert her:else if (file_exists("$p.$ex")) { include("$p.$ex"); } Lenke til kommentar
Anders Moen Skrevet 30. april 2007 Del Skrevet 30. april 2007 Oops, så ikke den. Nå tror jeg koden skal fungere for deg: PHP <?php // "Config" $p = $_GET['s']; // ?side= $ex = "php"; // Filendelse $main = "indexx"; // Hovedsida (hvis ?side= er tom $error = 404; // Finnes ikke // Hvis side er tom if (empty($p)) { include("$main.$ex"); // Hovedsiden inkluderes } // Hvis ?s=noe og noe.php finnes blir den inkludert her: else if (file_exists("$p.$ex")) { include("$p.$ex"); } // Hvis ?s=noe og noe.php ikke finnes blir 404 siden inkludert: else if (!file_exists("$p.$ex")) { include("$error.$ex"); } ?> Lykke til videre Lenke til kommentar
TheClown Skrevet 30. april 2007 Forfatter Del Skrevet 30. april 2007 Aha! Takk, nå funker det fint igjen Denne malen skal jeg bruke på flere sider, var genialt enkelt og smart lagd! Løv U! Lenke til kommentar
KjellSpell Skrevet 30. april 2007 Del Skrevet 30. april 2007 Bare veldig mange $$$ her og der. Vi er heldig som har $(variabel) i php, for og slippe og skrive en masse goder mange gang osv. og lettere config Lenke til kommentar
jorgis Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Husk på at dette scriptet også vil inkludere filer under webroot, samt vil være sårbar for poison null byte-sårbarheter. I verste fall risikerer du at samtlige filer på systemet kan leses av en inntrenger, i beste fall kan samtlige php-filer på systemet kjøres av en inntrenger (også filer på andre domener og webhotellpakker). Eksempel: index.php?s=../../../etc/passwd%00 vil inkludere (og dermed lese ut) /etc/passwd index.php?s=../../annet_domene/www/ond_fil.php vil inkludere (og kjøre) en fil fra et annet domene eller webhotellpakke, potensielt med onde hensikter (system("rm -rf *") er mulig). Vil anbefale at du smetter inn en liten sjekk som stripper ut "../" og "\0", så slipper du den slags ubehageligheter. Lenke til kommentar
Ståle Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 http:/mortz.tjokk.net Morten sitt includescript. Lenke til kommentar
TheClown Skrevet 1. mai 2007 Forfatter Del Skrevet 1. mai 2007 Takk for linken, skal se nærmere på det etterpå PHP // Hvis ?side=noe og noe.php finnes blir den inkludert her:else if (file_exists("$p.$ex")) { include("$$p.$ex"); } en $for mye der, skal være PHP // Hvis ?side=noe og noe.php finnes blir den inkludert her:else if (file_exists("$p.$ex")) { include("$$p.$ex"); } 8507850[/snapback] Ja, sletta visst en $ for lite, men errormld var ikke så vanskelig å tyde Lenke til kommentar
Anders Moen Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 jorgis Vet ikke om jeg har fiksa det helt nå, men ta en titt å se om jeg har gjort det. Funksjonen: <?php function inca($as) { $as = str_replace("../", "", $as); $as = str_replace("/", "", $as); return $as; } ?> Include-koden: <?php $p = inca($_GET['page']); // ?page= $ex = "php"; // File extension $folder = "includes"; // Folder where the files you want to include is $main = "main"; // Main page $error = 404; // 404 error page if (empty($p)) { include("$folder/$main.$ex"); } else if (file_exists("$folder/$p.$ex")) { include("$folder/$p.$ex"); } else if (!file_exists("$folder/$p.$ex")) { include("$folder/$error.$ex"); } ?> Finnes nok en smartere måte, men vil det der fungere? Prøvde selv å gjøre sånn: ?page=../index og da fikk jeg inn indexen som den fila ligger i, så la jeg på funksjonen så fungerte det ikke. Da fikk jeg bare 404-sida. Men det funker, og finnes det noen...smartere/bedre måter? Lenke til kommentar
TheClown Skrevet 1. mai 2007 Forfatter Del Skrevet 1. mai 2007 Trenger ikke noe slikt "sikkerhets"-greier til den siden her. Men hvis jeg skal lage noe ordentlig en gang tror jeg scriptet jeg lasta ned fra den siden funker helt perfekt! Takk! Lenke til kommentar
grimjoey Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Hvis du vil bruke iframe gjøres det følgende: <iframe name="rammenavn" height="500" width="500"> <a href="index.php?s=indexx" target="rammenavn">Indexx</a> Lenke til kommentar
TheClown Skrevet 1. mai 2007 Forfatter Del Skrevet 1. mai 2007 Ahh, og det funker da på samme måte som include? 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å