• 23-03-2024, 22:11:22
    #1
    Merhaba arkadaşlar
    Oturum kodlarımı yazdım ama admin bilgilerini girerken admin paneline atması gerekiyor ama atmıyor bir hata da görünmüyor sayfa olduğu gibi kalıyor.

    Login ve /admin/index.php kodlarımı buraya ekleyebilirim
  • 23-03-2024, 22:14:14
    #2
    login de session oluşturdunuz mu ?
  • 23-03-2024, 22:15:07
    #3
    Kodlari paylasirsan bi inceleyelim
  • 23-03-2024, 22:20:08
    #4
    ynscnr55 adlı üyeden alıntı: mesajı görüntüle
    login de session oluşturdunuz mu ?
    kazimolmez adlı üyeden alıntı: mesajı görüntüle
    Kodlari paylasirsan bi inceleyelim
    ==== login.php kodlarım ====                      
    $sorgu = $db->prepare('SELECT * FROM yonetim WHERE id = 1');
    $sorgu->execute();
    $yonetici = $sorgu->fetch(PDO::FETCH_ASSOC);
    if(isset($_POST['submit'])){
        $mail = $_POST['mail'];
        $sifre = $_POST['sifre'];
        if( ($mail == $yonetici['mail']) && ($sifre == $yonetici['sifre']) ){
            $_SESSION['mail'] = $mail;
            header('location:index.php');
        }else{
            echo 'E-posta adresiniz veya şifreniz yanlış!';
        }
    }
    
    ==== admin/index.php kodlarım ====
    
    $sorgu = $db->prepare('SELECT * FROM yonetim WHERE id = 1');
            $sorgu->execute();
            $yonetici = $sorgu->fetch(PDO::FETCH_ASSOC);
            session_start();
            if(isset($_SESSION['mail'])){
                $welcome = 'Hoşgeldin ' . $yonetici['isim'];
            }
    
    ==== header.php kodu ====
    bu kodda kullanıcı giriş yapmamış ise admin panelenin diğer sayfalarını  açılmasını engellemeye çalıştım
    
    
    if (!isset($_SESSION['mail'])) {
        header('Location:login.php');
        exit;
    }
  • 23-03-2024, 22:22:34
    #5
    Whitelord adlı üyeden alıntı: mesajı görüntüle
    ==== login.php kodlarım ====                      
    $sorgu = $db->prepare('SELECT * FROM yonetim WHERE id = 1');
    $sorgu->execute();
    $yonetici = $sorgu->fetch(PDO::FETCH_ASSOC);
    if(isset($_POST['submit'])){
        $mail = $_POST['mail'];
        $sifre = $_POST['sifre'];
        if( ($mail == $yonetici['mail']) && ($sifre == $yonetici['sifre']) ){
            $_SESSION['mail'] = $mail;
            header('location:index.php');
        }else{
            echo 'E-posta adresiniz veya şifreniz yanlış!';
        }
    }
    
    ==== admin/index.php kodlarım ====
    
    $sorgu = $db->prepare('SELECT * FROM yonetim WHERE id = 1');
            $sorgu->execute();
            $yonetici = $sorgu->fetch(PDO::FETCH_ASSOC);
            session_start();
            if(isset($_SESSION['mail'])){
                $welcome = 'Hoşgeldin ' . $yonetici['isim'];
            }
    
    ==== header.php kodu ====
    bu kodda kullanıcı giriş yapmamış ise admin panelenin diğer sayfalarını  açılmasını engellemeye çalıştım
    
    
    if (!isset($_SESSION['mail'])) {
        header('Location:login.php');
        exit;
    }
    yapıda bazı sorunlar var ama şu an yaşadığınız sorunun kaynağı şu; login.php'de session tanımlıyorsunuz ama öncesinde session_start(); ile oturumu başlatmamışsınız.
  • 23-03-2024, 22:25:01
    #6
    Irresistible adlı üyeden alıntı: mesajı görüntüle
    yapıda bazı sorunlar var ama şu an yaşadığınız sorunun kaynağı şu; login.php'de session tanımlıyorsunuz ama öncesinde session_start(); ile oturumu başlatmamışsınız.
    sayfanın en üstünde başlattım yani onda sorun yok
    ben hatayı header.php ye eklediğim koddan dolayı alıyorum
    header.php de eklediğim kodda giriş yapmamış ise admin panelinin diğer sayfalarının görüntülenmemesi için login.php ye yönlendiriyorum
    yani header.php ye ekledikten sonra login sayfasına gelip bilgileri giriyorum ama hiçbir yere yönlendirmiyor
  • 23-03-2024, 22:26:18
    #7
    Session kullanilan tum sayfalarin en ust kismina session_start(); kodunu eklemelisin. Istersen ortak bi dosya olusturup tum sayfalarda bunu include edebilirsin.
  • 23-03-2024, 22:27:32
    #8
    Whitelord adlı üyeden alıntı: mesajı görüntüle
    ==== login.php kodlarım ====                      
    $sorgu = $db->prepare('SELECT * FROM yonetim WHERE id = 1');
    $sorgu->execute();
    $yonetici = $sorgu->fetch(PDO::FETCH_ASSOC);
    if(isset($_POST['submit'])){
        $mail = $_POST['mail'];
        $sifre = $_POST['sifre'];
        if( ($mail == $yonetici['mail']) && ($sifre == $yonetici['sifre']) ){
            $_SESSION['mail'] = $mail;
            header('location:index.php');
        }else{
            echo 'E-posta adresiniz veya şifreniz yanlış!';
        }
    }
    
    ==== admin/index.php kodlarım ====
    
    $sorgu = $db->prepare('SELECT * FROM yonetim WHERE id = 1');
            $sorgu->execute();
            $yonetici = $sorgu->fetch(PDO::FETCH_ASSOC);
            session_start();
            if(isset($_SESSION['mail'])){
                $welcome = 'Hoşgeldin ' . $yonetici['isim'];
            }
    
    ==== header.php kodu ====
    bu kodda kullanıcı giriş yapmamış ise admin panelenin diğer sayfalarını  açılmasını engellemeye çalıştım
    
    
    if (!isset($_SESSION['mail'])) {
        header('Location:login.php');
        exit;
    }
    Tahminim login sayfası ile index sayfası aynı dizinde değil.
    header('location:index.php');
    buraya göre aynı dizinde olması gerekir.Verdiğiniz bilgilere göre sonraki dizine göndermelisiniz.
  • 23-03-2024, 22:29:57
    #9
    Login de header ile yapilan yonlendirmeden sonra exit eklesen iyi olur. Ayrica hatalari gostermek icin error_reporting(E_ALL); ile ini_set('display_errors', 1); tanimlarini yaparsan hata oldugunda ekrana basar