• 12-04-2013, 16:09:52
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Yaptığım bir sistemde twitter üzerinden giriş yapılıyor ve site içinde mesajlaşma sistemi yaptım, bir yandan yaparken bir yandan da zafiyet var mı açık var mı diye bakıyorum, bugün farkına vardım ki iki farklı browserda ayrı ayrı kullanıcı açınca, id değiştirdiğim takdirde gönderilen,alınan mesajlar gözüküyor, çözümünü bulamadım henüz nasıl yapacağımı, giriş yapılmadan özel alanların hiçbiri açılmıyor fakat dediğim gibi iki kullanıcı giriş yapınca gözüküyor, aşağıda kodları paylaştım, aslına kodun çalıştığı yerde gelen id ile session id sini karşılaştırıp basmayı denedim ama çalışmadı.

    <!-- Received Pm-->
    <div id="main">			
    <div id="content">	
    <div class="content-box">
    <div class="box-t">&nbsp;</div>
    <div class="box-c">	
    <div class="box-holder">			
    <div id="padingtop"></div>			
    <div class="post-26 coupon type-coupon status-publish hentry item">
    <div class="item-holder">
    <div class="item-frame">
    <?php
    session_start();
    require("baglan.php");
    
    $id=$_GET['id'];
    
    
    
    
    $degisken = $_SESSION['id'];
     
    if(!empty($degisken))
    {
    
    
    
    
    echo "<table cellspacing=\"1\" class=\"uzerinde\" id=\"golKrallari\" width=\"59%\" summary=\"PM\">"; 
    echo "<thead>";
    echo "	<tr>\n"; 
    echo "		<th scope=\"col\" abbr=\"adsoyad\" width=\"25\"><b>Sıra No</b></th>\n"; 
    echo "		<th scope=\"col\" abbr=\"adsoyad\" width=\"190\"><b>Teklif Veren Kişi</b></th>\n"; 
    echo "		<th scope=\"col\" abbr=\"adsoyad\"width=\"115\"><b>Tarih / Saat</b></th>\n"; 
    echo "		<th scope=\"col\" abbr=\"adsoyad\"  colspan=\"2\" >"; 
    echo "		<p align=\"center\"><b>İslemler</b></th>\n"; 
    echo "	</tr>\n"; 
    echo "	</thead>"; 
    $sor = mysql_query("select * from ozelmesaj where alanid='$id' order by pmno desc limit 20");
    $satir = 1;
    while ($pmal = mysql_fetch_array($sor)) {
    $veren=$pmal['teklifveren'];
    $zaman=$pmal['zaman'];
    $idno=$pmal['idsi'];
    $pmno=$pmal['pmno'];
    $okundu=$pmal['okundu'];
    
    
    
    
    echo "<tbody>";
    echo "	<tr>\n"; 
    echo "		<th scope=\"row\" abbr=\"03-04\" class=\"baslikBir\" width=\"25\">$satir</th>"; 
    echo "		<th scope=\"row\" abbr=\"03-04\" class=\"baslikBir\"><a href=\"index.php?icerik=profil&id=$idno\">$veren</a></th>\n"; 
    echo "		<td class=\"tabloZRFark\">$zaman</td>\n"; 
    echo "		<td class=\"tabloZRFark\">"; 
    echo "		<p align=\"center\"><a href=\"index.php?icerik=readpm&id=$pmno\">"; 
     
    
    if($okundu >0) 
    {
    echo "Okunmadı";
    }
    else 
    {
    echo "Okundu";
    }
    
    
     
     
     
    echo"</a></td>";
    echo "		<td class=\"tabloZRFark\">"; 
    echo "		<p align=\"center\"><a href=\"index.php?icerik=delete&id=$pmno\">Sil</a></td>\n"; 
    echo "	</tr>\n"; 
    echo "</tbody>";
    $satir++;
    }
    echo "</table>\n"; 
    echo "\n";
    
    
    }
    else
    {
        echo " <center><a class=\"fancybox fancybox.iframe\" href=\"login/index.php\"><img src=\"images/Login.png\" width=\"101\" height=\"100\"></a></center>";
    }
    
    ?>
    <div class="clear"></div>
    </div> 
    <div class="item-footer-bottom"></div>
    </div>
    </div>
    </div>
    <div class="top"><a href="#">Top &uarr;</a></div>
    </div>
    <div class="box-b">&nbsp;</div>
    </div>
    </div>
    <!-- Received Pm-->


    şu şekilde denedim yine çalışmadı acaba bu şekilde çalışmama sebebi nedir.


    session_start();
    require("baglan.php");
    
    $id=$_GET['id'];
    
    
    
    
    $degisken = $_SESSION['id'];
     
    if($degisken==$id)
    {
  • 12-04-2013, 16:14:47
    #2
    tam olarak anlayamadım. örneğin ben giriş yaptım. mesajlaşma sayfasında id=1 benim mesajım ise id=2 yaptığımda başkasının mesajını mı görüyorum? bumudur sorun?
  • 12-04-2013, 16:31:47
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    tam olarak anlayamadım. örneğin ben giriş yaptım. mesajlaşma sayfasında id=1 benim mesajım ise id=2 yaptığımda başkasının mesajını mı görüyorum? bumudur sorun?
    Sanırım $_SESSION['id'] değerini el ile değiştirdiği zaman, görmemesi gereken içeriği görüyor.
  • 12-04-2013, 16:34:37
    #4
    şimdi ben chrome da giriş yaptım gelen mesajları açtım,, tabii burda gelen mesajlarda id ye göre getiriyorum veritabanından, örnek id 5656, sonra başka browserde internet explorerda başka kullanıcı ile oturum açıyorum ve yine gelen mesajları açıyorum onun idsi de 8989 olsun, 8989 yerine diğer browserdaki 5656 yı yazınca ilk açtığım kullanıcıya ait gelen mesajlar,giden mesajlar gözüküyor, ama bir üçüncü farklı browserda giriş yapılmadan deneyince sorun yok, login ekranı geliyor.
  • 12-04-2013, 16:48:04
    #5
    Subaro adlı üyeden alıntı: mesajı görüntüle
    şimdi ben chrome da giriş yaptım gelen mesajları açtım,, tabii burda gelen mesajlarda id ye göre getiriyorum veritabanından, örnek id 5656, sonra başka browserde internet explorerda başka kullanıcı ile oturum açıyorum ve yine gelen mesajları açıyorum onun idsi de 8989 olsun, 8989 yerine diğer browserdaki 5656 yı yazınca ilk açtığım kullanıcıya ait gelen mesajlar,giden mesajlar gözüküyor, ama bir üçüncü farklı browserda giriş yapılmadan deneyince sorun yok, login ekranı geliyor.
    if else kullanabilirsiniz. sessiondan gelen id yada kullanıcı adı mesajdaki gelen yada gidene eşit değilse hata verdirirsiniz. eşitse mesajları listeletirsiniz.
  • 12-04-2013, 16:59:37
    #6
    PsdBul adlı üyeden alıntı: mesajı görüntüle
    if else kullanabilirsiniz. sessiondan gelen id yada kullanıcı adı mesajdaki gelen yada gidene eşit değilse hata verdirirsiniz. eşitse mesajları listeletirsiniz.
    O şekilde çalışmadı, $degisken = $_SESSION['id']; değişkenini sayfada yazdırdım yazıyor ama eşitmi değilmi işleminde çalışmıyor.

    session_start(); 
    require("baglan.php"); 
    
    $id=$_GET['id']; 
    
    
    
    
    $degisken = $_SESSION['id']; 
      
    if($degisken==$id) 
    {


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:59:37 -->-> Daha önceki mesaj 16:59:01 --

  • 12-04-2013, 17:13:21
    #7
    Subaro adlı üyeden alıntı: mesajı görüntüle
    O şekilde çalışmadı, $degisken = $_SESSION['id']; değişkenini sayfada yazdırdım yazıyor ama eşitmi değilmi işleminde çalışmıyor.

    session_start(); 
    require("baglan.php"); 
    
    $id=$_GET['id']; 
    
    
    
    
    $degisken = $_SESSION['id']; 
      
    if($degisken==$id) 
    {


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:59:37 -->-> Daha önceki mesaj 16:59:01 --

    Hocam id'yi de session'da tutun. Yani üye girişi yapılınca $_SESSION['id']= üyeidsi; şeklinde bir atama yapın. Mesajlar sayfanızda da otomatik olarak sorguda bu idyi kontrol ettirin.

    Şu sayfada anlatmak istediğimi daha iyi anlayacaksınız.

    http://pehepe.net/php-ile-uyelik-sis...giris-sayfasi/

    Giriş yapılınca üye idsini bir sessionda tutun. Örneğin $_SESSION['id'] gibi.

    Sonra mesajlar sayfasında

    $sorgu = mysql_query("SELECT * FROM mesajlar WHERE uyeid='{$_SESSION['id']}'");
    sorgusunu çalıştırın. Böylece hem GET'ten kurtulmuş olursunuz, hem de id bilgisinin değiştirilmesi kısmen zor hale gelir.
  • 12-04-2013, 17:57:35
    #8
    @erginkeles; in söylediklerine ek olarak, illa $_GET ile id değerini yakalamak istiyorsanız da, get ile gelen id değerinin, login olmuş kullanıcıya ait olup olmadığını sayfanın en üstünde kontrol ettirin. Eğer id o kullanıcıya ait değilse, farklı bir yere yönlendirin vs.
  • 12-04-2013, 17:58:54
    #9
    erginkeles adlı üyeden alıntı: mesajı görüntüle
    Hocam id'yi de session'da tutun. Yani üye girişi yapılınca $_SESSION['id']= üyeidsi; şeklinde bir atama yapın. Mesajlar sayfanızda da otomatik olarak sorguda bu idyi kontrol ettirin.

    Şu sayfada anlatmak istediğimi daha iyi anlayacaksınız.

    http://pehepe.net/php-ile-uyelik-sis...giris-sayfasi/

    Giriş yapılınca üye idsini bir sessionda tutun. Örneğin $_SESSION['id'] gibi.

    Sonra mesajlar sayfasında

    $sorgu = mysql_query("SELECT * FROM mesajlar WHERE uyeid='{$_SESSION['id']}'");
    sorgusunu çalıştırın. Böylece hem GET'ten kurtulmuş olursunuz, hem de id bilgisinin değiştirilmesi kısmen zor hale gelir.


    Doğru mu oldu yanlış mı oldu bilmiyorum ama sizin dedikleriniz gibi yaptım sanırım, problem çözüldü gibi, tüm mesajlaşmalarla ilgili sayfalara düzeltince tekrar geri dönüş yapacağım, teşekkürler.