• 09-01-2011, 03:27:02
    #1
    Merhaba arkadaşlar
    Kendi sunucumda çalışan session değerleri farklı bir sunucu da çalışmadı.
    Öncelikle

    index.php sayfamda şöyle bir switch tagım var.

    switch ($s)
    	{
    	case '12':	
    	$sql="SELECT menu_detay,id from menu where id='$s' limit 0,1";
        $sorgu=mysql_query($sql) or die(mysql_error());
        $menu=mysql_fetch_array($sorgu);
    echo stripslashes($menu['menu_detay']);
    	break;
    
    	case 'alk' :
    	include("iletisim.php");
    	break;
    	
    	case 'userduzen' :
    	include("userduzenle.php");
    	break;
    			
    		default:
      include('slider.php');
     	break;
    	}
    ben bu sayfadaki sesison değişkenlerini görmek için

    <?php print_r($_SESSION);?>
    yukarıdaki kodu yazdım.ilk giriş yaptığımda

    Array ( [giris] => 1 [id] => 5  )
    yukarıdaki gibi bana lazım olan [id] session değeri 5 oluyor.

    Ama ben üye girişi yapınca açılan menüdeki.
    <a href="index.php?s=userduzen" >Üye düzenle</a>
    ye tıklayınca garip bi şey oluyor ve benim session değerlerim şu şekle dönüyor.
    Array ( [giris] => 1 [id] => userduzen )

    Ha bunu kontrol eden ve session atayan kontrol sayfamı da paylaşayım arkadaşlar.Yani orda s değişkenine sessiın atayan bişeler de yok.

    <?php
    session_start();
    if($_POST[action]=='do_login')
    {
    if(!$_POST['username'] || !$_POST['password'])
    {
    echo "<script>alert(\"!Kullanici Adi ve Sifre girmelisiniz.\")</script><script type=\"text/javascript\">window.location=\"index.php\"</script>";
    exit;
    }
    $sitegiris = $_POST['username'];
    $sitesifre = $_POST['password'];
    $sitesifre=md5($sitesifre);
    $sitegiris = str_replace("<","&lt;",$sitegiris);
    $sitegiris = str_replace(">","&gt;",$sitegiris);
    $sitesifre = str_replace("<","&lt;",$sitesifre);
    $sitesifre = str_replace(">","&gt;",$sitesifre);
    $kayitgiris=mysql_query("SELECT id,username,password,onay FROM uyelik WHERE username='$sitegiris'");   
    $resultgiris = mysql_query("SELECT COUNT(*) FROM uyelik WHERE username='$sitegiris'");
    if($resultgiris)
    {
    $vargiris=mysql_fetch_row($resultgiris);	
    }
    else{
    $vargiris[0]=0;
    }
    if($vargiris[0]>0)
    {
    while($listele=mysql_fetch_row($kayitgiris))
    {
    $uyepassword=$listele[2];
    
    if($uyepassword==$sitesifre)
    {
    
    
    $_SESSION[giris]=1;
    $_SESSION[id] = "$listele[0]";
    $_SESSION[username] = "$listele[1]";
    }
    else
    {
    $_SESSION[giris]=0;
    }
    
    }
    
    }
    else{
    $_SESSION[giris]=0;
    }
    
    }
    if($_GET['action']=='cikis')
    {
    $_SESSION[giris]=0;
    $_SESSION[id] = '';
    echo "<script>window.top.location.href = 'index.php';</script>";
    }
    $oturum[giris]=$_SESSION['giris'];
    $uyeid = $_SESSION['id'];
    $username=$_SESSION['username'];
    
    
    ?>
    Ve işin tuhafı benim sunucumda sorun yok ama başka sunucuya atınca session kafayı yiyor.
    Bu arada
    • session_start() yapıyorum.
    • session_save_path() denedim ama () <--- bunun içinene yazacağımı tam anlamadım.
    • php.ini ye yetki verilmemiş ulaşamıyorum yani ini de bir değişklik de yapamıyorum.

      Önerileirnizi bekliyorum.
      Saygılar
  • 09-01-2011, 04:27:44
    #2
    Uzun araştırmlarım sonucunda kısa bir bilgiye ulaştım burda paylaşayım da belki aynı sorunu yaşayanlar uğraşmamış olur diye düşündüm.

    Arakadaşlar php.ini de ki safe_mod=off durumda olmazsa session işlerinde hatalar çıkabiliyor bu bir güvenlik önlemi olup varsayılan olarak açık konumda geliyor yetkiniz varsa php ayarlarından siz kapatın yoksa da yetkililere durumu bildirin.
  • 09-01-2011, 10:55:44
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    İlginç, muhakkak bir yerde bir atama vardır. Tüm session bilgilerinde id değerlerini kontrol etmek gerekiyor. Kod yapılarında id'ye bir yerden sıçrama var. Adım adım kontrol etsene her atamadan sonra echo ile dönen değere bir bak derim. Mutlaka çözeceksindir. Hatanın nerede olduğunu bizimlede paylaşırsan seviniriz.
  • 09-01-2011, 15:22:59
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    $_SESSION[giris]=0;

    Globallerin kullaniminin dogru sekli;

    $_SESSION['giris']=0;

    Bunlarin duzeltmesini yapip tekrar denermisin ayni hata iLe karsiLascakmisin?

    <kd> GüvenLik Konususundada Biraz Daha Araştırma Yapmanda Fayda Var..</kd>
  • 11-01-2011, 14:42:07
    #5
    Üyeliği durduruldu
    birde session'a id değeri atama yani ya uyeID de yada başka birşey id diye atarsan ara ara ne olduğunu anlayamadan yükselir veya düşer.