Şimdi Ara

PHP PDO'DA VERİTABANINDAKİ VERİYİ DEĞİŞKENE AKTARMA??

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
6
Cevap
0
Favori
697
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Selam gençler.Bir sorunum var yine php ile ilgili..
    Yardım edin lütfen
    Ben $_SESSION larla bi üyelik sistemi yapmıştım. Herşeyi çalışıyo fakat şu veritabanından veri alıp
    herhangi bir php değişkenine aktarmayı yapamadım..
    İşte kodlar:
    index.php:




    <?php
    session_start();
    if($_SESSION){
    echo "<center>Dostum oturum, açık..<br>Oturumu kapatmak için <a href='log/out.php'> tıkla</a>
    <br>
    <a href='hotel/'>Anasayfaya Gitmek için tıkla</a>


    ";
    }if(!$_SESSION){
    echo "<br><br><br>Hmm....<br>Demek kayıt olmadın, o zaman aşağıdaki formu doldur ve kayıt ol!<br>";
    echo "<form action='' method='post'>
    <table>
    <br><br><br>
    <tr>
    <td>Adınız:</td>
    <td><input type='text' name='name' required></td>
    </tr>
    <tr>
    <td>Yaşınız:</td>
    <td><input type='number' name='yas' min='0' max='100' required></td>
    </tr>
    <tr>
    <td>E posta adresiniz</td>
    <td><input type='email' name='mail' required></td>
    </tr>
    <tr>
    <td>Şifreniz:</td>
    <td><input type='password' name='pass' required></td>
    </tr>
    <tr>
    <td><input type='submit' value='Kayıt Ol'></td>
    </tr>
    </form>
    </table>
    ";
    echo "<br>Giriş yapmak için <a href='log/login.php'> buraya </a> tıkla!<br>";
    $n = "Sitemize";
    echo "<title>".$n." Hoşgeldin</title>";

    if($_POST){
    include 'config.php';
    $name = $_POST["name"];
    $mail = $_POST["mail"];
    $pass = $_POST["pass"];
    $yas = $_POST["yas"];
    $rank = 1;
    $query = "SELECT * FROM users order by id";
    $goster = $db->prepare($query);
    $goster->execute(); //queriyi tetikliyor

    $result = $db->prepare("INSERT INTO users (name,mail,sifre,yas,rank) VALUES (?,?,?,?,?)");
    $result->execute(array($name,$mail,$pass,$yas,$rank));
    echo "<font color='green'>Başarıyla kaydoldunuz!";
    echo "<br><b>Bilgileriniz:</b>";
    $_SESSION["name"]=$_POST["name"];
    $_SESSION["pass"]=$_POST["pass"];
    $_SESSION["mail"]=$_POST["mail"];
    $_SESSION["yas"]=$_POST["yas"];
    $_SESSION["rank"]=$rank;
    echo "<br>Adınız:".$_SESSION["name"]."
    <br>
    Şifreniz:".$_SESSION["pass"]."

    ";
    header("refresh: 2; url=hotel/home.php");
    }else{
    echo "Kayıt olurken türkçe karakter kullanmayın!";
    }
    }


    ?>

    Bu sayfada bi sorun yok, üyeleri başarılı olarak kaydediyo, rankı 1 olarak ayarlıyo.
    Ama tek sorun o rankı ben veritabanından değiştirdiğimde $_SESSION["rank"] olan değişmiyo o hep 1 kalıyo.
    Ve buda log.php sayfasına giremememe sebep oluyo.
    log.php:

    <?php
    session_start();
    include 'config.php';
    if($_SESSION["rank"]<8){
    header("location:../");
    }
    else{
    echo "Hoşgeldin".$_SESSION["name"];
    }






    ?>

    Bu sayfaya tek olarak rank ı 2 üstünde olanlar erişecek.
    Ancak benim veritabanımda rankım 10 olmasına rağmen anasayfaya yönelndriliyorum
    Lütfen yardım!!?







  • Herseyi sessionda tutmak yanlış bir yaklaşım. Sessionda sadece username ı tut sayfaya erişim yapmadan önce veritabanından rankı çekip yetkisi varmı yokmu diye kontrol et. Senin yaptığın şekilde veri tabanında rankı değiştirsen bile session düşmediği sürece rankı 1 olarak kalır.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: Joshualinekano

    Herseyi sessionda tutmak yanlış bir yaklaşım. Sessionda sadece username ı tut sayfaya erişim yapmadan önce veritabanından rankı çekip yetkisi varmı yokmu diye kontrol et. Senin yaptığın şekilde veri tabanında rankı değiştirsen bile session düşmediği sürece rankı 1 olarak kalır.
    Tamam anladımda işte o veritabanından çekmeyi nasıl yapcam.
    Kodunu yazabilirmisin?
  • zaten gene aynı devam edebilirsin ki bu şekilde de sonuçta üye elle girip veritabanından değiştirmicek bunu değişiklik yaptığı sayfada değiştiricek ordada rankı yenilersin. Yada her sayfaya kontrol atarsın rankı kontrol ettirirsin yada funciton.php sayfanda her defasında çektirirsin sonuçta her sayfaya include ettiğin için bu sefer anlık çalışır sistemin. Session da ön bellekte tuttuğu için değiştirsende görmez o yüzden tekrar ataman gerekir ama dediğim gibi sonuçta bu kişi veritabanına girip değiştirmicek senin yaptığın işlem sayfasından değiştirecek o işlemi yaparken onu yenileyebilirsin ya da diğer seçenekleri düşünürsün
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.