Nu undrar jag över det lättaste sättet att "fånga upp" vald URL. Jag har kollat på hur det fungerar i t.ex. Wordpress, där alla sidor/anrop går genom index-filen, med hjälp av följande i .htaccess
Jag är lite insatt hur resten fungerar i WP, d.v.s. att sidorna sedan hämtar dess ID utifrån preg_match(), men det jag inte vet är varifrån det hämtas. Vad jag kan göra är att skicka ut alla meny-items tillsammans med dess resp. ID som en lång sträng, och sen hämta resp ID med preg_match.
Det går ju även att spara hela "menyträdet" som en array och sedan hämta rätt ID/Key med hjälp av in_array().
$_SERVER['REQUEST_URI'] hittar ju det som finns i adressfältet, är det "bra" och "säkert" att använda sig av den servervariabeln för att hämta rätt artikel/sida, eller bör man göra på något annat sätt?
Men den stora frågan är ju - vilket sätt är bäst/snabbast?
Jag bör ju ha hela trädet som någon typ av variabel/array i en fil och läsa in filen vid varje anrop, snarare än att hämta hela trädet från databasen vid varje anrop, eller hur?
Du gör precis som du skriver och använder dig av servervariabeln :)
Om du lagrar sidorna ungefär som i WordPress (där hela sökvägen till sidan sparas i databasen) så kan du ju använda den variabeln rakt av för att söka efter sidan. Det du kanske ska tänka på dock, är att sanera variabeln innan den går in i en SQL-fråga, men jag utgår från att du inte använder gamla och förlegade mysql_connect så då sköts mycket av det automatiskt ;)
Bäst prestandamössigt? Tja, det är ju så man gör :-)
Det du pratar om benämns ofta som URL segments. Och en snabb Googling kommer visa dig att sättet man implementerar det på i PHP är genom just den servervariabeln. Ofta så brukar man köra explode på den med snedstreck som delimiter, men det beror ju på hur sidorna är organiserade i databasen.
Förresten, hur kommer det sig att du utvecklade ett CMS själv? :-)
Ok.. Tack! Men är det verkligen ett (bra) alternativ att hämta rätt sida direkt från databasen, istället för att cache/spara alla sidor inkl. dess id'n? "Trädet" hämtas ju rekursivt, nu är det visserligen inte så stora träd, men ändå..? :)
CMS-biten är bara en liten, liten del av ett helt system med massa annat, därför har jag utvecklat det på egen hand.
Jag sitter just nu och försöker mig på just detta. Problemet är att min htaccess inte verkar fungera alls. Jag får bara ett 404-meddelande om jag lägger till /något/här längst bak i URLen.
Då gör du förmodligen fel.. Kolla mitt första inlägg, det räcker för att det ska fungera.
Haha, you don't say!? Jag gör något kalasfel, jag kan bara inte komma på vad. Jag kopierade din .htaccess rakt av. Min gissning är att jag har konfigurerat Apache på något okonventionellt sätt.
Går jag till /index.php fungerar det så klart, men /blahblahblah/blah fungerar inte. Den går inte till /index.php oavsett vilken URL jag skriver.