• 20-10-2009, 00:40:00
    #1
    Üyeliği durduruldu
    S.a Arkadaşlar Çok tartışıldı Birde ben anlatayım Faydası olur İnş.

    Bu Uygulamada Php İle Arama Motoru Dostu Linkler Konusunu Göreceğiz.
    Özellik Olarak Başlıklarımızda ID Olamadan İşlem Yapacağız.Örnek : konu-basligi.html
    Sef Linkler Diye Tabir Edilen Uygulama htaccess Dosyasından Faydalanılarak Yapılmaktadır.Örneğimize Burada Dikkat edilmesi Gereken Olay sef_title Sutunu UNIQUE Yani Eşsiz Olaması Gerekmektedir.Ayarlarınızı Bu Doğrultuda Yapınız.Sef title Girişi Yaparken Türkçe Karakterlerden ve Boşluklardan Arındırmanız Gerekmektedir.
    Geçiyoruz Veritabanı Oluşturuyoruz



    Daha Sonra Klasik Veritabanına Bağlanıyoruz.

    $mysqlhost ="localhost";
    $mysqluser ="root";
    $mysqlpass ="";
    $dbname ="veritabanı";
    $connectoguz = mysql_connect($mysqlhost,$mysqluser,$mysqlpass) or die ("Mysql Bağlantı Hatası");
    mysql_select_db($dbname,$connectoguz) or die ("Veritabanı Bağlantı Hatası");
    mysql_query("SET NAMES 'latin5'");
    Evet Veritabanımızı Bağlandıktan Sonra Sabit 2 Değişken Oluşturuyoruz.

    •Sitemizin Titlesi
    •Sitemizin Url Adresi

    $site_title ="Php İle Arama Moturu Dostu Linkler";
    $site_url =http://localhost/
    Evet Buraya Kadar Herşey Normal Diğer Kodlamamızda İse Değişen Fazla Birşey Yok Normalde ID String değişken yollarken biz sef_title şeklinde string değişkenimizi Yollayacagız.Şimdi Verilerimizi Listeliyoruz

    $sql= "Select * From articles order by id desc";
    
    $query=mysql_query($sql);
    
    while($result=mysql_fetch_assoc($query)){
    
    $title =$result['title'];
    
    $date =$result['date'];
    
    $sef_title =$result['sef_title'];
    
    $articles =substr($result['articles'],0,650);}
    Verilerimizi While Döngüsü İçerisinde Listeliyoruz Burada Dikkat edilmesi Gereken olay linklerimiz Şu şekilde Olacak.$site_url/$sef_title.html Yani String olarak biz sef_titleyi Gönderiyoruz.Ve Şimdi Bu Linkimiz Çalışması İçin htaccess Dosyası Oluşturuyoruz.

    Options +FollowSymLinks
    
    RewriteEngine On
    
    ReWriteRule ^(.*).html index.php?Ogz=Oku&id=$1 [L,NC]
    Evt dosyamızı Oluştırduktan Sonra Ayrıntıları Listeleyeceğimiz Sayfadaki İşlemlere geçiyoruz.

    $id = $_GET['id'];
    
    $sql= "Select * From articles where sef_title='$id'";
    
    $query=mysql_fetch_assoc(mysql_query($sql));
    
    $title =$query['title'];
    
    $date =$query['date'];
    
    $sef_title =$query['sef_title'];
    
    $articles =$query['articles'];
    
    echo "<h2><a href='$site_url/$sef_title.html'>$title</a></h2><div class='date'>$date</div><br />
    
    $articles <br /><br />";
    Görüldüğü Gibi Get Metodu ile String Olarak Gönderdiğimiz ID Yani sef_titleyi Aldık ve Sql Sorgumuzda Diziye Atama Yapıp.İşlemi Gerçekleştirdik.Linkimizde ID numarası İçermeden Arama Motoru Dostu Linkler Yapmış Olduk .Aynı şekilde Sitenizin Tüm İçeriğini Bu Yöntem İle Yapabilirsiniz.

    Uygulama Demo
    Kaynak Kodlar

    Kolay Gelsin

    Orjinal makaleyi Aşağıdan takip edebilirsiniz.
    http://www.oguzkoc.com.tr/php-arama-...u-linkler.html
  • 20-10-2009, 02:41:21
    #2
    Üyeliği durduruldu
    eline sağlık çok aranan konulardan biri bu sanamı ayit alıntımı bu kardeş
  • 20-10-2009, 04:36:27
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    medya adlı üyeden alıntı: mesajı görüntüle
    eline sağlık çok aranan konulardan biri bu sanamı ayit alıntımı bu kardeş

    Ya ne yapacaksın birader, sabah sabah git uyu biraz ) Paylaşım güzel teşekkürler.
  • 20-10-2009, 05:51:24
    #4
    Üyeliği durduruldu
    ibryas adlı üyeden alıntı: mesajı görüntüle
    Ya ne yapacaksın birader, sabah sabah git uyu biraz ) Paylaşım güzel teşekkürler.
    daha sabah olmadı
  • 20-10-2009, 09:01:17
    #5
    Üyeliği durduruldu
    dip not olarak sef linkler alaninin index olmasi optimizasyon acisindan cok onemli.
  • 20-10-2009, 09:21:26
    #6
    kullanılması taraftatı değilim
  • 20-10-2009, 11:02:54
    #7
    Üyeliği durduruldu
    RedZ adlı üyeden alıntı: mesajı görüntüle
    kullanılması taraftatı değilim
    Neden?
  • 20-10-2009, 11:09:03
    #8
    sonuç olarak küçük ama ilerleyen zamanlarda promlem olucaktır, site içi aramalarda eşleştirmelerde, aynı anda çok fazla kullanıcın olduğu anlarda, yani id siz olması bir özellik deyil bir çeşit kasıntıdır. şimdi benim bu dediğimin aksini idda edenlerde olucaktır, fakat sayısal olan bir işlem diğer tüm işlemlerden daha hızlıdır.

    sırf sef yapıcaz diye bu şekilde bir uygulamayı hiç tasvip etmiyorum nitekim birkaç sütündan veri çekileceği anlarda olucaktır bunun için sef_title ne kadar sağlam olucaktır ?

    site.com/14/konu.html
    site.com/14-konu.html
    site.com/14/konu/
    şeklinde yapılabilinir
  • 20-10-2009, 11:14:14
    #9
    Üyeliği durduruldu
    Vinsanity adlı üyeden alıntı: mesajı görüntüle
    Neden?
    indexte olsa büyük datalarda sorun oluşturacak bir yaklaşık olduğu için. sonuçta düşünün where adi = 'suleyman' mi daha hizlidir. yoksa where adi = 40 m u daha hizlidir.

    arada kombinasyon sayisi olarak bile baktiginizda performans acisindan fark olur.

    Bu acidan sunucuya daha fazla yuklenecegi icin cok tavsiye edilmiyor. Dusuk datali siteler yada az hitli siteler icin ama ise cok problem degil. ozellikle sef alaninin kesinlikle sql de index olarak tanimlanmasi gerekiyor