Php 8 Form Nedir?

Php 8 Form Nedir?

PHP 8'de formlar, kullanıcıdan veri alıp bu veriyi sunucuya göndermeyi sağlayan bir HTML yapısıdır. PHP ile birlikte kullanıldığında, bu veriler işlenip çeşitli işlemler yapılabilir, örneğin veritabanına kaydedilebilir ya da ekrana geri döndürülebilir. PHP, form verilerini almak ve işlemek için güçlü fonksiyonlar sunar.

1. HTML Form Yapısı

Formlar genellikle bir HTML sayfasında tanımlanır ve kullanıcının giriş yapabileceği çeşitli bileşenleri (input, select, radio button vb.) içerir. Formlar iki temel yöntemle veri gönderebilir:

  • GET: URL üzerinden veri gönderir.
  • POST: Verileri gizli bir şekilde (URL'de görünmeden) gönderir.

Örnek HTML Formu:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Basit Form</title> </head> <body> <form action="process.php" method="post"> <label for="name">İsim:</label> <input type="text" id="name" name="name" required> <br> <br> <label for="email">E-posta:</label> <input type="email" id="email" name="email" required> <br> <br> <input type="submit" value="Gönder"> </form> </body> </html>

2. Form Verilerini PHP ile İşlemek

PHP'de form verilerini işlemek için genellikle $_GET ya da $_POST süper global dizileri kullanılır. Bu diziler, form aracılığıyla gönderilen verileri tutar.

POST Yöntemi ile Form Verisini Alma:

Form verilerinin POST yöntemiyle gönderildiği örnek üzerinden devam edelim. Formda kullanıcıdan aldığı veriyi process.php dosyasında şu şekilde işleyebilirsiniz:

<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { // Form verilerini almak $name = $_POST['name']; $email = $_POST['email']; // Verileri işleme (örneğin, ekrana yazdırma) echo "İsim: " . htmlspecialchars($name) . "<br>"; echo "E-posta: " . htmlspecialchars($email); } ?>
  • $_POST : Form verilerini alırken kullanılır ve POST yöntemiyle gönderilen tüm verileri içerir.
  • htmlspecialchars() : Kullanıcı tarafından girilen verileri güvenli hale getirmek için kullanılır. Bu, XSS (Cross Site Scripting) saldırılarına karşı bir önlemdir.

3. Form Doğrulama (Validation)

Formlar aracılığıyla alınan verilerin doğru ve güvenli olduğundan emin olmak önemlidir. Form doğrulaması genellikle hem istemci (JavaScript) hem de sunucu (PHP) tarafında yapılır.

PHP ile Temel Doğrulama:

<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = trim($_POST['name']); $email = trim($_POST['email']); // Basit doğrulamalar if (empty($name)) { echo "İsim boş bırakılamaz.<br>"; } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "Geçersiz e-posta adresi.<br>"; } // Doğruysa işlemi gerçekleştirin if (!empty($name) && filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "İsim: " . htmlspecialchars($name) . "<br>"; echo "E-posta: " . htmlspecialchars($email); } } ?>
  • empty() : Verinin boş olup olmadığını kontrol eder.
  • filter_var() : E-posta gibi verilerin belirli bir formata uygun olup olmadığını doğrulamak için kullanılır.

4. GET ve POST Arasındaki Fark

  • GET Yöntemi: Verileri URL üzerinden gönderir ve bu veriler URL’de görünür. Genellikle daha basit sorgular ve linkle paylaşılabilir veriler için kullanılır.

    <form action="process.php" method="get"> <input type="text" name="name"> <input type="submit" value="Gönder"> </form>

    Veriler URL’de şu şekilde görünür:

    http://example.com/process.php?name=John
  • POST Yöntemi: Verileri daha güvenli bir şekilde, URL’de görünmeden sunucuya gönderir. Özellikle şifreler veya hassas bilgiler için önerilir.

5. Form ile Dosya Yükleme

PHP ile form aracılığıyla dosya yüklemek de mümkündür. Bunun için enctype="multipart/form-data" özelliği kullanılır.

HTML Dosya Yükleme Formu:

<form action="upload.php" method="post" enctype="multipart/form-data"> <label for="file">Dosya Seç:</label> <input type="file" name="file" id="file"> <br> <br> <input type="submit" value="Yükle"> </form>

PHP ile Dosya Yükleme İşlemi:

<?php if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES['file'])) { $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["file"]["name"]); if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { echo "Dosya başarıyla yüklendi: " . htmlspecialchars(basename($_FILES["file"]["name"])); } else { echo "Dosya yüklenirken bir hata oluştu."; } } ?>

6. Güvenlik İpuçları

Form işlemlerinde güvenliğe dikkat etmek çok önemlidir:

  • XSS (Cross-Site Scripting) Koruması: Kullanıcılardan gelen veri HTML’ye doğrudan yazılmamalı. Bunun yerine htmlspecialchars() gibi fonksiyonlarla veriler temizlenmelidir.

  • CSRF (Cross-Site Request Forgery) Koruması: Formlarda CSRF tokenları kullanarak yetkisiz işlemleri önleyebilirsiniz.

  • SQL Injection'dan Korunma: Veritabanı işlemlerinde kullanıcılardan gelen veriler direkt olarak sorgulara eklenmemeli, bunun yerine prepared statements kullanılmalıdır.

7. Sonuç

PHP 8'de formlar, kullanıcı verisini alıp işlemek için kullanılan güçlü araçlardır. Form doğrulama, güvenlik önlemleri ve farklı veri gönderme yöntemleri ile birleştiğinde dinamik ve güvenli web uygulamaları geliştirmek mümkündür. Formlar, PHP'nin temel yapı taşlarından biri olup, web geliştiricileri için önemli bir konudur.



Yorum Ekle

Üzerine gel