• 13-07-2008, 17:49:50
    #1
    veritabanından arama yaptırıyorum ve arama get ile siteadi.com/ara.php?oku=Ahmet Soyadı şeklinde arattırıyorum. Sonucumuda alıyorum buraya kadar herşey tamam ama tek sorun siteadi.com/Ahmet Soyadı.html şeklinde arattırmak istiyorum ama hiç birşekilde olmuyor.

    Options +FollowSymLinks 
    RewriteEngine on 
    RewriteRule ^(.*).html konum.php?oku=$1 [L]

    .htaccess ile düzenledim yine olmadı.
    Başka bir örnek ise siteadi.com/ara.php?=mehmet Yani tek kelimeli birisini arattırdığımda sonucu alıyorum hem o şekilde hemde siteadi.com/mehmet.html şeklinde fakat 2 kelimeli veya türkçe karakterli aramalarda bi türlü sonuç alamıyorum Sebep nedir arkadaşlar yada yapabileceklerimiz nelerdir ?
  • 13-07-2008, 17:53:15
    #2
    Ad Soyad formatında çalışmamasının sebebi sen arada "space" karakteri koyduğun zaman o url içerisinde %20 ye dönüşecektir. Php ise ad%20soyad şeklinde arama yaptığı için sonuç bulamayacaktır.. Muhtemel sorun burda oluşuyor. Çözümü ise konum.php içerisinde str_replace ile o karakterden kurtulup onu space e çevirmek
  • 13-07-2008, 17:57:33
    #3
    Yok düşündüm ve o şekilde arama yapıyor yani
    $kelime = str_replace(" ","%20",$ara);

    replace ile düzeltiyorum normal olarak arıyor tek sorun html ile arama yaptığımda aramıyor
  • 13-07-2008, 18:52:46
    #4
    arama kısmında kullandığın kodu yazabilir misin ?
  • 13-07-2008, 18:59:39
    #5
    Olayın mantığından bahsedeyim.

    Forma yazılan kelimeyi yonlendir.php'ye göndeririz. Burada kelime TR karakterden temizlenir ve arama-sonuc.php'ye gönderilir. .htaccess ile arama-sonuc.php'ye rewrite yapıp "/sonuc/arama-kelimemiz.html" şeklini vermeniz halinde script çalışır.

    Kod var elimde yapamıyorsan PM at göndereyim.
  • 13-07-2008, 19:09:33
    #6
    froNau linki yapmak çok basit. Linki yapıyoruz sorun linkde değil sorun aramada İçinde "ismi soyadı" diye bir kelime olsun senin söylemenle bunu çevirip ismi-soyadi olarak çevireceksin böyle ararsan hiç bulamayacak :S



     <?
    echo'';
    include("aynasiz.php");
    if($_GET){ 
    $kelime = mysql_real_escape_string($_REQUEST['oku']);
    $result = mysql_query("SELECT * FROM sozler WHERE (kategori LIKE '%$kelime%'  ) ");
    $bulunan=0;   
    while($r=mysql_fetch_array($result))  
    {       
       $bulunan++;  
    $yazar = $r['yazar'];
    $soz = $r['soz'];
    $tarih = $r['tarih'];
    $kategori = $r['kategori'];
    arama kodu.
  • 13-07-2008, 20:26:48
    #7
    Eposta Aktivasyonu Gerekmekte
    // $kelime = strtolower($kelime) 
    // $kelime = ucfirst($kelime) 
    $kelime = str_replace(" ","-",$kelime);
    $kelime = str_replace("ö","o",$kelime);
    $kelime = str_replace("'","-",$kelime);
    gibi...
  • 13-07-2008, 21:41:22
    #8
    Ntie gelen değişkeni şu fonksiyondan geçirip dener misin acaba ?

    function SeoLink($text){
    	$tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç');
    	$eng = array('s','S','i','I','g','G','u','U','o','O','C','c');
    	$text = str_replace($tr,$eng,$text);
    	$text = eregi_replace('[^0-9A-Za-z]',"-",$text);
    	$text = preg_replace("@--*@","-",$text);
    	return strtolower($text);
    }
  • 14-07-2008, 03:38:04
    #9
    Arama formun
    Alıntı
    <form method="get" action="ara.php">
    <input type="text" name="kelime">
    <input type="submit" value="Ara">
    </form>
    ara.php
    <?php
    $kelime = $_GET['kelime'];
    if($kelime != NULL){
    header("Location: http://www.siteadi.com/".str_replace(' ', '+', $kelime).".html");
    }else{
    header("Location: http://www.siteadi.com");
    }
    ?>