Dryper Skrevet 8. juni 2008 Skrevet 8. juni 2008 Jeg bruker dette "Get" systemet på index sida mi, som da henter alle sidene hved hjelp av ID osv (ex: index.php?page=julenissen) Men når siden ikke eksisterer så kommer det jo opp Warning: include(julenissen.php) [function.include]: failed to open stream: No such file or directory in C:\Server\www\www\projects\julenissen\index.php on line 86 Warning: include() [function.include]: Failed opening 'julenissen.php' for inclusion (include_path='.;C:\Server\xampp\php\pear\') in C:\Server\www\www\projects\julenissen\index.php on line 86 Noe som ikke er noe spessielt uventet men det jeg da lurte på var om at isteden for at den genererer denne feilmedlingen om den feks kunne komt opp med "Page not found" istedenfor. Takker for svar
Jonas Skrevet 8. juni 2008 Skrevet 8. juni 2008 (endret) Bare prøv å søk litt .. Første treff. http://www.google.no/search?hl=no&sa=X...nce&spell=1 Endret 8. juni 2008 av Jonas
Dryper Skrevet 8. juni 2008 Forfatter Skrevet 8. juni 2008 (endret) Bare prøv å søk litt .. Første treff. http://www.google.no/search?hl=no&sa=X...nce&spell=1 Jeg gjor det og fant ut av det men det var litt lettere å søke på "exists php" Min løsning: if (file_exists($id. ".php")) {} else { echo "Page not found, it may be deactivated by administrator or simply dont exists"; die; } Edit: noen som har en bedre måte å gjøre det på ? bare å slenge inn noe / modde på den Endret 8. juni 2008 av Dryper
Garanti Skrevet 8. juni 2008 Skrevet 8. juni 2008 (endret) Like greit å bruke switch/case her, så lenge det ikke er snakk om en stor mengde filer: if(isset($_GET['act'])){ switch ($_GET['act']){ case 'entry': include("act/entry.php"); break; case 'users': include("act/users.php"); break; case 'stat': include("act/stat.php"); break; default: header($_SERVER['PHP_SELF']); } Endret 8. juni 2008 av Garanti
Jonas Skrevet 8. juni 2008 Skrevet 8. juni 2008 Du fant det med andre ord ut selv, seks minutter etter du opprettet en ny tråd? Tror det er en ny rekord.
Dryper Skrevet 8. juni 2008 Forfatter Skrevet 8. juni 2008 Du fant det med andre ord ut selv, seks minutter etter du opprettet en ny tråd? Tror det er en ny rekord. Da er jeg vertfall en stolt rekordholder
Dryper Skrevet 8. juni 2008 Forfatter Skrevet 8. juni 2008 Like greit å bruke switch/case her, så lenge det ikke er snakk om en stor mengde filer: if(isset($_GET['act'])){ switch ($_GET['act']){ case 'entry': include("act/entry.php"); break; case 'users': include("act/users.php"); break; case 'stat': include("act/stat.php"); break; default: header($_SERVER['PHP_SELF']); } Nå vet jeg ikke helt hva antallet på et "Stort" prosjekt er men mitt inneholder vel nå godt over 150 filer . og nei jeg har ikke alt i egen fil .. her holder jeg meg til 1 fil per funksjon. Så hvert av skriptene er vel 5-6kb gjennomsnitt
Wackamole Skrevet 8. juni 2008 Skrevet 8. juni 2008 <?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>"; } echo "<title>".$title."</title>"; ?> Den jeg bruker, en hel haug med sikkerhetsfeil, men du ser i det minste hvordan jeg får "Custom" 404 side.
Runar Skrevet 10. juni 2008 Skrevet 10. juni 2008 header('HTTP/1.1 404 Not Found'); Det hjelper vel ærlig talt ikke mye å legge til det til den originale koden? Den vil jo ikke gjøre annet en å sette riktig header. Feilmeldingen (ikke den riktige) vil fortsatt vises.
Jonas Skrevet 10. juni 2008 Skrevet 10. juni 2008 header('HTTP/1.1 404 Not Found'); Det hjelper vel ærlig talt ikke mye å legge til det til den originale koden? Den vil jo ikke gjøre annet en å sette riktig header. Feilmeldingen (ikke den riktige) vil fortsatt vises. Nja, enkelte nettlesere viser faktisk sin egen 404-melding dersom den mottar en 404-header, uavhengig av hva annet som blir sent. Det beste vil nok være en kombinasjon av en modifisert header og egen feilmelding. Da har du ikke de samme ulempene som med soft 404.
Stian Jacobsen Skrevet 10. juni 2008 Skrevet 10. juni 2008 (endret) <?php $path = "path/to/pages/"; $page = addslashes(trim($_GET['side'])); $ftype = ".php"; if(!file_exists($path.$page.$ftype)) { $file = "custom_404"; } else { $file = $page; } include_once($path.$file.$ftype); ?> Endret 10. juni 2008 av Stian Jacobsen
Runar Skrevet 10. juni 2008 Skrevet 10. juni 2008 Hva skal den koden der være godt for, Stian Jacobsen? Har du i det hele tatt lest tråden?
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å