• 29-11-2012, 10:38:52
    #1
    Merhaba arkadaşlar ufak bir sorunum var
    Sayfa/1/Yazi > VAR
    Sayfa/1/Deneme > YOK

    Burada yapmak istediğim şey hem id hemde o id'ye sahip olan başlığı kontrol ettirmek eğer 1inci id'ye sahip deneme adında bir başlık yok ise bunu hata olarak göstersin istiyorum id kısmı tamam fakat başlık kısmını yapamadım bir türlü
    Kodlarım şöyle

    <?php
    $id=(mysql_real_escape_string(abs(intval($_GET['id']))));
    $baslik=intval($_GET['baslik']);
    if(!is_numeric($id))  { die('hata');}
    if(!is_numeric($baslik))  { die('hata');}
    $sonuc = mysql_query("select * from tabloadim WHERE id='$id' AND baslik='$baslik'")or die ('hata');
    if(@mysql_num_rows($sonuc) <= 0)
    {
    echo '<div class="Uyari"><h2>Uyarı !!!</h2><br />Böyle bir sayfa yok hatalı giriş yaptınız.<br/>Lütfen anasayfa üzerinden tekrar erişim sağlayınız...!</div>';
    }
     
    ?>
  • 29-11-2012, 10:48:13
    #2
    Üyeliği durduruldu
    neden böyle birşey yapıyorsun
    neden yoruyorsun veritabanını
  • 29-11-2012, 10:49:22
    #3
    Nasıl Yoruyorum ? id ve baslik kontrolu icin mi diyorsunuz ?
  • 29-11-2012, 11:02:55
    #4
     echo "select * from tabloadim WHERE id='$id' AND baslik='$baslik'"
    şunu direk ekrana yapiştirsana sorgu nasil gidiyor.
  • 29-11-2012, 11:22:07
    #5
    neptun adlı üyeden alıntı: mesajı görüntüle
     echo "select * from tabloadim WHERE id='$id' AND baslik='$baslik'"
    şunu direk ekrana yapiştirsana sorgu nasil gidiyor.
    tamam deniyorum hemen
    Edit : Ekran Çıktısı
    select * from tabloadim WHERE id='1' AND baslik=''
    select * from tabloadim WHERE id='1[L,NC]' AND baslik=''

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 11:22:07 -->-> Daha önceki mesaj 11:04:42 --

    Yardımlarınızı bekliyorum konu günceldir.
  • 29-11-2012, 11:22:27
    #6
    Üyeliği durduruldu
    D62 adlı üyeden alıntı: mesajı görüntüle
    Nasıl Yoruyorum ? id ve baslik kontrolu icin mi diyorsunuz ?
    int değerlerin dönüşleri daha hızlıdır
    id ve baslik sorgusu yapmak 2 kat yük getir
    madem ikisini sorgulayacaksınız baslık kısmını sorgulayın sadece
  • 29-11-2012, 11:40:27
    #7
    BHCoder adlı üyeden alıntı: mesajı görüntüle
    int değerlerin dönüşleri daha hızlıdır
    id ve baslik sorgusu yapmak 2 kat yük getir
    madem ikisini sorgulayacaksınız baslık kısmını sorgulayın sadece
    baslik kismini sorgulamak istedim tek basina fakat sorgulamadi sonradan id ile sorgulamak istedim 2 saatten fazla bu basit sey ile ugrasiyorum ama halen cozmus degilim nedense

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 11:40:27 -->-> Daha önceki mesaj 11:25:38 --

    <? echo "select * tabladim WHERE id='$id'";?>
    id baslik adinin ciktisini veriyor
  • 29-11-2012, 12:29:19
    #8
    Kimlik doğrulama veya yönetimden onay bekliyor.
    D62 adlı üyeden alıntı: mesajı görüntüle
    tamam deniyorum hemen
    Edit : Ekran Çıktısı
    select * from tabloadim WHERE id='1' AND baslik=''
    select * from tabloadim WHERE id='1[L,NC]' AND baslik=''

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 11:22:07 -->-> Daha önceki mesaj 11:04:42 --

    Yardımlarınızı bekliyorum konu günceldir.
    burdan baktığımızda ekran cıktısı id='1[L,NC]' olarak gorunuyor ki muhtemelen htaccess'inde bir sıkıntı var gibi.. urlden gelen değere atama yaparken eksik veya yanlış yaptığın birşey var gibi gorunuyor htaccessini kontrol etmeni öneririm.
    id zaten unique olduğu için (Olması gerekli)
    select * from tablo where id=$id seklinde bir sorgu ile o id'ye ait veriyi alirsin ki buna birde baslik eklemek @BHCoder'inde dediği gibi hem performans kaybına neden olacak hemde sabit bir id'ye ait veriyi basliklada karsilastirmak yapmak istediğini anladığım kadarı ile gereksiz.

    İlk mesajındaki

    if(!
    is_numeric($baslik)) { die('hata');}
    bu alan eğer baslik bildigimiz turden bir basliksa zaten sistemin hata vererek calismayi durduracaktır.

    $id = (int)$_GET['id'];
    if(empty($id)){
    header("HTTP/1.0 404 Not Found");
    }else{

    $query = mysql_query("select * from tablo where id=$id") or die(mysql_errır());
    bla bla bla

    }

    seklinde bir islem yaparsan sql sorgunda bir hata var ise sana sql hatanida gormene yardımcı olacaktır.
  • 29-11-2012, 22:48:57
    #9
    Cevaplar icin tesekkur ederim hepinize
    id ve ona sahip baslik kontrolu neden gereksiz anlamis degilim
    tamam sadece id kontrolu calisiyor sorun yok burada

    sayfa/1/deneme.html
    bu sekilde baslik yok fakat icerik varmis gosteriyor
    sayfa/1/jsjkdkdkdkd.html yine icerik var
    benim istedigim bu sekilde bir baslik yok ise gecerli id'ye sahip
    hata versin bu idye sahip boyle bir baslik yok desin olay bu kisacasi

    ama neden.sizlere gereksiz ve sacma geliyor anlamis degilim
    Bazi sitelerde var buna benzer link kontrolleri?