• 31-05-2015, 18:59:08
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    merhaba,

    Session ile sayfa yetkilerine göre gösterme ve göstermeme yapmaya çalışıyorum.


    if (($_SESSION["yetki"]) >= $sonuc['izin'] ) {
    						
    						echo "yetkilisin-";
    						
    						}else{
    						
    						echo "yetkisizsin"; 
    						
    						}
    yukarıdaki kodlar da deneme kodlarım.

    $sonuc['izin'] veritabanımdan geliyor ve 0 1 2 olarak değer alabiliyor.
    $_SESSION["yetki"] ise oturum açıldığında veritabanında üyenin yetki derecesinden geliyor.

    oturum açılınca problem yok yetkilisin veya yetkisizsin diye yanıt veriyor. ancak session açılmadan girildiğinde $sonuc['izin'] değeri 0 olsa bile yetkisizsin diyor. izin değeri 0 olan yerlere login olmadan da girilmesine çalışıyorum. nasıl düzenleme yapmalıyım?
  • 31-05-2015, 19:12:08
    #2
    <?PHP
    $izin = 0;
    if (($_SESSION["yetki"]) >= $izin ) { 
                             
                            echo "yetkilisin-"; 
                             
                            }else{ 
                             
                            echo "yetkisizsin";  
                             
                            }  
    ?>
    Hocam ben bu komutları session oluşturmadan denediğimde yetkilisin- sonucunu alıyorum, veritabanından gelen değerde bir hata olmasın ?
  • 31-05-2015, 19:40:33
    #3
    $izin=0 ken mesela yetki 2 o zaman izin veriyor.

    ama oturum açılmadan session a değer gelmediği için sanırım

    mesela $echo ($_SESSION["yetki"]) yazıyorum sonuç gelmiyor gelse işlem yapacak
  • 31-05-2015, 21:13:09
    #4
    oguzhan306 adlı üyeden alıntı: mesajı görüntüle
    $izin=0 ken mesela yetki 2 o zaman izin veriyor.

    ama oturum açılmadan session a değer gelmediği için sanırım

    mesela $echo ($_SESSION["yetki"]) yazıyorum sonuç gelmiyor gelse işlem yapacak
    Oturum açılmadan session almaya çalışırsanız NULL değeri döner diye biliyorum.
  • 31-05-2015, 23:07:37
    #5
    if( $_SESSION['login'] === true ) {
        // Burayı sadece giriş yapan görebilir
        if( $_SESSION["yetki"]) >= $izin ) {
             // Burayı hem giriş yapmış hemde yetkili kişi görebilir
        } else {
             // Burayı giriş yapmış ama yetkisi olmayan kişi görebilir
        }
    } else {
        // Burayı giriş yapmayanlar görebilir
    }
    Ayrıca kodlarını bilmediğim için söylüyorum herhangi bir sayfaya erişince yetki ve login değeri tanımlı değilse onları kontrol etmende fayda var. Yani
    if(!isset($_SESSION['login'])
        $_SESSION['login'] = false;
    if(!isset($_SESSION['yetki']))
        $_SESSION['yetki'] = 0;
  • 01-06-2015, 02:59:16
    #6
    sessionu doğru kullandığınıza eminmisiniz ?
    İnceleyin bi isterseniz;
    http://www.phpr.org/php-session-oturum-yonetimi/
  • 01-06-2015, 09:54:28
    #7
    Üyeliği durduruldu
    Session başlatılmadıysa komutunu kullanmalısın.
  • 01-06-2015, 11:29:21
    #8
    header.php dosyam

    <?php
    session_start();
    ob_start(); ?>
    session giriş yapılsada yapılmasada bu durumda açık.

    giris.php dosyam
    $kullanici_adi = mysql_real_escape_string($_POST["kullanici_adi"]);
    $parola = md5(mysql_real_escape_string($_POST["parola"]));
    $referrer = $_POST["referrer"];
    
    $sorgula = mysql_query("SELECT * FROM Yazarlar WHERE yazar_adi='$kullanici_adi' and parola='$parola'") or die (mysql_error());
    
    $uye_varmi = mysql_num_rows($sorgula);
    if($uye_varmi > 0)
    {
    
    $yetkili=mysql_fetch_array($sorgula);
    
    $yetki=$yetkili['yetki'];
    
    $_SESSION["giris"] = "true";
    $_SESSION["kullanici_adi"] = $kullanici_adi;
    $_SESSION["parola"] = $parola;
    $_SESSION["yetki"] = $yetki;
    
    setcookie("kullanici_adi",$kullanici_adi,time()+60*60*24);
    setcookie("parola",$parola,time()+60*60*24);
    setcookie("yetki",$yetki,time()+60*60*24);
    
    
    header("Location: $referrer");
    }
    
    else
    şeklinde. yazım kalitesi tartışılır ama şimdilik işimi görüyor. giriş yapıldığında $yetki değeri kaçsa (1-2-3) onu session a yolluyorum.

    daha kontrol.php dosyam yok orayı inşaa etmeye çalışıyorum.

    giriş yapıldı yetki değeri alındı şimdi herhangi bir post sayfama girdim. veritabanında her post için ayrıca bir izin değerim var.(0-1-2)

    if (($_SESSION["yetki"]) >= $sonuc['izin'] ) {
    						
    						echo "yetkilisin";
    						
    						}else{
    						
    						echo "yetkisizsin"; 
    						
    						}
    şeklinde bir kontrol yaptım, login olduğumda sorun yok. ama bazı postların izin değeri 0 onuda login olmayanlar okuyabilsin diye düşündüm. mesela hurriyet.com.tr de haberleri giriş yapmadan okuyabilirsiniz ama köşe yazarlarının yazılarını okumak için login olmanız gerekir.

    takıldığım nokta bu oldu

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 11:29:21 -->-> Daha önceki mesaj 10:26:49 --

    Sable adlı üyeden alıntı: mesajı görüntüle
    Ayrıca kodlarını bilmediğim için söylüyorum herhangi bir sayfaya erişince yetki ve login değeri tanımlı değilse onları kontrol etmende fayda var. Yani
    if(!isset($_SESSION['login'])
        $_SESSION['login'] = false;
    if(!isset($_SESSION['yetki']))
        $_SESSION['yetki'] = 0;
    bu şekilde çalıştı. girişi kontrol ettirmedim direk yetki yi kontrol ettirdim. yetkisi 0 olan postta yetkilisin, yetkisi 1 olan postta yetkisizsin dedi. bu da istediğim şey

    teşekkür ederim
  • 01-06-2015, 16:15:49
    #9
    session start?