PHP 8 Php 8 Forms 2026 Güncel

Php 8 Uygulama: Register Formu

7 dk okuma süresi 557 görüntülenme 2024-09-18 4.9 (14 değerlendirme)

PHP 8'de kayıt formu (register formu), kullanıcıların siteye kayıt olabilmesi için gerekli bilgileri girmesini sağlayan ve bu bilgilerin sunucuda işlenerek veritabanına kaydedildiği bir formdur. Kayıt formunda genellikle kullanıcı adı, e-posta, şifre gibi bilgilerin girilmesi istenir. Bu bilgiler POST yöntemiyle sunucuya gönderilir ve PHP ile işlenir.

1. HTML Kayıt Formu Oluşturma

İlk olarak, HTML ile bir kayıt formu oluşturacağız. Kullanıcıdan gerekli bilgileri almak için bir form oluşturuyoruz.

HTML Kayıt Formu:

<!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <title>Kayıt Formu</title> </head> <body> <h1>Kayıt Ol</h1> <form action="register.php" method="post"> <label for="username">Kullanıcı Adı:</label> <input type="text" id="username" name="username" required> <br> <br> <label for="email">E-posta:</label> <input type="email" id="email" name="email" required> <br> <br> <label for="password">Şifre:</label> <input type="password" id="password" name="password" required> <br> <br> <label for="confirm_password">Şifre Tekrarı:</label> <input type="password" id="confirm_password" name="confirm_password" required> <br> <br> <input type="submit" value="Kayıt Ol"> </form> </body> </html>

Bu formda, kullanıcı adı, e-posta, şifre ve şifre tekrarı gibi alanlar bulunur. Kullanıcı formu doldurup gönderdiğinde veriler register.php dosyasına POST yöntemiyle iletilir.

2. PHP ile Kayıt Verilerini İşleme

Form verilerini almak ve işlemek için PHP'de bir dosyası oluşturacağız. Bu dosyada aşağıdaki işlemleri yapacağız:

  • Form verilerini kontrol etme (örneğin, şifrelerin eşleşip eşleşmediğini kontrol etme).
  • Kullanıcı bilgilerini veritabanına kaydetme.
  • Şifreyi güvenli bir şekilde hashleyerek saklama.

register.php:

<?php // Veritabanı bağlantısı (örnek MySQL bağlantısı) $host = 'localhost'; $dbname = 'test_db'; $username = 'root'; $password = ''; try { $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die("Veritabanı bağlantısı başarısız: " . $e->getMessage()); } if ($_SERVER["REQUEST_METHOD"] == "POST") { // Form verilerini al $username = htmlspecialchars(trim($_POST['username'])); $email = htmlspecialchars(trim($_POST['email'])); $password = trim($_POST['password']); $confirm_password = trim($_POST['confirm_password']); // Hata mesajları için dizi $errors = []; // Form doğrulama if (empty($username) || empty($email) || empty($password) || empty($confirm_password)) { $errors[] = "Tüm alanlar doldurulmalıdır."; } if ($password !== $confirm_password) { $errors[] = "Şifreler eşleşmiyor."; } // E-posta geçerli mi? if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errors[] = "Geçerli bir e-posta adresi giriniz."; } // Eğer hata yoksa veritabanına kaydet if (count($errors) == 0) { // Şifreyi güvenli bir şekilde hashleme $hashed_password = password_hash($password, PASSWORD_DEFAULT); // Veritabanına kayıt ekleme $sql = "INSERT INTO users (username, email, password) VALUES (:username, :email, :password)"; $stmt = $pdo->prepare($sql); // Verileri bağla ve sorguyu çalıştır if ($stmt->execute(['username' => $username, 'email' => $email, 'password' => $hashed_password])) { echo "Kayıt başarılı! Şimdi giriş yapabilirsiniz."; } else { echo "Bir hata oluştu, lütfen tekrar deneyin."; } } else { // Hataları ekrana yazdır foreach ($errors as $error) { echo "<p style='color:red;'>$error</p>"; } } } ?>

3. Kod Açıklaması

Veritabanı Bağlantısı

  • Veritabanına PDO (PHP Data Objects) ile bağlanıyoruz. Bu yöntem, SQL enjeksiyon saldırılarına karşı güvenli bir yapıdır.

Form Verilerini Alma

  • Formdaki tüm verileri $_POST ile alıyoruz ve htmlspecialchars() ve trim() fonksiyonlarıyla işleyerek güvenli hale getiriyoruz.

Form Doğrulama

  • Boş Alan Kontrolü: Eğer kullanıcı adı, e-posta veya şifre alanlarından biri boşsa bir hata mesajı gösteriyoruz.
  • Şifre Kontrolü: Girilen şifre ve şifre tekrarı eşleşmiyorsa bir hata mesajı gösteriyoruz.
  • E-posta Kontrolü: filter_var() ile kullanıcının girdiği e-postanın geçerli bir formatta olup olmadığını kontrol ediyoruz.

Şifre Hashleme

  • password_hash() fonksiyonunu kullanarak şifreyi hashliyoruz. Bu fonksiyon, güvenli bir şekilde şifreyi şifreler ve veritabanına hashlenmiş bir şekilde kaydeder.

Veritabanına Kayıt

  • Hazırlanmış bir SQL sorgusu ile kullanıcı verilerini veritabanına ekliyoruz. PDO'nun prepare() ve execute() metodları ile güvenli bir şekilde veritabanı işlemi yapıyoruz.

4. Veritabanı Yapısı

Kullanıcı bilgilerini saklamak için bir users tablosu oluşturmanız gerekmektedir. Aşağıda basit bir SQL sorgusu ile bu tabloyu oluşturabilirsiniz:

CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL, password VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

Bu tablo:

  • id: Otomatik olarak artan birincil anahtar.
  • username: Kullanıcının girdiği kullanıcı adı.
  • email: Kullanıcının girdiği e-posta.
  • password: Hashlenmiş şifre.
  • created_at: Kayıt zamanı otomatik olarak eklenir.

5. Güvenlik İpuçları

  • Şifre Hashleme: Şifrelerin düz metin olarak saklanmaması, hashlenmesi gerekir. PHP’nin password_hash() ve password_verify() fonksiyonlarını kullanmak, şifre güvenliği için en iyi yöntemdir.

  • SQL Injection’a Karşı Korunma: PDO'nun hazırlanmış ifadeleri (prepared statements) kullanarak SQL enjeksiyon saldırılarına karşı koruma sağlar.

  • Veri Doğrulama ve Temizleme: Kullanıcıdan gelen her türlü veriyi mutlaka doğrulamak ve temizlemek gereklidir. htmlspecialchars() ve trim() bu konuda yardımcı olur.

  • SSL Kullanımı: Eğer hassas veriler (şifre, e-posta vb.) sunucuya gönderiliyorsa HTTPS kullanmak gereklidir. Bu, kullanıcı ve sunucu arasındaki veri iletimini şifreler.

6. Kayıt Sonrası Yönlendirme

Kayıt işlemi başarıyla tamamlandıktan sonra kullanıcıyı giriş sayfasına veya bir onay sayfasına yönlendirmek iyi bir uygulamadır. Bunu yapmak için PHP'nin header() fonksiyonu kullanılabilir.

header("Location: login.php"); exit;

Bu kod parçası, kayıt işlemi tamamlandığında kullanıcıyı login.php sayfasına yönlendirecektir.

7. Sonuç

PHP 8 ile bir kayıt formu oluşturmak, kullanıcıların verilerini güvenli bir şekilde sunucuya göndermelerini ve bu verilerin veritabanında saklanmasını sağlar. Kayıt formu oluştururken, verilerin güvenliğini sağlamak, şifreleri hashlemek ve SQL enjeksiyonlarına karşı koruma gibi güvenlik önlemleri almak çok önemlidir.

Bu Dersi Değerlendirin

Bu ders size yardımcı oldu mu? Puan verin!

Geri bildiriminiz içeriğimizi sürekli güncel ve kaliteli tutmamızı sağlar.

4.9 / 5 (Toplam 14 oy kullanıldı)

Sıkça Sorulan Sorular (SSS)

Bu ders ve konuyla ilgili en çok merak edilenler

Php 8 Uygulama: Register Formu dersini öğrenmek için ön koşul var mı?

Bu eğitim temel seviyeden ileri seviyeye adım adım hazırlanmıştır. Kodları kopyalayıp Canlı Editör üzerinde test ederek kolayca pratik yapabilirsiniz.

Örnek kodları kendi projelerimde ücretsiz kullanabilir miyim?

Evet, PHP Hocası üzerindeki tüm kod örnekleri açık kaynak mantığıyla sunulmaktadır. Ticari veya kişisel projelerinizde serbestçe kullanabilirsiniz.

Takıldığım bir yerde nereden soru sorabilirim?

Dersin altındaki topluluk yorumları bölümünden sorunuzu sorabilirsiniz. Eğitmenlerimiz ve topluluk üyelerimiz kısa sürede yanıt verecektir.

Paylaş:
PHP Hocası Akademi

Topluluk Yorumları (0)

Ders Hakkında Yorum Yap veya Soru Sor

Henüz yorum yapılmamış. İlk yorumu siz yazın!