img
Php İle Kullanıcı Rolleri Ve Yetkilendirme Sistemi Oluşturma

Php İle Kullanıcı Rolleri Ve Yetkilendirme Sistemi Oluşturma

Web geliştiricileri için kullanıcı rolleri ve yetkilendirme sistemi oluşturmak, uygulamaların güvenliğini ve yönetimini sağlamak açısından kritik bir önem taşır. Bu makalede, PHP ile kullanıcı rolleri ve yetkilendirme sistemi oluşturma sürecini adım adım inceleyeceğiz. Anahtar kelimelerimiz:PHP kullanıcı rolleri, yetkilendirme sistemi, PHP kullanıcı yönetimi, kullanıcı yetkileri PHP.

Web uygulamalarında kullanıcı rolleri ve yetkilendirme, farklı kullanıcıların farklı yetkilere sahip olmasını sağlar. Bu sayede, belirli işlemler yalnızca yetkili kullanıcılar tarafından gerçekleştirilebilir. PHP kullanarak kullanıcı rolleri ve yetkilendirme sistemi oluşturmak, uygulamanızın güvenliğini ve yönetimini kolaylaştırır.

Kullanıcı Rolleri ve Yetkilendirme Nedir?

Kullanıcı Rolleri

Kullanıcı rolleri, belirli kullanıcı gruplarına belirli yetkiler atayan bir sistemdir. Örneğin, bir e-ticaret sitesinde "Yönetici", "Satıcı" ve "Müşteri" gibi farklı roller olabilir. Her rolün farklı yetkileri ve erişim hakları bulunur.

Yetkilendirme

Yetkilendirme, bir kullanıcının belirli bir işlemi gerçekleştirme yetkisine sahip olup olmadığını belirleme işlemidir. Kullanıcıların rollerine göre yetkilendirilmesi, güvenlik açıklarını azaltır ve sistemin daha düzenli çalışmasını sağlar.

PHP ile Kullanıcı Rolleri Tanımlama

Veritabanı Tasarımı

İlk adım, kullanıcı rolleri ve yetkilendirme bilgilerini saklamak için uygun bir veritabanı tasarımı yapmaktır. Aşağıda basit bir veritabanı tasarımı örneği bulunmaktadır:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(255) NOT NULL,
    role_id INT NOT NULL
);

CREATE TABLE roles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    role_name VARCHAR(50) NOT NULL
);

Bu yapıda users tablosu kullanıcı bilgilerini, roles tablosu ise rol bilgilerini saklar.

Kullanıcı Rolleri Tanımlama

Rolleri tanımlamak için roles tablosuna veri ekleyelim:

INSERT INTO roles (role_name) VALUES ('Admin'), ('Editor'), ('User');

Kullanıcı Kaydı ve Rol Atama

Kullanıcıları kaydetmek ve onlara roller atamak için PHP kodu yazalım:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "user_management";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Bağlantı hatası: " . $conn->connect_error);
}

$username = "exampleUser";
$password = password_hash("examplePass", PASSWORD_DEFAULT);
$role_id = 1; // Admin rolü

$sql = "INSERT INTO users (username, password, role_id) VALUES ('$username', '$password', '$role_id')";

if ($conn->query($sql) === TRUE) {
    echo "Yeni kayıt oluşturuldu";
} else {
    echo "Hata: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

Yetkilendirme Kontrolleri ve Güvenlik

Kullanıcı Girişi ve Rol Kontrolü

Kullanıcıların giriş yapması ve yetkilerinin kontrol edilmesi için aşağıdaki PHP kodunu kullanabilirsiniz:

<?php
session_start();

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "user_management";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Bağlantı hatası: " . $conn->connect_error);
}

$username = $_POST['username'];
$password = $_POST['password'];

$sql = "SELECT * FROM users WHERE username='$username'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    if (password_verify($password, $row['password'])) {
        $_SESSION['user_id'] = $row['id'];
        $_SESSION['role_id'] = $row['role_id'];
        header("Location: dashboard.php");
    } else {
        echo "Yanlış şifre";
    }
} else {
    echo "Kullanıcı bulunamadı";
}

$conn->close();
?>

Rol Bazlı Erişim Kontrolü

Kullanıcıların belirli sayfalara erişimini kontrol etmek için rol bazlı erişim kontrolü yapalım:

<?php
session_start();

function checkRole($role) {
    if ($_SESSION['role_id'] != $role) {
        header("Location: unauthorized.php");
        exit();
    }
}

// Örnek: Yalnızca adminlerin erişebileceği bir sayfa
checkRole(1); // 1 Admin rolü id'si
?>

Örnek Kod ve Uygulama

Aşağıda, kullanıcı rolleri ve yetkilendirme sisteminin basit bir örneği bulunmaktadır:

Kullanıcı Girişi ve Rol Kontrolü

<?php
session_start();
require 'database.php'; // Veritabanı bağlantı dosyası

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $username = $_POST['username'];
    $password = $_POST['password'];

    $stmt = $conn->prepare("SELECT * FROM users WHERE username=?");
    $stmt->bind_param("s", $username);
    $stmt->execute();
    $result = $stmt->get_result();

    if ($result->num_rows > 0) {
        $user = $result->fetch_assoc();
        if (password_verify($password, $user['password'])) {
            $_SESSION['user_id'] = $user['id'];
            $_SESSION['role_id'] = $user['role_id'];
            header("Location: dashboard.php");
        } else {
            echo "Yanlış şifre";
        }
    } else {
        echo "Kullanıcı bulunamadı";
    }
}
?>

Dashboard Sayfası

<?php
session_start();
require 'check_role.php'; // Rol kontrol dosyası

// Dashboard sayfası içeriği
echo "Hoşgeldiniz, " . $_SESSION['username'];
?>

Rol Kontrol Fonksiyonu

<?php
function checkRole($role) {
    if ($_SESSION['role_id'] != $role) {
        header("Location: unauthorized.php");
        exit();
    }
}
?>

Yetkisiz Erişim Sayfası

<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <title>Yetkisiz Erişim</title>
</head>
<body>
    <h1>Bu sayfaya erişim yetkiniz yok.</h1>
</body>
</html>

PHP ile kullanıcı rolleri ve yetkilendirme sistemi oluşturmak, web uygulamalarının güvenliğini ve yönetimini sağlamanın etkili bir yoludur. Bu makalede, kullanıcı rolleri ve yetkilendirmenin temellerini, PHP ile nasıl tanımlanacağını, yetkilendirme kontrollerini ve basit bir örnek uygulamayı ele aldık. PHP kullanarak kullanıcı rolleri ve yetkilendirme sistemini öğrenmek, projelerinizde kullanıcı yönetimini daha güvenli ve verimli hale getirecektir.

İlk Yorumu Yapan Sen Ol!

Web Tasarımlar

  • Lisans Yönetim Scripti 2

    24.6K
    1440.00₺
  • Canlı Radyo Dark Scripti

    16.7K
    1440.00₺
  • Canlı Radyo Light Scripti

    9.8K
    1440.00₺
  • Rüzgar Radyo Scripti

    9.6K
  • Radyo Minimal

    5.2K
    1440.00₺
  • Ekitap Scripti

    7.3K
    4320.00₺
  • Aşk Sevgililer GünüEvlilik

    9.2K
    1440.00₺
  • Sohbet Scripti

    9.3K
  • Dialog Whatsapp Benzeri Sohbet

    5.9K
  • Firebase Chat

    4.7K
  • Web Ajans Scripti

    30.3K
    5040.00₺
  • Google Indexing Api

    1.5K
    720.00₺
  • Milando Radyo Wordpress Teması

    2.1K
    1440.00₺

Vip Tema Web Ajans Yazılımı

Profesyonel ve her yönü ile kontrol edilebilir gelişmiş çok özellikli ajans yazılımıdır. İşte öne çıkan özellikler.

  • PAYTR Ödeme Entegrasyonu
  • SHIPY Ödeme Entegrasyonu
  • WHM Hosting Satış Entegrasyonu
  • Domain Sorgulama/Satış Entegrasyonu
  • Google Authenticator
  • SMS 2 Faktörlü Doğrulama
  • Net Gsm SMS Entegrasyonu
  • İleti Merkezi SMS Entegrasyonu
  • İnteraktif SMS Entegrasyonu
  • Mas GSM SMS Entegrasyonu
img