Yazılım Öğrenme Rehberi 9, PHP ve MySQL kullanarak daha gelişmiş web uygulamaları geliştirmeye odaklanır. Bu yazıda, kullanıcı doğrulama, form validasyonu ve veritabanı işlemlerini daha detaylı inceleyeceğiz. Adım adım anlatımla, kullanıcı kayıt ve giriş sistemi oluşturmayı öğreneceksiniz.
Giriş
Önceki yazılarda, HTML form verilerini PHP ve MySQL kullanarak nasıl işleyeceğinizi öğrendiniz. Şimdi, bu bilgileri daha da ileriye taşıyarak kullanıcı doğrulama ve form validasyonu konularını ele alacağız. Bu rehberde, kullanıcıların kayıt olmasını ve giriş yapmasını sağlayan bir sistem oluşturacağız.
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: Veritabanı ve Tabloları Oluşturma
Kullanıcı bilgilerini saklamak için bir veritabanı ve gerekli tabloları oluşturacağız.
Veritabanı oluşturma
CREATE DATABASE user_auth;
Kullanıcı tablosu oluşturma:
USE user_auth;
CREATE TABLE users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL UNIQUE,
email VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Bu komutlar, user_auth
adında bir veritabanı ve users
adında bir tablo oluşturur. Tabloda, kullanıcı adı, e-posta adresi ve şifre saklanır.
Adım 2: Kullanıcı Kayıt Formu Oluşturma
Kullanıcıların kayıt olmasını sağlayacak bir HTML formu oluşturacağız.
register.html
<!DOCTYPE html>
<html>
<head>
<title>Kullanıcı Kayıt</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="container">
<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>
<label for="email">Email:</label>
<input type="email" id="email" name="email" required>
<label for="password">Şifre:</label>
<input type="password" id="password" name="password" required>
<button type="submit">Kayıt Ol</button>
</form>
</div>
</body>
</html>
Bu HTML formu, kullanıcının kullanıcı adı, e-posta ve şifre girmesini sağlar.
Adım 3: Kayıt İşlemini PHP ile Gerçekleştirme
Form verilerini alıp veritabanına kaydeden bir PHP dosyası oluşturacağız.
register.php
<?php
// Veritabanı bağlantı bilgileri
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "user_auth";
// 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 ve temizle
$username = htmlspecialchars($_POST['username']);
$email = htmlspecialchars($_POST['email']);
$password = htmlspecialchars($_POST['password']);
// Şifreyi hashle
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
// Veritabanına ekle
$stmt = $conn->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $username, $email, $hashed_password);
if ($stmt->execute()) {
echo "Kayıt başarıyla tamamlandı.";
} else {
echo "Hata: " . $stmt->error;
}
// Bağlantıyı kapat
$stmt->close();
$conn->close();
?>
Bu PHP dosyası, form verilerini alır, temizler ve şifreyi hashleyerek veritabanına ekler. Şifre hashleme, kullanıcı şifrelerinin güvenli bir şekilde saklanmasını sağlar.
Adım 4: Kullanıcı Giriş Formu Oluşturma
Kullanıcıların giriş yapmasını sağlayacak bir HTML formu oluşturacağız.
login.html
<!DOCTYPE html>
<html>
<head>
<title>Kullanıcı Giriş</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="container">
<h1>Giriş Yap</h1>
<form action="login.php" method="post">
<label for="username">Kullanıcı Adı:</label>
<input type="text" id="username" name="username" required>
<label for="password">Şifre:</label>
<input type="password" id="password" name="password" required>
<button type="submit">Giriş Yap</button>
</form>
</div>
</body>
</html>
Bu HTML formu, kullanıcının kullanıcı adı ve şifre girmesini sağlar.
Adım 5: Giriş İşlemini PHP ile Gerçekleştirme
Form verilerini alıp kullanıcı doğrulamasını yapan bir PHP dosyası oluşturacağız.
login.php
<?php
// Veritabanı bağlantı bilgileri
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "user_auth";
// 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 ve temizle
$username = htmlspecialchars($_POST['username']);
$password = htmlspecialchars($_POST['password']);
// Kullanıcıyı veritabanında ara
$stmt = $conn->prepare("SELECT id, username, password FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows > 0) {
$stmt->bind_result($id, $username, $hashed_password);
$stmt->fetch();
// Şifreyi doğrula
if (password_verify($password, $hashed_password)) {
echo "Giriş başarılı. Hoş geldiniz, " . $username . "!";
} else {
echo "Hatalı şifre.";
}
} else {
echo "Kullanıcı bulunamadı.";
}
// Bağlantıyı kapat
$stmt->close();
$conn->close();
?>
Bu PHP dosyası, form verilerini alır, temizler ve kullanıcının var olup olmadığını kontrol eder. Şifreyi doğrular ve kullanıcıyı giriş yapar.
Sonuç
Bu rehberde, PHP ve MySQL kullanarak kullanıcı kayıt ve giriş sistemi oluşturmayı öğrendiniz. PHP ile form verilerini almayı, veritabanına kaydetmeyi ve kullanıcı doğrulaması yapmayı keşfettik. 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.
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. Yazının devamı için burayı inceleyebilirsiniz.
“Yazılım Öğrenme: Kapsamlı Rehber 9” için bir görüş