erlnico Skrevet 28. januar 2006 Del Skrevet 28. januar 2006 Her det nokon her som kan hjelpe meg med å forklare korleis ein lager ein index.php?page=XXXXXX kode i eit menysystem? Lenke til kommentar
erlnico Skrevet 28. januar 2006 Forfatter Del Skrevet 28. januar 2006 (endret) Går det ann å få eit meir udypende svar?? Det vil sei... eksempel på ein komplett kode?? hehe Endret 28. januar 2006 av fistersn Lenke til kommentar
HoaXed Skrevet 28. januar 2006 Del Skrevet 28. januar 2006 (endret) Mange er nok ikke enige at dette er ett bra valg, men enkelt og greit Legg dette scriptet der du vil sidene skal komme inn i designet; <?php /* KONFIGURASJON */ $default = "home"; /* forsiden */ $directory = "file"; /* mappen hvor undersidene ligger */ $extension = "php"; /* endelsen på sidene */ /* SCRIPTET STARTER HER *****************************************************/ $page = $_GET['page']; if(!empty($page)){ if (preg_match('/(http:\/\/|^\/|\.+?\/)/', $page)) { echo "Du har inkludert en side som er ugyldig!)"; // for å hindre at det includeres filer fra uønskede plasser } elseif (file_exists("$directory/$page.$extension")) include("$directory/$page.$extension"); } ?> Så lager du linker som dette index.php?page=kontakteksempel Endret 28. januar 2006 av HoaXed Lenke til kommentar
Beethoven Skrevet 28. januar 2006 Del Skrevet 28. januar 2006 Hoaxed... preg_match, er ikke det en veldig treg funksjon? Kan man ikke heller kvitte seg med de farlige tegnene: <?php /* KONFIGURASJON */ $default = "home"; /* forsiden */ $directory = "file"; /* mappen hvor undersidene ligger */ $extension = "php"; /* endelsen på sidene */ /* SCRIPTET STARTER HER *****************************************************/ $page = $_GET['page']; $page = str_replace('.', '', $page); $page = str_replace('/', '', $page); $page = str_replace('\\', '', $page); if(!empty($page)){ if (file_exists("$directory/$page.$extension")) include("$directory/$page.$extension"); } ?> ? Lenke til kommentar
xzibiz Skrevet 28. januar 2006 Del Skrevet 28. januar 2006 Fekk det til ja.. Men er det ein lett måte å sette target="" på uten å måtte sette det på alle linkene?? Lenke til kommentar
HoaXed Skrevet 28. januar 2006 Del Skrevet 28. januar 2006 (endret) Hoaxed... preg_match, er ikke det en veldig treg funksjon? Kan man ikke heller kvitte seg med de farlige tegnene: <?php /* KONFIGURASJON */ $default = "home"; /* forsiden */ $directory = "file"; /* mappen hvor undersidene ligger */ $extension = "php"; /* endelsen på sidene */ /* SCRIPTET STARTER HER *****************************************************/ $page = $_GET['page']; $page = str_replace('.', '', $page); $page = str_replace('/', '', $page); $page = str_replace('\\', '', $page); if(!empty($page)){ if (file_exists("$directory/$page.$extension")) include("$directory/$page.$extension"); } ?> ? 5514326[/snapback] Bee Faktisk helt enig Kan godt være fler feil der. Brukte dette for lenge siden.. Endret 28. januar 2006 av HoaXed Lenke til kommentar
Zic0 Skrevet 29. januar 2006 Del Skrevet 29. januar 2006 (endret) Når man først snakker om optimal kode: <?php /* KONFIGURASJON */ $default = "home"; /* forsiden */ $directory = "file"; /* mappen hvor undersidene ligger */ $extension = "php"; /* endelsen på sidene */ /* SCRIPTET STARTER HER *****************************************************/ $page = str_replace(array('.', '/', '\\'), array('', '', ''), $_GET['page']); if(!empty($page)){ if (file_exists("$directory/$page.$extension")){ include("$directory/$page.$extension"); } } ?> Det er jo sefflig enda bedre å bytte ut " med ', og samme med variablene, men er for lat for det. Endret 29. januar 2006 av Zic0 Lenke til kommentar
???????? Skrevet 29. januar 2006 Del Skrevet 29. januar 2006 Hoaxed... preg_match, er ikke det en veldig treg funksjon? Nope, det er ikke en veldig treg funksjon. Dersom den hadde vært treg så må du ikke glemme hva den sjekker, en liten url variabel! Det er viktig å tenke hva man bruker funksjoner til. I dette tilfellet vil det være meget enkelt å kun bruke preg_match til å lete etter et punktum. Dersom den finner det så er sjansen til stede for at noen bruker ../../ eller www.domene.no eller andre uheldige ting. Det eneste man behøver å tenke på da er at filnavnene ikke kan inneholde . på andre steder enn ved ext - så har man hindret at noen inkluderer andre filer på serveren eller fra andre steder på internett. 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å