GET kontra POST: Når bør du bruke hva
Forstå forskjellen mellom HTTP GET og POST i PHP.
GET kontra POST: Når bør du bruke hva er en gratis leksjon i PHP Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i PHP Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i PHP Academy inneholder totalt 4 leksjoner.
HTTP-metoder i PHP for web
Når en nettleser sender inn et HTML-skjema, bruker den enten GET- eller POST-metoden i HTTP. PHP henter de innsendte dataene via superglobale variabler:
$_GET— data lagt til i URL-en$_POST— data i forespørselens innhold
GET-metoden
GET legger til skjemadata som parametere i en spørringsstreng i URL-en:
<!-- HTML form -->
<form method="GET" action="search.php">
<input name="query" type="text">
<button type="submit">Search</button>
</form>
<!-- URL becomes: search.php?query=php+tutorial -->
<?php
$q = $_GET['query'] ?? '';
echo 'You searched for: ' . htmlspecialchars($q);POST-metoden
POST sender data i innholdet i HTTP-forespørselen — de vises ikke i URL-en:
<!-- HTML form -->
<form method="POST" action="login.php">
<input name="email" type="email">
<input name="password" type="password">
<button type="submit">Log In</button>
</form>
<?php
$email = $_POST['email'] ?? '';
$password = $_POST['password'] ?? '';Når De bør bruke GET
Bruk GET når:
- Forespørselen er idempotent (uten bivirkninger)
- Dataene kan vises i URL-en — søk, filtre og paginering
- De ønsker URL-er som kan bokmerkes eller deles
- Dataene ikke er sensitive
Når De bør bruke POST
Bruk POST når:
- Forespørselen endrer tilstanden på serveren (oppretter, oppdaterer eller sletter)
- Dataene er sensitive (passord eller personopplysninger)
- De sender store datamengder (filer eller lang tekst)
- De ikke ønsker at nettlesere eller proxyer skal hurtigbufre dataene
Lengdebegrensninger for GET
GET-forespørsler har begrensninger på URL-lengden (vanligvis rundt 2000 tegn i praksis). POST har ingen praktisk begrensning, bortsett fra serverkonfigurasjonen:
<?php
// php.ini settings for POST limits:
// post_max_size = 8M (total POST body size)
// upload_max_filesize = 2M
// Check current limits at runtime:
echo ini_get('post_max_size'); // 8M
echo ini_get('upload_max_filesize'); // 2M$_REQUEST-superglobalen
$_REQUEST slår sammen $_GET, $_POST og $_COOKIE. Dette er praktisk, men gjør datakilden mindre tydelig:
<?php
// Works for both GET and POST but is ambiguous
$name = $_REQUEST['name'] ?? '';
// Better: be explicit about the expected method
$name = match($_SERVER['REQUEST_METHOD']) {
'GET' => $_GET['name'] ?? '',
'POST' => $_POST['name'] ?? '',
default => '',
};Kontrollere forespørselsmetoden
Kontroller alltid forespørselsmetoden før De behandler skjemadata:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = trim($_POST['name'] ?? '');
if (!empty($name)) {
echo 'Hello, ' . htmlspecialchars($name);
}
} else {
// Show empty form
}HTTPS og datasikkerhet
Selv med POST er dataene synlige i klartekst med mindre De bruker HTTPS. Viktige sikkerhetsregler:
- Bruk alltid HTTPS i produksjon
- Send aldri passord via GET
- POST over HTTP er fortsatt usikkert — HTTPS krypterer også innholdet
Omdirigering etter POST (PRG-mønsteret)
Etter en vellykket POST bør De omdirigere til en GET-forespørsel for å forhindre doble innsendinger ved oppdatering:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Process the form...
$id = saveToDatabase($_POST);
// Post-Redirect-Get (PRG) pattern
header('Location: /success.php?id=' . $id);
exit;
}Multipart-skjemaer for filopplasting
For å laste opp filer må skjemaet bruke enctype="multipart/form-data" sammen med POST:
<!-- Required for file uploads -->
<form method="POST" action="upload.php"
enctype="multipart/form-data">
<input type="file" name="avatar">
<button type="submit">Upload</button>
</form>
<?php
$file = $_FILES['avatar'];
echo $file['name']; // original filenameRask kontroll
Hvilken HTTP-metode bør De bruke når De sender inn et innloggingsskjema med brukernavn og passord?
Oppsummering: GET vs POST
Viktige forskjeller:
- GET — i URL-en, kan bokmerkes, ingen bivirkninger, begrenset størrelse
- POST — i innholdet, sensitive data, ingen URL-begrensning
- Bruk alltid HTTPS for å beskytte både GET- og POST-data
- Kontroller
$_SERVER['REQUEST_METHOD']før behandling - Bruk PRG-mønsteret for å forhindre doble POST-innsendinger
Lær deg PHP med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 49
- Leksjoner
- 195
Ofte stilte spørsmål
Er leksjonen «GET kontra POST: Når bør du bruke hva» gratis?
Ja – hele teksten i «GET kontra POST: Når bør du bruke hva» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av PHP Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i PHP Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «GET kontra POST: Når bør du bruke hva»?
Forstå forskjellen mellom HTTP GET og POST i PHP. Du øver på PHP Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med PHP Academy?
Ingen tidligere erfaring er nødvendig. PHP Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «GET kontra POST: Når bør du bruke hva»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne PHP Academy-leksjonen?
Ja. Alle PHP Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- GET kontra POST: Når bør du bruke hva
- Lese skjemadata med superglobale variabler
- Teknikker for validering av inndata
- Sanering av brukerinndata