webForumDet fria alternativet

POST vs GET

9 svar · 389 visningar · startad av westman

westmanMedlem sedan aug. 2004249 inlägg
#1

Har använt båda och har uppfattat dem som ungefärligt likasinnade. Kan ngn reda ut detta för mig och förklara dess olikheter samt fördelar & nackdelar.

westmanMedlem sedan aug. 2004249 inlägg
#2

jo just det ja, vad heter det.. tack :e

aasahMedlem sedan mars 20034 471 inlägg
#3

När du använder GET kommer värdet på variablerna att skickas med URL:n, fullt synliga. Om du använder POST syns inte de medskickade variablerna någonstans. Det innebär bl.a.:
* Om du vill att folk ska kunna direktlänka till resultatsidan (utan att fylla i formen) så MÅSTE du använda GET. (Tex användbart för sökresultat.)
* Om du INTE vill att man ska kunna hoppa över att fylla i formen, så bör du använda POST.
* Dock kan man råka ut för att personer med alldeles för mycket fritid lyckas ändra värdena i alla fall, dessutom kan det komma in skumma indata via formuläret, så de måste fortfarande kollas. Men man ändrar dem i alla fall inte lika enkelt och knappast av misstag.

Ska se om jag hittar en bra länk...

RED: Ja, Här har jag tidigare svarat på ung samma fråga. (För övrigt kan ev. hela den tråden vara intressant för dig att läsa.)

MatteMedlem sedan aug. 20002 975 inlägg
#4

Använder man method="get" skickas variabler med värden med i URL-en.
När man skickar som method="post", syns det inte i webbläsaren (skickas i headern).

När man skickar som GET finns det även en begränsning på hur lång URL-en kan vara, minns inte om det var c:a 2000 tecken eller c:a 4000 tecken (4048 ligger i bakhuvudet).

Vanligtvis skickar man ett formulär med method="post", om man inte av någon anledning vill att variablerna ska synas i URL-en/adressfältet.

Ett tillfälle då GET är väldigt lämpligt är när man har ett sökformulär.
Dels så går det att bokmärka eller länka till sökresultatet, dels är det lätt att göra en paging på sökresultatet.

Men att skicka t.ex. ett gästboksinlägg som method="get" är ingen höjdare. Användaren kan då bokmärka sidan efter man postat, och sedan hur många gånger som helst skicka samma inlägg genom att klicka sitt bokmärke gång på gång.
Naturligtvis finns det vägar att förhindra detta, men jag hoppas du förstår exemplet.

westman skrev:

jo just det ja, vad heter det..

Vad heter vad ?

westmanMedlem sedan aug. 2004249 inlägg
#5

Vad heter vad ?

mamma brukar ju säga så när man glömt tacka.. ;)

westmanMedlem sedan aug. 2004249 inlägg
#6

Men om jag har en sida som tex listar alla användare i en databas och sedan vill att man skall kunna klicka på önskad användare för att få info om denne. Då är väl GET att föredra, lr hur?

MatteMedlem sedan aug. 20002 975 inlägg
#7

westman skrev:

Men om jag har en sida som tex listar alla användare i en databas och sedan vill att man skall kunna klicka på önskad användare för att få info om denne. Då är väl GET att föredra, lr hur?

Tycker jag också.
Men i det fallet så är väl många gånger en länk lämpligare än ett formulär ?

Grundregel:
Ska det gå att bokmärka eller länka till sidan/resultatet med hjälp av variablerna, använd GET, annars använd POST.

westmanMedlem sedan aug. 2004249 inlägg
#8

Men i det fallet så är väl många gånger en länk lämpligare än ett formulär ?

Självfallet, jag riktar ju en länk till samma sida som länken befinner sig på. Sedan har jag en if-sats i början av sidan som hanterar det som länken "talat om" för sidan.

Förresten, kan ngn förklara för mig vilket sätt som är att föredra vad gäller denna if-sats, hur skall den se ut?

HansenMedlem sedan aug. 2000374 inlägg
#9

Matte skrev:

[...]När man skickar som GET finns det även en begränsning på hur lång URL-en kan vara, minns inte om det var c:a 2000 tecken eller c:a 4000 tecken (4048 ligger i bakhuvudet).

Standarden (RFC 2616), definierar inga gränser, olika tillverkare av browsers gör.

Internet Explorer har 2048 tecken som begränsning.

En generell tumregel brukar vara 1024 tecken, för att bibehålla kompatibilitet med browsers och proxyservrar.

MatteMedlem sedan aug. 20002 975 inlägg
#10

Om jag nu förstod dig rätt :)

Principskiss:

if (isset($_GET['id'])) {

   // Visa profil

} else {

   // Visa lista med länk typ:
   <a href="members.php?id=5">Användarnamn<a>
   // Länken byggs upp utifrån resultat av SQL-frågan

}
124 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)