switch($_GET['page']); Not Found?

PHP

2 svar · 453 visningar · startad av seamonster

Medlem sedan maj 200848 inlägg
Trådstart#1

Jag har byggt min hemsida med <div>:ar och följande php kod:

<?php   
		require_once ('pages/header.php');  
 
		switch($_GET['page'])
		{
		
		case 'start':
			include("pages/start.php");
			include("pages/menumain.php");
			break;
		
		default:
			include("pages/start.php");
			include("pages/menumain.php");
			break;
		}

		require_once ('pages/footer.php'); 
	?>

Jag kortade ner den ordenligt med CASE:ar.
Sidan funkar skit bra, men om man skriver exempel: index.php?page=hejsan
Och eftersom det inte finns nån case som heter hejsan, skickas man ju till default. Men finns det nån notfound? ungifär såhär:

		notfound:
			include("pages/404.php");
			include("pages/menumain.php");
			break;

Skulle uppskatta det ordentligt!
Eller, om det finns nåt annat sätt...
/Seamonster

Medlem sedan maj 2005704 inlägg
#2

default är ju egentligen "notfound".
Jag tror att om page variabeln inte är satt så är den detsamma som en tom sträng, så då borde " case '': " funka för startsidan, och sedan default för din 404.

Jag skulle nog köra detta istället dock:

if(!isset($_GET["page"])){
            include("pages/start.php"); 
} else {
        switch($_GET['page']){
        
        case 'start':
            include("pages/start.php");
            break;
        
        default:
            include("pages/404.php");
            break;
        }
}
include("pages/menumain.php");
Medlem sedan maj 200848 inlägg
#3

Tack! Nu funkar det precis som jag ville, och koden är enklare.

/Seamonster

259 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)