• 16-09-2009, 16:03:40
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhabalar,

    Artık MySQL'i yuttum

    Ben sayfalarımı fonksiyonlarla çekiyorum. Örneğin, index.php'min bir kısmı:

    			echo'
    				<div id="ortasol">';
    					switch(@$_GET['sayfa'])
    					{
    						default:
    							@anasayfa();
    							break;
    						case 'haberler';
    							@haber();
    							break;
    						case 'haber-goster';
    							@habergoster();
    							break;
    						case 'hileler';
    							@hileler();
    							break;
    						case 'hile-goster';
    							@hilegoster();
    							break;
    						case 'hile-sirala';
    							@hilesirala();
    							break;
    						case 'hile-gonder';
    							@hilegonder();
    							break;
    						case 'hilegonderbilgi';
    							@hilegonderbilgi();
    							break;
    						case 'iletisim';
    							@iletisim();
    							break;
    						case 'iletisimbilgi';
    							@iletisimbilgi();
    							break;
    					}
    	echo '
    				</div>

    Şimdi ben bunları index.php?sayfa=hile-sirala gibi çekiyorum. Ancak ben index.php?sayfa=hile-sirala&harf=xxx yapmalıyım ki id nosuyla hileyi çekeyim. Bunun için nasıl bir kodlama yapmam gerek? Yani nasıl &harf=xxx eklyebilirim, fonksiyonuma. Bu arada fonskiyonumu da vereyim:

    function hilesirala()
    {
    	$krktr = $_GET['harf'];
    	$sql = mysql_query("
    	SELECT * 
    	FROM hile
    	WHERE hile_baslik LIKE '$krktr%'");
    }
  • 16-09-2009, 16:10:32
    #2
    function hilesirala()
    {
    global $_GET;
    $krktr = $_GET['harf'];
    $sql = mysql_query("
    SELECT *
    FROM hile
    WHERE hile_baslik LIKE '$krktr%'");
    }

    yada arguman olarak belirt

    not:sql li çözdüm diyorsun fakat like nın sapıkça aramalar yaptıgını ögrenememişsin eger kullanmayı biliyorsan fulltext kullan (sql select * from
    update
    insert gibi 5 6 kelimelik birşey değil)
  • 16-09-2009, 17:38:22
    #3
    RedZ adlı üyeden alıntı: mesajı görüntüle
    function hilesirala()
    {
    global $_GET;
    $krktr = $_GET['harf'];
    $sql = mysql_query("
    SELECT *
    FROM hile
    WHERE hile_baslik LIKE '$krktr%'");
    }

    yada arguman olarak belirt

    not:sql li çözdüm diyorsun fakat like nın sapıkça aramalar yaptıgını ögrenememişsin eger kullanmayı biliyorsan fulltext kullan (sql select * from
    update
    insert gibi 5 6 kelimelik birşey değil)
    Teşekkür ederim yardımınız için. Sayenizde yapabildim. Ancak şunuda belitmeliyim ki bu verdiğim fonksiyon, direk verileri çekmiyor. Sapıkça aramalarda yapmıyor. En azından ben öyle sanıyorum :S Bununla baş harfi $krktr = $_GET['harf']; olan verileri çekiyorum.
  • 16-09-2009, 18:53:02
    #4
    yalnız get veya post ile gelen bir veriyi bu şekilde direk olarak mysql sorgunda kullanma sql enjeksiyon saldırılarına madur kalırsın.
  • 16-09-2009, 19:31:17
    #5
    MaviTm adlı üyeden alıntı: mesajı görüntüle
    yalnız get veya post ile gelen bir veriyi bu şekilde direk olarak mysql sorgunda kullanma sql enjeksiyon saldırılarına madur kalırsın.
    Nasıl bir sistem kullanmalıyım peki? HTML temizleme kodlarını falan mı kullanmalıyım?
  • 16-09-2009, 19:57:08
    #6
    en basit

    function hilesirala()
    {
    global $_GET;
    $krktr = mysql_real_escape_string($_GET['harf']);
    $sql = mysql_query("
    SELECT *
    FROM hile
    WHERE hile_baslik LIKE '$krktr%'");
    }

    mysql_real_escape_string() fonksiyonun kullanarak sorgulamada zararlı olacak karakterleri normal bir string değer gibi tanımlatabilirsin
  • 16-09-2009, 21:37:10
    #7
    Hım.. Teşekkürler. Bu benim ilk uygulamam. Henüz Bu tür fonksiyonları bilmiyorum. Öğreneceğim
  • 17-09-2009, 00:08:58
    #8
    mysql real escape string hiç bir işe yaramıyor tek yaptıgı tırnakların önüne bir slash koymak
  • 17-09-2009, 11:32:10
    #9
    RedZ adlı üyeden alıntı: mesajı görüntüle
    mysql real escape string hiç bir işe yaramıyor tek yaptıgı tırnakların önüne bir slash koymak

    evet o tırnakların önüne o slash lar gelmezse senine sitene admin olarak login olunulur o yüzden yat kalk o slash dua et