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.
POST vs GET
9 svar · 389 visningar · startad av westman
jo just det ja, vad heter det.. tack :e
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.)
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 ?
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?
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.
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?
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.
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
}