PHP 8 ile kullanıcı kayıt formu oluşturmak, web uygulamanızda kullanıcıların kayıt olmasını sağlamak için temel bir işlemdir. Aşağıda, kullanıcı kayıt formu oluşturma sürecini adım adım anlatan bir rehber bulabilirsiniz.
1. Veritabanı Bağlantısı
Öncelikle, kullanıcı bilgilerini depolamak için bir veritabanına bağlanmanız gerekir. Bu örnekte MySQL kullanacağız.
<?php
$host = 'localhost';
$db = 'veritabani_adi';
$user = 'kullanici_adi';
$pass = 'sifre';
try {
$pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Bağlantı hatası: " . $e->getMessage();
}
?>
2. Kullanıcı Kayıt Formu
Kullanıcıdan gerekli bilgileri alacak bir HTML formu oluşturun. Örneğin, kullanıcı adı, e-posta ve şifre isteyebilirsiniz.
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kayıt Ol</title>
</head>
<body>
<h2>Kullanıcı Kayıt Formu</h2>
<form action="kayit.php" method="post">
<label for="username">Kullanıcı Adı:</label>
<input type="text" id="username" name="username" required>
<br>
<label for="email">E-posta:</label>
<input type="email" id="email" name="email" required>
<br>
<label for="password">Şifre:</label>
<input type="password" id="password" name="password" required>
<br>
<input type="submit" value="Kayıt Ol">
</form>
</body>
</html>
3. Form Verilerini İşleme
Kullanıcı formunu gönderdiğinde, verileri almak ve veritabanına eklemek için kayit.php
dosyasını oluşturun.
<?php
// Veritabanı bağlantısı
$host = 'localhost';
$db = 'veritabani_adi';
$user = 'kullanici_adi';
$pass = 'sifre';
try {
$pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Form verilerini alma
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
// Şifreyi hashleme (güvenlik için)
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
// Kullanıcıyı veritabanına ekleme
$stmt = $pdo->prepare("INSERT INTO users (username, email, password) VALUES (:username, :email, :password)");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':password', $hashedPassword);
if ($stmt->execute()) {
echo "Kayıt başarılı!";
} else {
echo "Kayıt sırasında bir hata oluştu.";
}
}
} catch (PDOException $e) {
echo "Hata: " . $e->getMessage();
}
?>
4. Veritabanı Tablosunu Oluşturma
Kullanıcı bilgilerini saklamak için bir veritabanı tablosu oluşturmanız gerekir. Aşağıdaki SQL komutu ile bir users
tablosu oluşturabilirsiniz:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL
);
5. Güvenlik ve Doğrulama
Kullanıcı kayıt formunu oluştururken güvenliği unutmamak önemlidir. Aşağıda dikkate almanız gereken bazı noktalar bulunmaktadır:
- Form Doğrulama: Kullanıcıdan alınan verileri doğrulamak için JavaScript kullanarak istemci tarafında doğrulama yapın.
- Sunucu Tarafı Doğrulama: PHP tarafında kullanıcı bilgilerini kontrol edin (örneğin, e-posta formatının doğru olup olmadığını kontrol edin).
-
Şifre Hashleme: Şifreleri güvenli bir şekilde depolamak için
password_hash()
fonksiyonunu kullanın. -
SQL Injection Önleme: Kullanıcı girdilerini
prepared statements
ile işleyerek SQL injection saldırılarına karşı koruma sağlayın.
Sonuç
Bu adımlarla, PHP 8 kullanarak basit bir kullanıcı kayıt formu oluşturmuş oldunuz. Kullanıcılar formu doldurduğunda, verileri veritabanına kaydedilir. Bu işlem, web uygulamanızda kullanıcı yönetimi için temel bir yapıdır. Geliştirmeye devam ederek, kullanıcı girişi, şifre sıfırlama ve e-posta doğrulama gibi özellikleri de ekleyebilirsiniz.