webForumDet fria alternativet

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

2 svar · 442 visningar · startad av seamonster

seamonsterMedlem sedan maj 200848 inlägg
#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

BlixtsystemsMedlem 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");
seamonsterMedlem sedan maj 200848 inlägg
#3

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

/Seamonster

128 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)