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

    21K
    1000.00₺
  • Canlı Radyo Dark Scripti

    13.5K
    1000.00₺
  • Canlı Radyo Light Scripti

    8.1K
    1000.00₺
  • Rüzgar Radyo Scripti

    8.3K
    0.00₺
  • Radyo Minimal

    4.1K
    1000.00₺
  • Ekitap Scripti

    6.1K
    3000.00₺
  • Aşk Sevgililer GünüEvlilik

    7.6K
    1000.00₺
  • Sohbet Scripti

    7.8K
    0.00₺
  • Dialog Whatsapp Benzeri Sohbet

    4.7K
    0.00₺
  • Firebase Chat

    3.8K
    0.00₺
  • Web Ajans Scripti

    24.5K
    3000.00₺
  • Ajans Scripti Kolay Kullanım

    3.1K
    1000.00₺
  • Ajans Scripti V2

    3.1K
    1000.00₺
  • Ajans Scripti V3

    3.1K
    1000.00₺
  • Avukat Ve Hukuk Bürosu Scripti

    2.1K
    1000.00₺
  • Avukat Ve Hukuk Bürosu Web Tasarım V2

    2.7K
    1000.00₺
  • Mobil Uyumlu Çilingir Scripti

    2K
    1000.00₺
  • Kuaför Güzellik Salonu Spa Merkezi Web Tasarım

    2.7K
    1000.00₺
  • Sağlık Güzellik Poliklinik Dişçi Hastane Web Tasarımı

    2.3K
    1000.00₺
  • Sağlık Güzellik Poliklinik Dişçi Hastane Web Tasarımı V2

    40.2K
    1000.00₺
  • İlaçlama Şirketi Web Tasarımı

    5.5K
    1000.00₺
  • İlan Web Tasarımı

    2.3K
    1000.00₺
  • İlan Web Tasarımı V2

    2.2K
    1500.00₺
  • İnşaat Firması Web Tasarımı

    1.9K
    1000.00₺
  • İnşaat Firması Tasarımı V2

    2K
    1000.00₺
  • Kitapçı Kırtasiye Web Tasarımı

    2.5K
    1000.00₺
  • Kombi Klima Servisi Web Tasarımı

    2.3K
    1000.00₺
  • Korku Evi Eğlence Mekanı Web Tasarımı

    2.3K
    1000.00₺
  • Kurumsal Firma Web Tasarımı V2

    3.3K
    1000.00₺
  • Kurumsal Firma Web Tasarımı V3

    3.4K
    1000.00₺
  • Ajans Web Tasarımı V4

    2.5K
    1500.00₺
  • Kurumsal Firma Web Tasarımı V4

    3K
    1000.00₺
  • Kurumsal Firma Web Tasarımı V5

    3.5K
    1000.00₺
  • Kurumsal Firma Web Tasarımı V6

    3.2K
    1000.00₺
  • Kurumsal Firma Web Tasarımı V7

    3.6K
    1000.00₺
  • Kurumsal Firma Web Tasarımı V8

    3.1K
    1000.00₺
  • Mobilya Dekorasyon Web Tasarımı

    2.8K
    1000.00₺
  • Nakliyat Taşımacılık Web Tasarımı

    2.1K
    1000.00₺
  • Nakliyat Taşımacılık Web Tasarımı V2

    2.5K
    1000.00₺
  • Nakliyat Taşımacılık Web Tasarımı V3

    2.7K
    1000.00₺
  • Ana Okulu Ve Kreş Web Tasarımı

    2.3K
    1000.00₺
  • Otel Pansiyon Web Tasarımı

    2.4K
    1000.00₺
  • Özel Oto Servis Web Tasarımı

    2.1K
    1000.00₺
  • Rent A Car Araç Kiralama Web Tasarımı

    6.1K
    1000.00₺
  • Rent A Car Araç Kiralama Web Tasarımı V2

    3.3K
    1000.00₺
  • Restaurant Cafe Bar Lokanta Web Tasarımı

    2.8K
    1000.00₺
  • Restaurant Cafe Bar Lokanta Web Tasarımı V2

    2.6K
    1000.00₺
  • Teknik Servis Web Tasarımı

    2.7K
    1000.00₺
  • Sigorta Acenta Web Tasarımı

    2.3K
    1000.00₺
  • Spor Salonu Body Fitness Web Tasarımı

    2.3K
    1000.00₺
  • Spor Salonu Body Fitness Web Tasarımı V2

    2.7K
    1000.00₺
  • Sürücü Kursu Web Tasarımı

    2.9K
    1000.00₺
  • Tek Ürün Satış Web Tasarımı

    3K
    1000.00₺
  • Tek Ürün Satış Web Tasarımı V2

    2.6K
    1000.00₺
  • Tek Ürün Yaprak Web Tasarımı

    2.5K
    1100.00₺
  • Tek Ürün Yaprak Web Tasarımı V2

    2.9K
    1100.00₺
  • Tek Ürün Satış Web Tasarımı V3

    2.7K
    1000.00₺
  • Temizlik Şirketi Web Tasarımı

    2.8K
    1000.00₺
  • Temizlik Şirketi Web Tasarımı V2

    2.8K
    1000.00₺
  • Ajans Web Tasarımı V5

    3.1K
    1000.00₺
  • Ajans Web Tasarımı V6

    4.3K
    1000.00₺
  • Werock Radyo Web Tasarımı

    4.2K
    1000.00₺
  • Avukat Ve Hukuk Bürosu Tasarımı V3

    1.5K
    1000.00₺
  • Kuaför Güzellik Salonu Spa Merkezi Web Tasarımı V2

    1.5K
    1000.00₺
  • Sağlık Güzellik Poliklinik Dişçi Hastane Web Tasarımı V3

    5.6K
    1000.00₺
  • İnşaat Firması Web Tasarımı V3

    1.4K
    1000.00₺
  • Kurumsal Firma Web Tasarımı V9

    1.6K
    1000.00₺
  • Mimarlık Web Tasarımı

    1.4K
    1000.00₺
  • Nakliyat Taşımacılık Web Tasarımı V4

    1.7K
    1000.00₺
  • Ana Okulu Ve Kreş Web Tasarımı V2

    1.4K
    1000.00₺
  • Psikolog Web Tasarımı

    1.6K
    1000.00₺
  • Spor Salonu Body Fitness Web Tasarımı V3

    1.8K
    1200.00₺
  • Sürücü Kursu Web Tasarımı V2

    1.8K
    1000.00₺
  • Teknik Servis Web Tasarımı V3

    2K
    1000.00₺
  • Ajans Web Tasarımı V7

    1.7K
    900.00₺
  • Google Indexing Api

    402
    500.00₺
  • Milando Radyo Wordpress Teması

    368
    1000.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