irfo
Moderatör
- Katılım
- 7 Ocak 2026
- Mesajlar
- 290
- Tepkime puanı
- 2
- Puanları
- 18
İnternet üzerindeki her etkileşim bir veri alışverişidir. PHP'de bu alışverişi yöneten iki ana süper küresel (superglobal) değişken vardır: $_GET ve $_POST. Bu iki metot arasındaki farkı bilmek, hem uygulamanızın güvenliği hem de doğru çalışması için hayati önem taşır.
GET metodu, verileri URL üzerinden anahtar-değer çiftleri şeklinde gönderir. Genellikle sunucudan veri "almak" veya bir içeriği "filtrelemek" için kullanılır.
POST metodu, verileri HTTP isteğinin gövdesinde (body) gizli olarak gönderir. Genellikle sunucuya veri "eklemek", "güncellemek" veya "hassas bilgileri iletmek" için kullanılır.
[TR]
Özetle; eğer bir işlemi URL üzerinden paylaşmak istiyorsanız (bir arama sonucu veya makale sayfası gibi) GET kullanın. Eğer bir kullanıcı kaydı yapıyor, dosya yüklüyor veya şifre gibi hassas bir veri taşıyorsanız mutlaka POST kullanın. Doğru metot seçimi, projenizin hem işlevsel hem de güvenli olmasını sağlar.
1. GET Metodu (Veri İsteme)
GET metodu, verileri URL üzerinden anahtar-değer çiftleri şeklinde gönderir. Genellikle sunucudan veri "almak" veya bir içeriği "filtrelemek" için kullanılır.
[] Görünürlük: Veriler URL'de açıkça görünür (Örn: site.com/ara.php?kelime=php).
[] Kapasite: URL uzunluk sınırı nedeniyle (genelde 2048 karakter) sınırlı veri taşır.
[] Yer İmi (Bookmark): URL veriyi içerdiği için sayfalar yer imlerine eklenebilir ve paylaşılabilir.
[] Önbellekleme: Tarayıcılar tarafından önbelleğe alınır ve geçmişte saklanır.
PHP:
// URL: urun.php?id=45
$urun_id = $_GET['id'];
echo "Görüntülenen Ürün ID: " . $urun_id;
2. POST Metodu (Veri Gönderme)
POST metodu, verileri HTTP isteğinin gövdesinde (body) gizli olarak gönderir. Genellikle sunucuya veri "eklemek", "güncellemek" veya "hassas bilgileri iletmek" için kullanılır.
[] Görünürlük: Veriler URL'de görünmez, daha güvenlidir.
[] Kapasite: Veri sınırı yoktur (sunucu ayarlarına bağlı olarak MB'larca veri gönderilebilir).
[] Dosya Yükleme: Resim, video veya döküman göndermek için tek yoldur.
[] Güvenlik: URL'de görünmese de veriler şifrelenmiş değildir (HTTPS kullanımı şarttır).
PHP:
// Formdan gelen veriyi alma
$kullanici = $_POST['username'];
$sifre = $_POST['password'];
GET ve POST Karşılaştırma Tablosu
| Özellik | GET | POST | |||
|---|---|---|---|---|---|
| Veri Konumu | URL (Query String) | İstek Gövdesi (Body) | |||
| Güvenlik | Düşük (Şifreler için asla kullanmayın) | Yüksek (Hassas veriler için uygundur) | Veri Miktarı | Sınırlı (Maks. 2KB) | Sınırsız (Teorik olarak) |
| Kullanım Alanı | Arama, Sayfalama, Filtreleme | Kayıt Formu, Giriş, Dosya Yükleme |
[TR]
3. Güvenlik İpuçları
[] URL Manipülasyonu: GET ile gelen verilere asla güvenmeyin. Kullanıcı URL'deki id=45 kısmını id=99 yaparak yetkisi olmayan verilere erişmeye çalışabilir. Her zaman yetki kontrolü yapın.
[] XSS Koruması: Her iki metotla gelen veriyi de ekrana yazdırmadan önce htmlspecialchars() fonksiyonundan geçirin.- CSRF Saldırıları: POST formlarınızda mutlaka bir "Token" (güvenlik anahtarı) kullanarak dışarıdan gelen sahte isteklere karşı korunun.
Sonuç
Özetle; eğer bir işlemi URL üzerinden paylaşmak istiyorsanız (bir arama sonucu veya makale sayfası gibi) GET kullanın. Eğer bir kullanıcı kaydı yapıyor, dosya yüklüyor veya şifre gibi hassas bir veri taşıyorsanız mutlaka POST kullanın. Doğru metot seçimi, projenizin hem işlevsel hem de güvenli olmasını sağlar.