Php 8 Username ve Email Kontrolü

Php 8 Username ve Email Kontrolü

PHP 8 ile kullanıcı kayıt işlemlerinde kullanıcı adı (username) ve e-posta (email) kontrolü yapmak, hem kullanıcı deneyimini iyileştirmek hem de veritabanında tutarlılığı sağlamak açısından önemlidir. Bu kontrol, kullanıcıların zaten kayıtlı olan bilgileri kullanarak tekrar kayıt olmasını önler. İşte bu sürecin nasıl gerçekleştirileceğine dair adım adım bir rehber:

1. Veritabanı Bağlantısı

Öncelikle, veritabanına bağlantı sağlamak için PDO kullanarak bir bağlantı oluşturun.

<?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.

<!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. Kullanıcı Bilgilerini Kontrol Etme

kayit.php dosyasında, kullanıcıdan alınan bilgileri kontrol edin. İlk olarak, kullanıcı adı ve e-posta adresinin veritabanında zaten kayıtlı olup olmadığını kontrol edin.

<?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 = trim($_POST['username']); $email = trim($_POST['email']); $password = $_POST['password']; // Kullanıcı adı kontrolü $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username"); $stmt->bindParam(':username', $username); $stmt->execute(); $existingUser = $stmt->fetch(); if ($existingUser) { echo "Bu kullanıcı adı zaten alınmış. Lütfen başka bir kullanıcı adı seçin."; exit; // İşlemi durdur } // E-posta kontrolü $stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email"); $stmt->bindParam(':email', $email); $stmt->execute(); $existingEmail = $stmt->fetch(); if ($existingEmail) { echo "Bu e-posta adresi zaten kayıtlı. Lütfen başka bir e-posta adresi kullanın."; exit; // İşlemi durdur } // Ş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. Sonuç

Bu adımlar, PHP 8 kullanarak kullanıcı adı ve e-posta kontrolü yapmanın temelini atmaktadır. Bu kontrol mekanizması, kullanıcıların tekrar kayıt olmalarının önüne geçer ve veritabanındaki verilerin bütünlüğünü korur. Ayrıca, kullanıcı deneyimini artırarak, kullanıcıların kayıt işlemi sırasında karşılaşabilecekleri hataları azaltır.

5. Ekstra Güvenlik Önlemleri

  • Veri Doğrulama: Kullanıcıdan alınan verilerin geçerli olduğundan emin olun. Örneğin, kullanıcı adı ve e-posta adresinin belirli bir formatta olup olmadığını kontrol edin.
  • SQL Injection Önleme: Kullanıcı girdilerini veritabanına eklerken prepared statements kullanarak SQL injection saldırılarına karşı koruma sağlayın.
  • Limitler Belirleme: Kullanıcı adı ve e-posta adresi için belirli karakter uzunlukları ve karakter setleri belirleyerek, geçerli girdileri sağlamış olursunuz.

Bu yaklaşımlar, uygulamanızın güvenliğini artırır ve kullanıcı deneyimini iyileştirir.



Yorum Ekle

Üzerine gel