• 13-10-2013, 15:28:18
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaşlar,
    oturum kontrolü yapmak istiyorum fakat bir sorunla karşı karşıya geliyorum.
    <?php
      $baglan = mysql_select_db("oturum",mysql_connect("localhost","root")) or die("Bağlanamadı");
    session_start();
    
    if($_POST){
    $kadi	=	$_POST['kadi'];
    $sifre	=	$_POST['sifre'];
    
    $bul	=	mysql_query("select * from uye where kadi='$kadi' && sifre='$sifre'");
    $say	=	mysql_num_rows($bul);
    if($say > 0) {
    $goster	=	mysql_fetch_array($bul);
    $_SESSION["oturum"] = true;
    $_SESSION["kadi"]	=	$kadi;
    $_SESSION["sifre"]	=	$sifre;
    $_SESSION["eposta"]	=	$goster['eposta'];
    $_SESSION["rutbe"]	=	$goster['rutbe'];
    $_SESSION["id"]		=	$goster['id'];
    exit();
    }
    else{
    echo "giriş başarısız";
    }
    
    }
    
    else{
    if(isset($_SESSION["oturum"])){
    echo "sa".$_SESSION["id"]."";
    
    }
    if(!isset($_SESSION["oturum"])){
    	echo '<form action="" method="POST">
    	<table cellpadding="5" cellspacing="5">
    	<tr>
    	<td>Kullanıcı Adı:</td>
    	<td><input type="text" name="kadi"/></td>
    	</tr>
    	<tr>
    	<td>Şifreniz:</td>
    	<td><input type="password" name="sifre"/></td>
    	</tr>
    	<tr>
    	<td><input type="submit"/></td>
    	</tr>
    	</table>
    	</form>';
    	}
    }
    ?>
    ben üye girişi yapmak istediğimde isset in olduğu kısmın çalışmasını istiyorum fakat ilk giriş yapıldığı sırada sessionların olduğu bölüm çalışıyor,adres çubuğundan entera basıp yenilediğimde ise issetin olduğu kısım çalışıyor,
    sizce sorun ve çözümü nedir?
  • 13-10-2013, 20:36:13
    #2
    Gayet normal. Herhangi bir yeniden yönlendirme yapmamışsın. If($_POST) kısmında sayfayı yenilemek gerekiyor. Bunun için header() fonks. kullanabilirsin.
  • 13-10-2013, 20:57:01
    #3
    @farukbugur arkadaşımızında dediği gibi ilk giriş yaptığında sesionda tanımsız olacak bunun için isset çalışacak ve tanımlayacak ancak ilk girdiğinde tanımsız dedi için isset e girecek sayfanı tekrar yenilediğinde bu sefer tanımlı olduğu için isset çalışmayacaktır girişten sonra ufak bir yazı yazıp tekrar sayfanı yenilersen giriş yaptığı gözükecektir...
  • 14-10-2013, 11:51:15
    #4
    Her ikinize de çok teşekkürler
    header("Location:index.php");
    ile tekrar index'e döndürdüm,bu şekilde çalıştı.

    Bu arada başka bir problem daha var,aslında problem değil de gözüme takılıyor.

    Şimdi bir üyenin update ile avatarını değiştiriyorum,
    <img src='".$_SESSION['avatar']."' height='150' width='150'/>
    bu şekilde giriş yapan kişinin avatarını çekiyorum,değiştirilen avatar phpmyadmin de değişmiş gözüküyor,
    fakat sayfada anında değişmiyor,çıkış yapıp tekrar girdikten sonra sayfa da değişmiş oluyor.
    Bunun için ne yapmalıyım?
  • 14-10-2013, 12:08:21
    #5
    avatari session yerine direk db den alabilirsin.

    Ama eger sessiondan alinacaksa , update isleminden sonra sessin degerlerini de degistirmelisin.
  • 14-10-2013, 12:17:29
    #6
    uysal_rockci adlı üyeden alıntı: mesajı görüntüle
    avatari session yerine direk db den alabilirsin.

    Ama eger sessiondan alinacaksa , update isleminden sonra sessin degerlerini de degistirmelisin.
    ama ben giriş yapan kişinin avatarını gösteriyorum.
    db den nasıl çekeceğim?

    WHERE id=$_SESSION['id'] şeklinde mi çekmeliyim?
  • 14-10-2013, 12:33:08
    #7
    AlprTbk adlı üyeden alıntı: mesajı görüntüle
    ama ben giriş yapan kişinin avatarını gösteriyorum.
    db den nasıl çekeceğim?

    WHERE id=$_SESSION['id'] şeklinde mi çekmeliyim?
    evet eğer id sini tanımlamışsan o şekilde çekebilirsin veya sessionda ne tanımlamışsan onu kullanarak bulabilirsin
  • 14-10-2013, 12:54:32
    #8
    AlprTbk adlı üyeden alıntı: mesajı görüntüle
    ama ben giriş yapan kişinin avatarını gösteriyorum.
    db den nasıl çekeceğim?

    WHERE id=$_SESSION['id'] şeklinde mi çekmeliyim?

    evet o şekilde de yapabilirsiniz ya da ,

    UPDATE işleminin yapıldığı satırın altına ,
    $_SESSION["avatar"]= "yeni avatar linki";

    gibi bir tanımlama ile varolan session bilgisini de değiştirebilirsiniz.
  • 14-10-2013, 13:15:45
    #9
    uysal_rockci adlı üyeden alıntı: mesajı görüntüle
    evet o şekilde de yapabilirsiniz ya da ,

    UPDATE işleminin yapıldığı satırın altına ,
    $_SESSION["avatar"]= "yeni avatar linki";

    gibi bir tanımlama ile varolan session bilgisini de değiştirebilirsiniz.
    yeni avatar linki kısmına ne gelicek peki?