• 24-09-2025, 06:03:53
    #1
    Php admin panelde en kolay demo modu nasıl yapılır?

    Bunun en kolay yöntemi nedir? Benim aklıma gelen post/get gibi istekleri doğrudan engellemek bir uyarı göstermek.

    Doğru yöntem bu mudur ?

    <?php
    // header.php
    
    // Demo modu aç/kapat
    define('DEMO_MODE', true);
    
    session_start();
    
    
    $writeMethods = ['POST', 'PUT', 'PATCH', 'DELETE'];
    if (DEMO_MODE && in_array($_SERVER['REQUEST_METHOD'], $writeMethods)) {
        // Eğer AJAX (fetch, $.ajax vs.) ise JSON cevap dön
        if (
            isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
            strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'
        ) {
            header('Content-Type: application/json; charset=utf-8');
            http_response_code(403);
            echo json_encode([
                'ok' => false,
                'message' => 'Demo modunda değişiklik yapılamaz.'
            ]);
            exit;
        }
    
        // session mesaj
        $_SESSION['flash'] = 'Demo modunda değişiklik yapılamaz.';
        header('Location: ' . ($_SERVER['HTTP_REFERER'] ?? '/admin/index.php'));
        exit;
    }
    ?>
    <!DOCTYPE html>
    <html lang="tr">
    <head>
      <meta charset="UTF-8">
      <title>Admin Panel</title>
    </head>
    <body>
    
    <?php
    if (!empty($_SESSION['flash'])) {
        echo '<div style="padding:10px; margin:10px 0; background:#fdd; color:#900; border:1px solid #900; border-radius:5px;">'
            . $_SESSION['flash'] .
            '</div>';
        unset($_SESSION['flash']);
    }
    ?>
    
    <script>
    // Önyüzde js ile error
    document.addEventListener("submit", function(e){
      alert("Demo modunda değişiklik yapılamaz.");
      e.preventDefault();
    });
    </script>
    <?php endif; ?>
  • 24-09-2025, 07:58:00
    #2
    Bence bir kullanici oluşturup izinleri kısıtlamak olabilir.
  • 24-09-2025, 08:07:34
    #3
    Eğer mail adresi demo.com ile bitiyorsa tüm update-insert işlemlerini engelletebilirsin. Kullanıcılar register olurken demo.com ile biten mail adresi göndermelerini engellersin. Sadece admin demo.com ile biten mail adresi admin panelden ekleyebilir. Böylece `demo1 at demo.com` , `demo2 at demo.com` , `demoahmet at demo.com` şeklinde yeni demo hesaplar açabilirsin lazım olunca.
  • 24-09-2025, 08:11:16
    #4
    veritabanı oluştururken cpanelden oluşturduğunuz veritabanı ve kullanıcı hesabına tam yetki vermeyin insert, update ve delete gibi yetkileri işaretlemeyin. Bu sayede kodlamada herhangi bir işlem yapmadan site ekleme-silme-güncelleme işlemi yapmaz.
  • 24-09-2025, 10:00:35
    #5
    SNDizayn adlı üyeden alıntı: mesajı görüntüle
    veritabanı oluştururken cpanelden oluşturduğunuz veritabanı ve kullanıcı hesabına tam yetki vermeyin insert, update ve delete gibi yetkileri işaretlemeyin. Bu sayede kodlamada herhangi bir işlem yapmadan site ekleme-silme-güncelleme işlemi yapmaz.
    Bu en basit yol gibi duruyor teşekkürler hocam.