← Blog'a Don
PHP Dersleri

PHP ile Checkbox Kullanımı: Form Verilerini İşlemenin Pratik Yolu

5 ay once 5 ay once #110
PHP ile Checkbox Kullanımı: Form Verilerini İşlemenin Pratik Yolu

☑️ PHP ile Checkbox Kullanımı: Form Verilerini İşlemenin Pratik Yolu

Kullanıcıdan bir veya birden fazla seçim almak istiyorsan, checkbox (onay kutusu) en uygun HTML form elemanıdır.
PHP ise bu seçimleri kolayca alıp işleyebilmeni sağlar.

Bu yazıda, PHP ile checkbox kullanımı, tekli ve çoklu checkbox örnekleri, seçili değerleri kontrol etme ve veritabanına kaydetme mantığı adım adım anlatılmaktadır. 🚀


🔹 1. Checkbox Nedir?

Checkbox, bir formda kullanıcının birden fazla seçimi işaretlemesine olanak tanır.

HTML örneği:

<form method="post"> <input type="checkbox" name="renkler[]" value="Kırmızı"> Kırmızı<br> <input type="checkbox" name="renkler[]" value="Mavi"> Mavi<br> <input type="checkbox" name="renkler[]" value="Yeşil"> Yeşil<br> <button type="submit">Gönder</button> </form>

Bu form gönderildiğinde, seçilen renkler PHP tarafına $_POST["renkler"] dizisi olarak gelir.


🔸 2. PHP ile Checkbox Verilerini Alma

Örnek:

<?php if (isset($_POST['renkler'])) { $secilenRenkler = $_POST['renkler']; echo "Seçtiğiniz renkler:<br>"; foreach ($secilenRenkler as $renk) { echo "- " . htmlspecialchars($renk) . "<br>"; } } else { echo "Hiçbir renk seçmediniz."; } ?>

Çalışma mantığı:

  • Kullanıcı bir veya birden fazla kutuyu işaretler.

  • PHP, $_POST['renkler'] dizisi içinde bu değerleri alır.

  • Döngüyle seçilen değerleri ekrana yazdırabiliriz.


🧩 3. Tekli Checkbox Kullanımı

Bazen kullanıcıdan tek bir onay almak isteriz (örneğin “Kuralları kabul ediyorum” kutusu gibi).

Örnek:

<form method="post"> <label> <input type="checkbox" name="onay" value="1"> Kullanım koşullarını kabul ediyorum </label><br> <button type="submit">Gönder</button> </form>

PHP Kodu:

<?php if (isset($_POST['onay'])) { echo "Teşekkürler, koşulları kabul ettiniz!"; } else { echo "Lütfen kullanım koşullarını kabul edin."; } ?>

💡 isset() fonksiyonu, checkbox işaretlenmediyse false döner.
Bu yüzden kontrol yaparken mutlaka isset() veya !empty() kullanılmalıdır.


🔹 4. Checkbox ile Çoklu Seçim Örneği

Aşağıdaki örnekte kullanıcı birden fazla hobisini seçebilir.

<form method="post"> <h3>Hobilerinizi seçin:</h3> <input type="checkbox" name="hobiler[]" value="Müzik"> Müzik<br> <input type="checkbox" name="hobiler[]" value="Spor"> Spor<br> <input type="checkbox" name="hobiler[]" value="Kitap Okuma"> Kitap Okuma<br> <input type="checkbox" name="hobiler[]" value="Seyahat"> Seyahat<br> <button type="submit">Kaydet</button> </form>

PHP tarafı:

<?php if (!empty($_POST['hobiler'])) { echo "<strong>Seçilen hobiler:</strong><br>"; foreach ($_POST['hobiler'] as $hobi) { echo "- " . htmlspecialchars($hobi) . "<br>"; } } else { echo "Herhangi bir hobi seçilmedi."; } ?>

Çıktı örneği:

Seçilen hobiler: - Müzik - Seyahat

🔸 5. Varsayılan Olarak Seçili Checkbox

Bazı durumlarda sayfa yüklendiğinde belirli kutular önceden seçili olabilir.

<input type="checkbox" name="renkler[]" value="Kırmızı" checked> Kırmızı<br> <input type="checkbox" name="renkler[]" value="Mavi"> Mavi<br> <input type="checkbox" name="renkler[]" value="Yeşil" checked> Yeşil<br>

checked özelliği, checkbox’ın başlangıçta işaretli olmasını sağlar.


⚙️ 6. Seçimleri Form Yenilendiğinde Korumak

Bir formu gönderdiğinde seçilen kutuların işaretli kalmasını isteyebilirsin.
Bu durumda PHP içinde checked niteliğini dinamik olarak ekleyebilirsin.

<?php $secilenler = $_POST['renkler'] ?? []; ?> <form method="post"> <input type="checkbox" name="renkler[]" value="Kırmızı" <?= in_array("Kırmızı", $secilenler) ? "checked" : "" ?>> Kırmızı<br> <input type="checkbox" name="renkler[]" value="Mavi" <?= in_array("Mavi", $secilenler) ? "checked" : "" ?>> Mavi<br> <input type="checkbox" name="renkler[]" value="Yeşil" <?= in_array("Yeşil", $secilenler) ? "checked" : "" ?>> Yeşil<br> <button type="submit">Gönder</button> </form>

💡 Bu teknik, formu gönderip hata alındığında kullanıcı seçimlerinin kaybolmamasını sağlar.


💾 7. Checkbox Verilerini Veritabanına Kaydetme (Basit Mantık)

Seçilen veriler bir dizide geldiği için, veritabanına kaydetmeden önce bu diziyi birleştirebilir (implode) veya JSON’a dönüştürebilirsin.

Örnek:

<?php if (isset($_POST['hobiler'])) { $hobiler = implode(", ", $_POST['hobiler']); // Veritabanına kaydetme (örnek PDO kullanımı) $db = new PDO("mysql:host=localhost;dbname=deneme", "root", ""); $sorgu = $db->prepare("INSERT INTO kullanicilar (hobiler) VALUES (?)"); $sorgu->execute([$hobiler]); echo "Hobiler başarıyla kaydedildi: $hobiler"; } ?>

Veritabanında saklanan veri:

Müzik, Spor, Seyahat

🧠 8. Checkbox Kullanırken Dikkat Edilmesi Gerekenler

✅ Checkbox işaretlenmezse POST verisi gönderilmez.
isset() veya !empty() kontrolleri mutlaka yapılmalıdır.
✅ Değerleri yazdırmadan önce htmlspecialchars() kullanarak XSS saldırılarına karşı koruma sağla.
✅ Eğer veritabanına kaydedilecekse, veri doğrulama ve filtreleme ekle.


🏁 Sonuç

PHP ile checkbox kullanımı, formlardan çoklu veri almanın en kolay yollarından biridir.
İster kullanıcı tercihlerini kaydet, ister bir kayıt formu oluştur — checkbox yapısı esnek ve kullanışlıdır.

Özetle:

  • ☑️ Tekli seçim için name="onay"

  • ☑️ Çoklu seçim için name="renkler[]"

  • 🧠 PHP tarafında $_POST dizisiyle verileri al

Checkbox’lar sayesinde kullanıcıya daha interaktif ve kişisel bir deneyim sunabilirsin. 🎨