Gå til innhold

Lage custom 404 side i php?


Anbefalte innlegg

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 :p

Lenke til kommentar
Videoannonse
Annonse
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" :p

 

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 :p

Endret av Dryper
Lenke til kommentar

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 av Garanti
Lenke til kommentar
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 :p. 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 :)

Lenke til kommentar

<?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.

Lenke til kommentar
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.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...