Php 8 Oturum Açma

Php 8 Oturum Açma

PHP 8 ile oturum açma (login) işlemi, kullanıcıların sisteme giriş yapmasını sağlamak için kullanılan temel bir özelliktir. Aşağıda, kullanıcı oturum açma sürecini adım adım açıklayan bir rehber bulabilirsiniz.

1. Veritabanı Bağlantısı

Öncelikle, oturum açma işlemi için veritabanına bağlantı kurmalısınız. Aşağıdaki örnekte, kullanıcı bilgilerini sakladığımız users tablosuna bağlanacağız.

<?php $host = 'localhost'; // Veritabanı sunucusu $db = 'veritabani_adi'; // Veritabanı adı $user = 'kullanici_adi'; // Veritabanı kullanıcı adı $pass = 'sifre'; // Veritabanı şifresi 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. Oturum Açma Formu

Kullanıcının e-posta adresi ve şifresini girmesi için 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>Oturum Aç</title> </head> <body> <h2>Oturum Açma Formu</h2> <form action="oturum_ac.php" method="post"> <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="Oturum Aç"> </form> </body> </html>

3. Oturum Açma İşlemini Gerçekleştirme

Kullanıcı formunu gönderdiğinde, bilgileri almak ve doğrulamak için oturum_ac.php dosyasını oluşturun.

<?php session_start(); // Oturum başlat // 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") { $email = trim($_POST['email']); $password = $_POST['password']; // Kullanıcıyı veritabanından alma $stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email"); $stmt->bindParam(':email', $email); $stmt->execute(); $user = $stmt->fetch(); // Kullanıcı mevcutsa şifre kontrolü if ($user && password_verify($password, $user['password'])) { // Oturum bilgilerini saklama $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; echo "Oturum açma başarılı! Hoş geldiniz, " . htmlspecialchars($user['username']) . "!"; // İsteğe bağlı: Kullanıcıyı başka bir sayfaya yönlendirin // header("Location: anasayfa.php"); // exit; } else { echo "Geçersiz e-posta veya şifre."; } } } catch (PDOException $e) { echo "Hata: " . $e->getMessage(); } ?>

4. Güvenlik Önlemleri

Oturum açma sürecinde güvenliği artırmak için aşağıdaki önlemleri alabilirsiniz:

  • Veri Doğrulama: Kullanıcıdan alınan bilgilerin doğru formatta olduğundan emin olun.
  • Şifre Hashleme: Kullanıcı şifrelerini güvenli bir şekilde hashleyerek depolamak için password_hash() fonksiyonunu kullanın.
  • SQL Injection Önleme: Kullanıcı girdilerini veritabanına eklerken prepared statements kullanarak SQL injection saldırılarına karşı koruma sağlayın.
  • XSS Koruması: Kullanıcı bilgilerini ekrana yazarken htmlspecialchars() fonksiyonunu kullanarak XSS saldırılarına karşı koruma sağlayın.

5. Oturum Yönetimi

Oturum açtıktan sonra kullanıcı bilgilerini saklamak için PHP oturumunu kullanabilirsiniz. Oturum bilgilerini silmek için oturum kapatma işlemi ekleyebilirsiniz.

Oturumu Kapatma

<?php session_start(); // Oturumu başlat // Oturumu sonlandırma session_unset(); // Tüm oturum değişkenlerini temizle session_destroy(); // Oturumu yok et echo "Oturum kapatıldı. Ana sayfaya dönmek için <a target="_blank" href='anasayfa.php'>tıklayın</a>."; ?>

Sonuç

Bu adımlarla, PHP 8 kullanarak basit bir oturum açma sistemi oluşturmuş oldunuz. Kullanıcılar e-posta adresi ve şifre ile giriş yaparak sisteminize erişebilirler. Bu sistemi geliştirerek kullanıcı kaydı, şifre sıfırlama ve e-posta doğrulama gibi ek özellikler eklemeyi düşünebilirsiniz. Bu, uygulamanızın kullanıcı yönetimi için daha kapsamlı bir yapı oluşturmanıza yardımcı olacaktır.



Yorum Ekle

Üzerine gel