CodeBlanks Logo Icon CodeBlanks

Form verisini işleme

PHP kursu · Başlangıç · Ders 101/116

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

  1. $_POST'tan name alanını al

    $name = ____['name'] ?? "";
    Cevabı göster
    $name = $_POST['name'] ?? "";
  2. 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.

  3. 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ı

Başlangıç bölümündeki tüm dersler