Yazılım Öğrenme Rehberi 8, HTML, CSS ve JavaScript bilgilerini kullanarak backend işlemlerine giriş yapmayı hedefler. Bu yazıda, bir HTML formu oluşturup PHP ve MySQL kullanarak form verilerini nasıl işleyeceğinizi adım adım öğreneceksiniz. Adım adım anlatımla, form verilerini nasıl alacağınızı, bu verileri bir veritabanına nasıl kaydedeceğinizi ve geri bildirim nasıl vereceğinizi inceleyeceğiz.
Giriş
Önceki yazılarda, HTML, CSS ve JavaScript’in temellerini öğrendiniz ve basit bir web uygulaması geliştirdiniz. Şimdi, backend (arka uç) geliştirmeye giriş yaparak, form verilerini işleme ve saklama konusunu ele alacağız. Bu rehberde, PHP ve MySQL kullanarak form verilerini almayı ve saklamayı öğreneceksiniz.
Gereksinimler
Bu rehberi takip etmek için aşağıdaki araçlara ve bilgilere ihtiyacınız olacak:
- HTML, CSS ve JavaScript bilgisi: Önceki rehberlerden edindiğiniz bilgiler.
- PHP ve MySQL kurulu bir sunucu: Yerel geliştirme ortamı olarak XAMPP veya WAMP kullanabilirsiniz.
PHP ve MySQL Kurulumu
PHP ve MySQL’i kullanabilmek için yerel bir geliştirme ortamı kurmanız gerekiyor. XAMPP veya WAMP gibi araçları kullanarak bu ortamı kurabilirsiniz. Bu araçlar, Apache sunucusu, PHP ve MySQL’i içeren paketler sunar.
- XAMPP Kurulumu:
- XAMPP’ı buradan indirin ve kurun.
- XAMPP Kontrol Paneli’ni açın ve Apache ile MySQL’i başlatın.
- WAMP Kurulumu:
- WAMP’ı buradan indirin ve kurun.
- WAMP kontrol panelini açın ve Apache ile MySQL’i başlatın.
Adım 1: HTML Formu Oluşturma
Öncelikle, kullanıcıdan veri almak için basit bir HTML formu oluşturacağız. Bu form, kullanıcının adını ve e-posta adresini girmesini sağlar.
index.html
<!DOCTYPE html>
<html>
<head>
<title>Form Gönderme</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="container">
<h1>Form Gönderme</h1>
<form action="submit.php" method="post">
<label for="name">Adınız:</label>
<input type="text" id="name" name="name" required>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
<button type="submit">Gönder</button>
</form>
</div>
</body>
</html>
Bu HTML formu, kullanıcının adını ve e-posta adresini alır ve form verilerini submit.php
dosyasına gönderir.
- <form action=”submit.php” method=”post”>: Formun verilerini
submit.php
dosyasına POST yöntemi ile gönderir. - <input type=”text” id=”name” name=”name” required>: Kullanıcı adını almak için bir metin girişi.
- <input type=”email” id=”email” name=”email” required>: Kullanıcı e-postasını almak için bir e-posta girişi.
- <button type=”submit”>Gönder</button>: Formu göndermek için bir düğme.
Adım 2: PHP Dosyasını Oluşturma
Form verilerini işlemek için submit.php
adlı bir PHP dosyası oluşturacağız. Bu dosya, form verilerini alacak ve MySQL veritabanına kaydedecek.
submit.php
<?php
// Veritabanı bağlantı bilgileri
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";
// Veritabanına bağlan
$conn = new mysqli($servername, $username, $password, $dbname);
// Bağlantıyı kontrol et
if ($conn->connect_error) {
die("Bağlantı hatası: " . $conn->connect_error);
}
// Form verilerini al
$name = $_POST['name'];
$email = $_POST['email'];
// Veritabanına ekle
$sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')";
if ($conn->query($sql) === TRUE) {
echo "Kayıt başarıyla eklendi.";
} else {
echo "Hata: " . $sql . "<br>" . $conn->error;
}
// Bağlantıyı kapat
$conn->close();
?>
Bu PHP dosyası, form verilerini alır ve MySQL veritabanına ekler. Veritabanı bağlantısı kurar ve verileri users
tablosuna kaydeder.
- $servername, $username, $password, $dbname: Veritabanı bağlantı bilgileri.
- new mysqli: Veritabanına bağlantı kurmak için kullanılır.
- if ($conn->connect_error): Bağlantı hatasını kontrol eder.
- $_POST[‘name’], $_POST[’email’]: Formdan gelen verileri alır.
- $sql = “INSERT INTO users (name, email) VALUES (‘$name’, ‘$email’)”: Verileri veritabanına eklemek için SQL sorgusu.
- $conn->query($sql): SQL sorgusunu çalıştırır.
- if ($conn->query($sql) === TRUE): Sorgunun başarılı olup olmadığını kontrol eder.
- $conn->close(): Veritabanı bağlantısını kapatır.
Adım 3: MySQL Veritabanı Oluşturma
Veritabanı ve tabloyu oluşturmak için MySQL komutlarını kullanacağız. XAMPP veya WAMP kontrol panelinden phpMyAdmin’e giderek bu işlemleri gerçekleştirebilirsiniz.
Veritabanı oluşturma:
CREATE DATABASE test;
Tablo oluşturma:
USE test;
CREATE TABLE users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
reg_date TIMESTAMP
);
Bu komutlar, test
adında bir veritabanı ve users
adında bir tablo oluşturur. Tabloda, kullanıcı adı ve e-posta adresi saklanır.
Adım 4: PHP Dosyasını Test Etme
Şimdi formumuzu test edelim. index.html
dosyasını tarayıcınızda açın ve formu doldurun. Formu gönderdiğinizde, submit.php
dosyasına yönlendirileceksiniz ve form verileri veritabanına kaydedilecektir.
Güvenlik ve Validasyon
Gerçek dünya uygulamalarında, form verilerini işlerken güvenlik ve validasyon önlemleri almak önemlidir. İşte bazı temel güvenlik ve validasyon yöntemleri:
Veri Temizleme: Kullanıcıdan gelen verileri temizlemek ve zararlı kodları engellemek için veri temizleme (sanitization) işlemi yapın.
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
Veri Doğrulama: Verilerin geçerli ve beklenen formatta olup olmadığını kontrol edin.
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Geçersiz email formatı.";
exit;
}
Hazır Beyanlar (Prepared Statements): SQL enjeksiyon saldırılarını önlemek için veritabanı sorgularında hazır beyanlar kullanın.
$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
$stmt->execute();
Sonuç
Bu rehberde, HTML form verilerini PHP ve MySQL kullanarak nasıl işleyeceğinizi öğrendiniz. PHP ile form verilerini almayı, MySQL veritabanına kaydetmeyi ve geri bildirim sağlamayı keşfettik. Güvenlik ve validasyon konularında da temel bilgiler edindik. Bir sonraki rehberde, daha ileri düzey backend işlemleri ve güvenlik önlemlerini inceleyeceğiz. Yazılım geliştirme dünyasında başarılı bir kariyer yapmak için bu bilgileri kullanarak yolculuğunuza devam edebilirsiniz. Yazının devamı için burayı inceleyebilirsiniz.
Yararlandığım Kaynaklar
- PHP Manual
- MySQL Documentation
- MDN Web Docs – HTML
- MDN Web Docs – CSS
- MDN Web Docs – JavaScript
- W3Schools – PHP
- W3Schools – MySQL
- Coursera
- Udemy
- edX
- freeCodeCamp
- “Clean Code” – Robert C. Martin
- “The Pragmatic Programmer” – Andrew Hunt ve David Thomas
- “You Don’t Know JS” – Kyle Simpson
- Stack Overflow
- GitHub
Bu kaynaklardan yararlanarak yazılım öğrenme sürecinizi daha verimli ve etkili hale getirebilirsiniz. Yazılım geliştirme dünyasında başarılı bir kariyer yapmak için bu rehberi ve kaynakları kullanarak yolculuğunuza başlayabilirsiniz.
Comment