• 29-05-2020, 22:17:47
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba kullanıcı giriş yaptıktan sonra kullanıcı adı bilgilerini $_SESSION["kullanici"] alıyorum. Profil sayfasında yazdırdığım zaman göstermiyor.

    Giriş Sayfası

    <?php
    session_start(); //oturum başlattık
    include("inc/fonk.php"); //veri tabanına bağlandık
    
    //eğer mevcut oturum varsa sayfayı yönlendiriyoruz.
    if (isset($_SESSION["Oturum"]) && $_SESSION["Oturum"] == "6789") {
    header("location:index.php");
    } //eğer önceden beni hatırla işaretlenmiş ise oturum oluşturup sayfayı yönlendiriyoruz.
    else if (isset($_COOKIE["cerez"])) {
    //Kullanıcı adlarını çeken sorgumuz
    
    $sorgu = $baglanti->prepare("select kullanici from kullanicilar");
    $sorgu->execute();
    
    
    //Kullanıcı adlarını döngü yardımı ile tek tek elde ediyoruz
    while ($sonuc = $sorgu->fetch()) {
    //eğer bizim belirlediğimiz yapıya uygun kullanıcı var mı diye bakıyoruz.
    if ($_COOKIE["cerez"] == md5("aa" . $sonuc['kullanici'] . "bb")) {
    
    //oturum oluşturma buradaki değerleri güvenlik açısından
    //farklı değerler yapabilirsiniz
    //aynı zamanda kullanıcı adınıda burada tuttum
    $_SESSION["Oturum"] = "6789";
    $_SESSION["kullanici"] = $sonuc['kullanici'];
    
    //sonrasında index sayfasına yönlendiriyorum
    header("location:index.php");
    }
    }
    }
    //Giriş formu doldurulmuşsa kontrol ediyoruz
    if ($_POST) {
    $txtkullanici = $_POST["txtkullanici"]; //Kullanıcı adını değişkene atadık
    $txtParola = $_POST["txtParola"]; //Parolayı değişkene atadık
    }
    ?>
    <div class="splash-container">
    <div class="card">
    <div class="card-header text-center">Login</div>
    <div class="card-body">
    <form id="form1" method="post">
    <div class="form-group">
    <div class="form-group">
    <input type="text" name="txtkullanici" value='<?php echo @$txtkullanici ?>' id="inputkullanici" class="form-control" placeholder="Kullanıcı Adı" required autofocus>
    
    </div>
    </div>
    <div class="form-group">
    <div class="form-label-group">
    <input type="password" id="inputPassword" class="form-control" placeholder="Parola" required name="txtParola">
    </div>
    </div>
    <div class="form-group">
    <div class="checkbox">
    <label>
    <input type="checkbox" ID="ckbHatirla" name="ckbHatirla"/>
    Beni hatırla
    </label>
    <br>
    <?php
    //Post varsa yani submit yapılmışsa veri tabanından kontrolü yapıyoruz.
    if ($_POST) {
    //sorguda kullanıcı adını alıp ona karşılık parola var mı diye bakıyoruz.
    $sorgu = $baglanti->prepare("select parola from kullanicilar where kullanici=:kullanici");
    $sorgu->execute(array('kullanici' => htmlspecialchars($txtkullanici)));
    $sonuc = $sorgu->fetch();//sorgu çalıştırılıp veriler alınıyor
    
    
    //parolaları md5 ile şifreledim ve başına sonuna kendimce eklemeler yaptım.
    if (md5("56" . $txtParola . "23") == $sonuc["parola"]) {
    $_SESSION["Oturum"] = "6789"; //oturum oluşturma
    $_SESSION["kullanici"] = $txtkullanici;
    
    //eğer beni hatırla seçilmiş ise cookie oluşturuyoruz.
    //cookie de şifreleyerek kullanıcı adından oluşturdum
    if (isset($_POST["ckbHatirla"])) {
    setcookie("cerez", md5("aa" . $txtkullanici . "bb"), time() + (60 * 60 * 24 * 7));
    }
    header("location:index.php"); //sayfa yönlendirme
    } else {
    //eğer kullanıcı adı ve parola doğru girilmemiş ise
    //hata mesajı verdiriyoruz
    echo "Kullanıcı adı veya parola yanlış!";
    }
    }
    ?>
    </div>
    </div>
    
    <input type="submit" class="btn btn-primary btn-block" ID="btnGiris" value="Giriş"/>
    </form>
    Profil Sayfası

    <?php
    session_start(); //oturum başlattık
    
    if (!(isset($_SESSION["Oturum"]) && $_SESSION["Oturum"] == "6789")) {
    header("location:login.php");
    }
    
    $deneme = $_SESSION["kullanici"]; // SESSİON
    ?>
    <!doctype html>
    <html lang="tr">
    
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>PDO LOGİN</title>
    <body>
    Merhaba <?php echo $deneme; ?> // BURAYA YAZDIRDIĞIM ZAMAN GÖSTERMEKTE
    </body>
    </head>
  • 29-05-2020, 22:41:39
    #2
    Üyeliği durduruldu
    Anladığım kadarı ile session kullanici yı inputtan çekmeye çalışıyorsun. Sorguda eşleşmeyi yaptıktan sonra direk veri tabanından kullanıcı adını çekip sessiona bağlayabilirsin. bu şekilde sorun çözülür.
    $_SESSION["kullanici"] = $txtkullanici; yerine $_SESSION["kullanici"] = $sonuc['tabloadi']; gibi denermisin?
    localde php bazı komutlarda sıkıntı yaratabilir.
    if (!(isset($_SESSION["Oturum"]) && $_SESSION["Oturum"] == "6789")) {
    header("location:login.php"); yerine if(!@$_SESSION)
    gibi kullanırsan veri gelir. Dediğim gibi kodlama ile benim localhostumda ki script sorunsuz çalışıyor.