webForumDet fria alternativet

Skicka variabler utan sida

Webbutveckling

11 svar · 695 visningar · startad av Web-Tor

Medlem sedan nov. 200013 890 inlägg
Frågan#1

Jag funderar lite på hur jag skall bygga upp en sidan som jag jobbar med för tillfället. Jag tittade på https://www.mediamarkt.se och såg hur dom gjort.

T.ex:
https://www.mediamarkt.se/?categoryID=1 (för att komma till ljudavdelningen)
https://www.mediamarkt.se/?productID=134 (för att kolla till en kamera)
https://www.mediamarkt.se/?pageID=9 (för att komma till kontaktsidan)

Det verkar vara en enkelt sätt att bygga upp sidan på. Men hur för man för att inte behöva ange någon sida (/index.php?id=1 alltså).

Medlem sedan juli 2002171 inlägg
#2

Om jag inte minns fel, var som sagt många år sedan jag höll på med php. Hursomhelst jag har för mig att /?blah=bah fulla adress är /default.php?blah=bah. Man behöver inte ange det.

Medlem sedan maj 20007 492 inlägg
#3

Web-Tor skrev:

Jag funderar lite på hur jag skall bygga upp en sidan som jag jobbar med för tillfället. Jag tittade på https://www.mediamarkt.se och såg hur dom gjort.

T.ex:
https://www.mediamarkt.se/?categoryID=1 (för att komma till ljudavdelningen)
https://www.mediamarkt.se/?productID=134 (för att kolla till en kamera)
https://www.mediamarkt.se/?pageID=9 (för att komma till kontaktsidan)

Det verkar vara en enkelt sätt att bygga upp sidan på. Men hur för man för att inte behöva ange någon sida (/index.php?id=1 alltså).

Jag kan kolla upp imorgon hur vi gjorde på den sidan.

Medlem sedan nov. 200013 890 inlägg
#4

Ja, så enkelt var det! (fast jag använder index.php)

Jag funderar på om det är en bra sätt att bygga upp sin sida på? Det betyder ju att all trafik kommer till samma sida.

Medlem sedan dec. 20025 871 inlägg
#5

Strängarna skickas till den sida som anropas när man går in på https://www.mediamarkt.se, så det behöver inte nödvändigtvis vara default.php - beror alltså på vilken som är standardsidan.

r\ Lite sen. :r

Medlem sedan feb. 200112 078 inlägg
#6

Jag vet inte hur man specifikt gör i PHP, men hade jag gjort det på Windows hade det nog blivit 1) ett ISAPI-filter i IIS som fångar HTTP-requests och processar dem eller 2) en 404-sida som hanterar anropen och skickar vidare till "rätt" sidor, beroende lite på vilken plattform man har.

Medlem sedan mars 20007 896 inlägg
#7

Du skulle ju kunna bygga upp det:

domän.se/category/?id=4
domän.se/product/?id=219
domän.se/page/?id=6

Alternativt (ännu bättre, tycker jag):

domän.se/category/4/
domän.se/product/219/
domän.se/page/6/

Omskrivningsreglerna sköter du sedan i Apache, närmare bestämt med filen .htaccess.
Då kan du, om du vill, ha ett dokument som processar allt, eller lägga ut det över ett par dokument - category.php, product.php och page.php.

Medlem sedan nov. 200013 890 inlägg
#8

Någon som vet hur prestandan på webbplatsen påverkas om man bara har ett dokument (med olika includes beroende på sidval) eller flera dokument?

Medlem sedan juni 20008 205 inlägg
#9

Kan inte se att det skulle bli någon större skillnad, förutom att man måste lista ut vad det är man ska visa. Skulle gissa att index.php någonstans har en mappning som säger nåt i stil med "om categoryID har ett värde, visa den kategorin; annars, om productID har ett värde, visa produktinfo; annars, om pageID har ett värde, visa specialsida; etc".

Det blir väl en viss extrakostnad när man listar ut vad som ska synas, men mest i form av några få extra CPU-cykler vilket jag misstänker att de flesta webbservrar har råd med. Tycker man att man får en bättre systemdesign av att göra på det här viset, kör på. Själv tycker jag det tenderar att bli bökigare med att göra en massa if-satser och drösar med includes, men det är bara jag, och det kanske finns något smidigt sätt att fixa med ett ramverk.

Medlem sedan mars 20007 896 inlägg
#10

Som vanligt så har spango helt rätt i det han säger, ett ramverk skulle vara att föredra - som t.ex. Zend Framework.

Så länge det enbart handlar om att läsa information från filer och databas så kommer prestandan inte att försämras. Om du däremot skriver till filer eller gör insert's till databasen kan det i så fall påverka negativt.

Medlem sedan apr. 2006409 inlägg
#11

När jag körde med en index.php som fick ta hand om all trafik sökte jag igenom filsystemet för att avgöra vilka url som skulle resultera i någon aktivitet. Fel url ---> till startsidan. På så vis blir administratören fri att lägga upp nya undersidor, samt man kan lägga in skydd emot elaka saker url - $_GET['elak_sträng'].

Själv har jag aldrig funderat så mycket på prestandaskillnader, mcv vs en fil. Jag tror att sidans innehåll och laddningstider alltjämt avgör hur sega sidor blir.

Medlem sedan nov. 200013 890 inlägg
#12

spango skrev:

Skulle gissa att index.php någonstans har en mappning som säger nåt i stil med "om categoryID har ett värde, visa den kategorin; annars, om productID har ett värde, visa produktinfo; annars, om pageID har ett värde, visa specialsida; etc".

Jag testade att göra precis så och det blev ganska smidigt tycker jag. Tre stycken if/else-satser och man vet vilken information man skall visa. :)

SPiN skrev:

Så länge det enbart handlar om att läsa information från filer och databas så kommer prestandan inte att försämras. Om du däremot skriver till filer eller gör insert's till databasen kan det i så fall påverka negativt.

Då tror jag att det är lugnt. Vad jag kan se så kommer jag bara att ha en enda INSERT på hela sidan och det är när köpet gått igenom (och lagras i databasen). All annan aktivitet lagras i sessioner.

268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)