Form verisini işleme
POST ile gönderilen form verisini $_POST üzerinden almayı öğrenirsin.
$_POST ile veri almak
Form method="post" ile gönderildiğinde PHP alanları $_POST süper globalinde toplar. name="email" alanı PHP tarafında $_POST['email'] olarak görünür. Formun gönderilip gönderilmediğini anlamak için submit düğmesinin adına ya da $_SERVER['REQUEST_METHOD'] değerine bakılır.
Örnek: if ($_SERVER['REQUEST_METHOD'] === 'POST') { $name = $_POST['name'] ?? ''; echo "Merhaba " . $name; }. ?? ile eksik anahtara boş dize verirsin; böylece form gönderilmeden sayfa açıldığında hata alınmaz.
Gönderimi denetleme
Bir form sayfası hem formu gösterir hem de gönderildiğinde veriyi işler. Formun gönderildiğini anlamak için iki yaygın yöntem vardır: submit düğmesinin adını isset() ile kontrol etmek ya da $_SERVER['REQUEST_METHOD'] değerine bakmak.
İkinci yöntem daha sağlamdır: if ($_SERVER['REQUEST_METHOD'] === 'POST') { ... }. Bu koşul true iken formdan gelen veriyi okur, aksi halde yalnızca formu gösterirsin. CLI test ederken $_SERVER['REQUEST_METHOD'] = 'POST'; ile bu değeri elle verebilirsin.
Uygulama $_POST ile form verisini al ve yazdır
$_SERVER['REQUEST_METHOD'] = "POST"; ata. $_POST['name'] = "Ayşe"; ata. if ($_SERVER['REQUEST_METHOD'] === "POST") koşulu içinde echo "Merhaba, " . $_POST['name'] . "!"; yaz.
Örnek çözümü göster
Önce $_SERVER['REQUEST_METHOD'] = "POST"; ve $_POST['name'] = "Ayşe"; yaz. Sonra if ($_SERVER['REQUEST_METHOD'] === "POST") { echo "Merhaba, " . $_POST['name'] . "!"; } ekle.
Örnek çözüm:
<?php
// $_POST ile form verisini al ve yazdır
$_SERVER['REQUEST_METHOD'] = "POST";
$_POST['name'] = "Ayşe";
if ($_SERVER['REQUEST_METHOD'] === "POST") {
echo "Merhaba, " . $_POST['name'] . "!";
}
Kendini test et
-
$_POST'tan name alanını al
$name = ____['name'] ?? "";Cevabı göster
$name = $_POST['name'] ?? ""; -
Formun gönderildiğini en sağlam şekilde nasıl anlarsın?
- $_POST boş mu diye bakarım
- isset($_POST['submit']) kullanırım
- $_SERVER['REQUEST_METHOD'] === 'POST' kontrol ederim
- empty($_POST) ile bakarım
Cevabı göster
$_SERVER['REQUEST_METHOD'] === 'POST' kontrol ederim — Doğru. REQUEST_METHOD denetimi submit düğmesinin adına bağlı kalmaz, en sağlam yöntemdir.
-
Form işleme kavramlarını eşle
- method="post"
- Veri gövdede taşınır
- $_POST['name']
- name alanının değeri
- REQUEST_METHOD
- İstek yöntemi
- ?? ''
- Eksik anahtar varsayılanı