0Pricing
PHP Academy · Ders

GET ve POST: Hangisi Ne Zaman Kullanılmalı

PHP'de HTTP GET ile POST arasındaki farkı anlayın.

GET ve POST: Hangisi Ne Zaman Kullanılmalı, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.

Web PHP'de HTTP Yöntemleri

Bir tarayıcı HTML formu gönderdiğinde GET veya POST HTTP yöntemlerinden birini kullanır. PHP, gönderilen verileri süper küresel değişkenler aracılığıyla yakalar:

  • $_GET — URL'ye eklenen veriler
  • $_POST — istek gövdesindeki veriler

GET Yöntemi

GET, form verilerini URL'ye sorgu dizesi parametreleri olarak ekler:

<!-- 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 Yöntemi

POST, verileri HTTP istek gövdesinde gönderir; bu veriler URL'de görünmez:

<!-- 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'] ?? '';

GET Ne Zaman Kullanılır

Şu durumlarda GET kullanın:

  • İstek, sonucu tekrarlanmasıyla değişmeyen bir işlemdir (yan etkisi yoktur)
  • Veriler URL'de görünebilir; örneğin arama sorguları, süzgeçler ve sayfalandırma
  • Yer imi eklenebilen veya paylaşılabilen URL'ler istiyorsanız
  • Veriler hassas değilse

POST Ne Zaman Kullanılır

Şu durumlarda POST kullanın:

  • İstek sunucu durumunu değiştiriyorsa (oluşturma, güncelleme, silme)
  • Veriler hassassa (parolalar, kişisel bilgiler)
  • Büyük miktarda veri gönderiyorsanız (dosyalar, uzun metin)
  • Verilerin tarayıcılar veya ara sunucular tarafından önbelleğe alınmasını istemiyorsanız

GET Uzunluk Sınırları

GET isteklerinin URL uzunluğu sınırları vardır (uygulamada genellikle yaklaşık 2000 karakter). POST için sunucu yapılandırması dışında pratik bir sınır yoktur:

<?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 Süper Küresel Değişkeni

$_REQUEST, $_GET, $_POST ve $_COOKIE değerlerini birleştirir. Kullanışlıdır; ancak veri kaynağını daha belirsiz kılar:

<?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 => '',
};

İstek Yöntemini Denetleme

Form verilerini işlemeden önce istek yöntemini her zaman denetleyin:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = trim($_POST['name'] ?? '');
    if (!empty($name)) {
        echo 'Hello, ' . htmlspecialchars($name);
    }
} else {
    // Show empty form
}

HTTPS ve Veri Güvenliği

POST kullansanız bile HTTPS kullanmadığınız sürece veriler düz metin olarak görünür. Temel güvenlik kuralları:

  • Üretim ortamında her zaman HTTPS kullanın
  • Parolaları asla GET ile göndermeyin
  • HTTP üzerinden POST da güvenli değildir; HTTPS gövdeyi de şifreler

POST Sonrası Yönlendirme (PRG Deseni)

Başarılı bir POST işleminden sonra, sayfa yenilendiğinde gönderimin yinelenmesini önlemek için bir GET isteğine yönlendirin:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Process the form...
    $id = saveToDatabase($_POST);
    
    // Post-Redirect-Get (PRG) pattern
    header('Location: /success.php?id=' . $id);
    exit;
}

Dosya Yüklemeleri için Çok Parçalı Formlar

Dosya yüklemek için form, POST ile birlikte enctype="multipart/form-data" kullanmalıdır:

<!-- 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 filename

Hızlı Kontrol

Kullanıcı adı ve parola içeren bir giriş formunu gönderirken hangi HTTP yöntemini kullanmalısınız?

Özet: GET ve POST Karşılaştırması

Temel farklar:

  • GET — URL'de, yer imi eklenebilir, yan etkisiz, boyutu sınırlı
  • POST — gövdede, hassas veriler için, URL sınırı yok
  • Hem GET hem de POST verilerini korumak için her zaman HTTPS kullanın
  • İşlemeden önce $_SERVER['REQUEST_METHOD'] değerini denetleyin
  • Yinelenen POST gönderimlerini önlemek için PRG desenini uygulayın

Sıkça Sorulan Sorular

“GET ve POST: Hangisi Ne Zaman Kullanılmalı” dersi ücretsiz mi?

Evet — “GET ve POST: Hangisi Ne Zaman Kullanılmalı” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.

“GET ve POST: Hangisi Ne Zaman Kullanılmalı” dersinde ne öğreneceğim?

PHP'de HTTP GET ile POST arasındaki farkı anlayın. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

PHP Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“GET ve POST: Hangisi Ne Zaman Kullanılmalı” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. GET ve POST: Hangisi Ne Zaman Kullanılmalı
  2. Süper Küresellerle Form Verilerini Okuma
  3. Girdi Doğrulama Teknikleri
  4. Kullanıcı Girdisini Temizleme
← PHP Academy Sayfasına Dön