GET vs POST

Tags:    php

<< < 12 > >>
Når jeg sender data med PHP. Hvornår skal jeg så bruge GET som method, og hvornår skal jeg bruge POST.

Jeg har hørt at der er et mindre limit for hvor meget man kan sende med GET en med POST.

Hvorfor så ikke bare altid bruge POST?



11 svar postet i denne tråd vises herunder
6 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Google bruger for eksempel GET i sin søgeformular.

Det er logisk, fordi man så kan søge direkte i urlen, eller give et direkte link til en side med søgeresultater. Eksempel:
http://www.google.dk/search?q=Queen

Et eksempel på hvorfor det nogle gange er mere hensigtsmæssigt med GET.



Som Per skriver bruger google f.eks. Get til deres søgeformular, fordelen ved dette er at det giver brugerne mulighed for at bookmarke en sådan side, da formularfelternes værdi optræder i url adressen. Hvis du f.eks. angiver et link som index.php?id=2 tilgås denne id variabel også via $_GET. Det at get variablerne optræder i url adresse kan dog være en ulempe hvis der skal sendes hele tekster, da det er upraktisk at have i url adressen og da der også som du selv siger er en begrænsning for hvor meget der kan sendes via get.



Du skal bruge post når de sendte data skal behandles videre f.eks sendes videre til en db

get er fint til f.eks søgninger, men virker kun til ASCII og ikke mere end 1024 tegn



giver os mening hvis man oversætter det til dansk

POST "læg ind" "skriv ind"

GET "Få" "hent"

^^



Dvs. det du siger The-Freak er at GET også kan bruges til formularer - ren teoretisk? Kan forstå på dig at det praktisk er dumt!



@shaft, GET kan og bruges ofte til formularer... et eksempel er som nævnt google...
<form method="GET" action="..">
de to metods GET og POST er vidt forskellige måde at sende data og bruges til forskellige formål...



fx. så kan du bruge GET i fx. hvis folk skal se andres profiler,



Er POST ikke kun til at modtage data fra formularer, mens GET er til at modtage data fra selve adressen? Hvis det er sådan er det jo bare to vidt forskellige ting, som har vær sin egenskab.



Forskellen er hvor dataen placeres. POST(PUT, faktisk) placere sin data i en ekstra header i HTTP requestet. GET, derimod, bruger URL adressen.

POST er hensigtmæssigt at bruge, når man vil sende størrere mængder data, eller f.eks. vil sende data fra en formular til bruger-login.

GET ville man bruge til systemer, der ikke kræver store mængder data, og hvor denne data ikke er fortrolig, præcis som det er tilfældet med Google's søgning, eller Udvikleren.dk's visning af forumtråde(Thread.aspx/6/20833/ er bare en omskriving af en get-streng). Desuden kan en side med GET gemmes som et bogmærke.



Dvs. det du siger The-Freak er at GET også kan bruges til formularer - ren teoretisk? Kan forstå på dig at det praktisk er dumt!


Nej, det er ikke praktisk dumt. Hvis du skulle lave en formular som bad om at få indtastet et nummer, eller en søgning, så ville GET være mere hensigtmæssigt end POST. Hvis du derimod laver noget, hvor du sender rigmeligt store mængder data, f.eks. som vi gør det i ForumPost.aspx scriptet her på Udvikleren.dk, så ville POST være mere hensigtmæssigt end GET.

Det kommer helt an på konteksten.



<< < 12 > >>
t