Dryper Skrevet 10. mars 2008 Skrevet 10. mars 2008 Heisann, er det noen som hvet hvordan index.php?page= sider? Takker for alle svar!
eTrollet Skrevet 10. mars 2008 Skrevet 10. mars 2008 Heisann, er det noen som hvet hvordan index.php?page= sider? Takker for alle svar! <?php if($side == "hva_du_vil"){ include "sti_til/hva_du_vil.php"; } else if($side == "hva_jeg_vil"){ include "sti_til/hva_jeg _vil.php"; } else{ include "sti_til/hva_vi_vil.php"; } ?> Lenke blir da: ?side=hva_du_vil Dette gir riktignok ikke "index.php?page= sider" men er fullt ut brukbart. Om "include" ikke er ønskelig å bruke så kan "switch" brukes i steden. Det kan da bli seende slik ut. <?php switch (@$_GET['bar']) { case '1': include 'hva_du_vil.php'; break; case '2': include 'hva_jeg_vil.php'; break; default: end; } ?> Lenke blir da: ?bar=1 (for hva_du_vil.php) Håper dette var til hjelp. Forøvrig er det meste dokumentert her: P H P -- eTrollet
Zandar Skrevet 10. mars 2008 Skrevet 10. mars 2008 <?phpif($side == "hva_du_vil"){ include "sti_til/hva_du_vil.php"; } else if($side == "hva_jeg_vil"){ include "sti_til/hva_jeg _vil.php"; } else{ include "sti_til/hva_vi_vil.php"; } ?> Lenke blir da: ?side=hva_du_vil Dette gir riktignok ikke "index.php?page= sider" men er fullt ut brukbart. Du har glemt å gi $side en verdi her. For at koden skal fungere må du legge til $side = $_GET['side']; før if-setningen. Når det gjelder index.php?page=sider så henter man ut verdien av page med $_GET['page'] F.eks. <?php if (isset($_GET['page'])) { $page = $_GET['page']; echo 'Page: ' . $page; } ?>
Garanti Skrevet 10. mars 2008 Skrevet 10. mars 2008 eTrollet: Hvorfr bruker du @ i switch (@$_GET['bar']) { ? Sett dette blitt brukt før, forstår ikke hvorfor...
JohndoeMAKT Skrevet 10. mars 2008 Skrevet 10. mars 2008 http://no.php.net/manual/en/language.opera...rrorcontrol.php "Suppress errors". I dette tilfellet er det en warning som ikke vil skje dersom bar ikke er satt.
eTrollet Skrevet 10. mars 2008 Skrevet 10. mars 2008 [snip]Du har glemt å gi $side en verdi her. For at koden skal fungere må du legge til $side = $_GET['side']; før if-setningen. Det er mulig jeg bør det, men det fungerer uten for meg. -- eTrollet
Zandar Skrevet 10. mars 2008 Skrevet 10. mars 2008 [snip]Du har glemt å gi $side en verdi her. For at koden skal fungere må du legge til $side = $_GET['side']; før if-setningen. Det er mulig jeg bør det, men det fungerer uten for meg. -- eTrollet Da kjører du PHP med register globals påslått. Register globals påslått er et stort sikkerhetshull og fyfy! Heldigvis fjernes det helt i PHP6.
eTrollet Skrevet 10. mars 2008 Skrevet 10. mars 2008 Da kjører du PHP med register globals påslått.Register globals påslått er et stort sikkerhetshull og fyfy! Heldigvis fjernes det helt i PHP6. Det har du faktisk helt rett i. Det står on både i Local Value og i Master Value. Riktignok er det ikke jeg som kjører med on men dem som hoster domene og webserver. Kanskje jeg skal be om å få skrudd av? Forøvrig kjøres det på v.4.4.4 -- eTrollet
nree Skrevet 10. mars 2008 Skrevet 10. mars 2008 (endret) Det finnes mange måter å gjøre dette på, selv liker jeg best mySQL og mappe varianten. <?php $side = strip_tags($_GET['side']); $sporring = "select * from sider where tittel='$side'"; // Databasespørring $resultat = mysql_query($sporring); if(mysql_affected_rows() !== 0) { // Skjekker om siden finnes i databasen $rad = mysql_fetch_array($resultat); echo $rad['innhold']; } else { // Siden finnes ikke i databasen, skjekker mappe $fil = "undersider/".$side.".php"; if(file_exists($fil)) { include($fil); // Inkluderer fil } } ?> Med denne metoden kan du ha enkle informasjons sider i databasen og større script i en mappe. Du kan jo også bruke eval til php script i databasen, men det syns jeg er en treg løsning. Har ikke testet scriptet, det er kun ment for å gi kunnskap! Endret 10. mars 2008 av Goggen90
Wackamole Skrevet 10. mars 2008 Skrevet 10. mars 2008 Her er en jeg bruker (er ikke sikker i hele tatt!): <?php $side = (isset($_GET['side']) && $_GET['side'] != '') ? $_GET['side'] : 'hovedside'; if (file_exists("sider/$side.php")) { include_once("sider/$side.php"); } else { echo "<h2>Error: 404</h2>Siden finnes ikke.<title>ERROR: 404 - Siden finnes ikke</title>"; } ?> du legger alle sidene dine i "sider" mappen, og hvis det ikke finnes en variabel i GET attributen så redirecter den til hovedsiden
Martin A. Skrevet 11. mars 2008 Skrevet 11. mars 2008 Her er den jeg brukte da jeg hadde hjemmeside $side = $_GET['side']; $mappe = "ink/"; if( empty( $side ) ) { include($mappe . "main.php"); } elseif( !empty( $side ) AND !preg_match( "#\.\./|^/#", $side ) AND file_exists( $mappe . $side .".php" ) ) { include( $mappe . $side . ".php" ); } else { include( $mappe . "404.php" ); } Litt sikrere enn Famen sin. Her kan man feks ikke bruke ?side=../../../../../../../etc/passwd
BigJackW Skrevet 11. mars 2008 Skrevet 11. mars 2008 <?php /** * @author Hellkeepa */ $Folder = 'include/'; $Action = ($Action = substr (strtolower (preg_replace ('([^a-zA-Z])', '', $_GET["action"])), 0, 20)) ? $Action : "main"; $Inc = $Folder.$Action . '.php'; if (is_file($Inc) && is_readable($Inc)) { include $Inc; } else { header ("HTTP/1.0 404 Not Found"); include 'pagedontexists.php'; } ?>
Wackamole Skrevet 11. mars 2008 Skrevet 11. mars 2008 *snip*Litt sikrere enn Famen sin. Her kan man feks ikke bruke ?side=../../../../../../../etc/passwd Hmm, dette så faktisk ganske bra ut... tror jeg skal bytte (hvis jeg får lov og bruke det)
Bozzeye Skrevet 11. mars 2008 Skrevet 11. mars 2008 *snip*Litt sikrere enn Famen sin. Her kan man feks ikke bruke ?side=../../../../../../../etc/passwd Hmm, dette så faktisk ganske bra ut... tror jeg skal bytte (hvis jeg får lov og bruke det) Tror nok du får lov til å bruke det. Begynner å bruke det jeg òg.
Martin A. Skrevet 11. mars 2008 Skrevet 11. mars 2008 Er forøvrig LoS som har skrevet det. Ligger postet i tråden for kodesnutter om jeg ikke tar helt feil.
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å