• 09-05-2009, 15:34:02
    #1
    Arkadaşlar aşağıdaki kodlar bu şekilde çalışıyor.
    Ancak PHP düzeyim çok düşük. Bu şekilde bir sorun var mı?
    Uyarı ve önerileriniz bana yardımcı olacaktır.


    ÜYE GİRİŞİ:
    <?
    session_start();
    	 if(!isset($uye))
    	{
    		session_unregister("user");
    		session_destroy();
    	}
    	 if ($uye && $sifre)
    	{
    		require("configuration.php");
    		$sql_sorgu="SELECT * FROM users WHERE uye_adi='$uye' AND sifre=old_password('$sifre')";
    		$sonuc=mysql_query($sql_sorgu,$baglanti);
    		if($sonuc==""){echo("Yanlış Sorgu = $sql_sorgu");}
    		$veri=mysql_fetch_array($sonuc);
    		if( mysql_num_rows($sonuc) > 0 && $veri[statu]==2)
    	  {
    		$user=$uye;
    		session_register("user");
    		Header("Location:uye_paneli.php");
    	  }
    	   if( mysql_num_rows($sonuc) > 0) $hata=1;else $hata=0;
    	}
    ?>
  • 09-05-2009, 16:44:20
    #2
    Üyeliği durduruldu
    sql e gönderilen ifadelerde mysql_real_escape_string kullanılsa iyi olur
  • 10-05-2009, 19:14:49
    #3
    Tamam buna uyarım hocam.
    Bunun dışında bir uyarı veya önerisi olan arkadaş yok mu?
  • 11-05-2009, 12:54:10
    #4
    Hocam bu bölümde:

    AND sifre=password('$sifre')  AND statu=2 ";
    şeklinde yapan bir arkadaş var, bir de orda statüyü sorgulatmayıp hemen altında :

    if( mysql_num_rows($sonuc) > 0 && $veri[statu]==2)
    şeklinde sorgulatan bir arkadaş var.

    Hangisi daha güvenli, daha avantajlı (üye girişlerinde) ?

    NOT:
    Benim üyelerim onlarca yazardan oluşacak ve hepsi de pek çok makale, öykü ve şiirlerini yayınlayabilecek. O nedenle güvenlik sorunum bir kat daha fazla.
  • 11-05-2009, 13:15:59
    #5
    mysql_num_rows Sunucuyu biraz daha fazla yoruyor gibi mesajlar okumuştum. Ne kadar doğru bilmiyorum

    if( mysql_num_rows($sonuc) > 0 && $veri[statu]==2)


    Burda statüyü yine sorgulatıyor $sonuc 0'dan büyükse veya (&&) $veri[statü] 2'ye eşitse diye kullanılmış.

    İkisinin arasındaki fark üsttekinde "ve" (Her ikiside eşitse) alttakinde "veya" (iksinden biri eşitse) kullanılmış.
  • 11-05-2009, 13:43:29
    #6
    Üyeliği durduruldu
    star2218 adlı üyeden alıntı: mesajı görüntüle
    mysql_num_rows Sunucuyu biraz daha fazla yoruyor gibi mesajlar okumuştum.
    tüm result set i almaya çalıştığı için ilk başta yüksek verilerde veri sayısını kontrol için uygun degil. yoksa kayıt sayısının 1 dönecegine yada 0 dönecegine emin olduğunuz id ye göre yada kullanıcı adına göre çekme gibi işlemlerde bir sorun teşkil etmez
  • 11-05-2009, 13:45:20
    #7
    star2218 adlı üyeden alıntı: mesajı görüntüle
    mysql_num_rows Sunucuyu biraz daha fazla yoruyor gibi mesajlar okumuştum. Ne kadar doğru bilmiyorum
    Bu kayda değer bir bilgi.
    Umarım ustalar bir yorum getirirler.

    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    tüm result set i almaya çalıştığı için ilk başta yüksek verilerde veri sayısını kontrol için uygun degil. yoksa kayıt sayısının 1 dönecegine yada 0 dönecegine emin olduğunuz id ye göre yada kullanıcı adına göre çekme gibi işlemlerde bir sorun teşkil etmez
    Demiş bile