GET kontra POST: när ska de användas
Förstå skillnaden mellan HTTP GET och POST i PHP.
GET kontra POST: när ska de användas är en gratis lektion i PHP Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för PHP Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i PHP Academy innehåller totalt 4 lektioner.
HTTP-metoder i PHP för webben
När en webbläsare skickar ett HTML-formulär använder den antingen GET- eller POST-metoden i HTTP. PHP fångar de skickade uppgifterna via superglobala variabler:
$_GET— data som läggs till i URL:en$_POST— data i begärans brödtext
GET-metoden
GET lägger till formulärdata som parametrar i URL:ens frågesträng:
<!-- 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 skickar data i HTTP-begärans brödtext — den syns inte 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 GET ska användas
Använd GET när:
- Begäran är idempotent (saknar sidoeffekter)
- Data kan visas i URL:en — sökfrågor, filter och sidnumrering
- Ni vill ha URL:er som kan bokmärkas eller delas
- Data inte är känsliga
När POST ska användas
Använd POST när:
- Begäran ändrar serverns tillstånd (skapar, uppdaterar eller tar bort)
- Data är känsliga (lösenord, personuppgifter)
- Ni skickar stora mängder data (filer, lång text)
- Ni inte vill att webbläsare eller proxyservrar cachar data
Längdbegränsningar för GET
GET-begäranden har begränsningar för URL:ens längd (vanligtvis cirka 2 000 tecken i praktiken). POST har ingen praktisk gräns förutom serverkonfigurationen:
<?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'); // 2MSuperglobalen $_REQUEST
$_REQUEST sammanfogar $_GET, $_POST och $_COOKIE. Det är bekvämt, men gör datakällan mindre tydlig:
<?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 => '',
};Kontrollera begärans metod
Kontrollera alltid begärans metod innan formulärdata bearbetas:
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = trim($_POST['name'] ?? '');
if (!empty($name)) {
echo 'Hello, ' . htmlspecialchars($name);
}
} else {
// Show empty form
}HTTPS och datasäkerhet
Även med POST visas data i klartext om ni inte använder HTTPS. Viktiga säkerhetsregler:
- Använd alltid HTTPS i produktion
- Skicka aldrig lösenord via GET
- POST över HTTP är fortfarande osäkert — HTTPS krypterar även brödtexten
Omdirigera efter POST (PRG-mönstret)
Efter en lyckad POST-begäran omdirigerar ni till en GET-begäran för att förhindra dubbla inskickningar vid uppdatering:
<?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-formulär för filuppladdningar
För att ladda upp filer måste formuläret använda enctype="multipart/form-data" tillsammans 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 filenameSnabbkontroll
Vilken HTTP-metod bör ni använda när ni skickar in ett inloggningsformulär med användarnamn och lösenord?
Sammanfattning: GET kontra POST
Viktiga skillnader:
- GET — i URL:en, kan bokmärkas, inga sidoeffekter, begränsad storlek
- POST — i brödtexten, känsliga data, ingen URL-begränsning
- Använd alltid HTTPS för att skydda både GET- och POST-data
- Kontrollera
$_SERVER['REQUEST_METHOD']innan bearbetning - Använd PRG-mönstret för att förhindra dubbla POST-inskickningar
Lär dig PHP med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 49
- Lektioner
- 195
Vanliga frågor
Är lektionen ”GET kontra POST: när ska de användas” gratis?
Ja – hela texten till ”GET kontra POST: när ska de användas” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i PHP Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i PHP Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”GET kontra POST: när ska de användas”?
Förstå skillnaden mellan HTTP GET och POST i PHP. Ni övar på PHP Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig PHP Academy?
Du behöver inga förkunskaper. Utbildningen i PHP Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”GET kontra POST: när ska de användas”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här PHP Academy-lektionen?
Ja. Varje PHP Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- GET kontra POST: när ska de användas
- Läsa formulärdata med superglobala variabler
- Tekniker för indata-validering
- Rensa användarinmatning