• 26-01-2014, 04:24:23
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    merhaba beyler, bayanlar

    öncelikle hepinize kolay gelsin, bol kazançlar diliyerek başlıyayım..


    ufak bir problemim var şu şekilde bir htaccess içeriğim var

    RewriteRule ^([^/]*)/([^/]*)$ y.php?kat=$2 [L,NC]
    RewriteRule ^([^/]*)/([^/]*)/$ y.php?kat=$2 [L,NC]
    RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ x.php?uniq_id=$3&seo=$2 [L,NC]
    RewriteRule ^([^/]*)/([^/]*)/([^/]*)/$ x.php?uniq_id=$3&seo=$2 [L,NC]
    simdi bu kodlarda herhangi bir sıkıntım olmadan çalışıyor ancak şöyle bir sorunum var mesela

    theme/bilmemne/style.php
    motor/motor.php

    gibi dosyalari cagirdigimda bana boyle bir dosya yok hatasi veriyor sanirim o yukardaki yaptigim seyler yuzunden olmuyor... bunun bir yolu mutlaka ki vardir yardimci olursaniz sevinirim tesekkurler kolay gelsin..

    birde ekstradan soyle bisey sormak istiyorum

    mesela

    site.com/kullaniciadi/
    ve
    site.com/kategori/
    seklinde adreslerim olsa

    bunu php ile kontrol etmek yerine otomatik nasil algilatabilirim..

    yani sql veya array icinden sectirmek yerine bunu daha kisa basit nasil halledebilirim

    site.com/ihsan/

    diye girince benim profilime gitsin

    site.com/oyunlar/

    diye girince kategori sayfasina gibi..
  • 26-01-2014, 15:56:19
    #2
    Merhabalar,

    Dosyalarını PHP ile çağırırken yolunu tam olarak belirtmek en sağlam yöntemdir.
    Örneğin:
    include('/home/username/public_html/theme/bilmemne/style.php');
    include('/home/username/public_html/motor/motor.php');
    username kısmını CPanel kullanıcı adınız olarak değiştirerek bunu kullanabilirsiniz.

    veya "./" operatörü ile önceki veya ana dizine dönüşü sağlayabilirsiniz.
    Örneğin:
    include('../theme/bilmemne/style.php');
    include('../motor/motor.php');
    Sitenizin bağlantısını alabilirsem size başka bir alternatif yöntemlerde sunabilirim.

    Gelelim ikinci yönteme, bahsettiğiniz işlem mümkün. Eğer script yapımcısı siz iseniz en basit yöntem olarak kategori ve üye sayfalarını aynı php dosyasından yayınlarsınız. Bu php (önceliği siz belirleyeceksiniz) gelen get ile önce bir üyelik var mı onu kontrol eder daha sonra üyelik yok ise aynı get ile bir kategori mevcut mu bunu kontrol eder. Eğer olumlu bir dönüş alırsa bunu döndürür.

    Örneğin:
    PHP dosyamızın adı Uyeler.Kategoriler.php olsun. GET ile id değişkenini alsın.
    .htaccess rewrite kuralı:
    RewriteRule ^([^/]*)/$ Uyeler.Kategoriler.php?id=$1 [L,NC]
    PHP dosyamızın çalışma mantığı:
    $id = $_GET['id'];
    if($id)
    {
        $checkuser = $db->get_var('SELECT count(*) FROM users WHERE `username` = \''.$id.'\'');
        if($checkuser <> 0)
        {
            // Bu bir üyedir.
        }
        else
        {
            $checkcategories = $db->get_var('SELECT count(*) FROM categories WHERE `name` = \''.$id.'\'');
            if($checkcategories <> 0)
            {
                // Bu bir kategoridir.
            }
            else
            {
                // Bu isimde ne bir üyelik var nede bir kategori.
            }
        }
    }
  • 26-01-2014, 16:25:17
    #3
    Hocam zaman ayirip yorum yazdiginiz icintesekkur ederim ancak javascriptden ajax dosyasina link verdigim icin tam url yolunu yazmak istemiyorum anliyacaginiz uzere diger turlu include require ve require once lerde zaten genelde tam yol kullaniyprum veya dedigimkz gibi gerektigi zaman altdizine vs iniyorum..
    Username ve kategori konusunda bende o mantigi dusundum ancak ileride buyuk olcude sorun cikarticaktir cunku user tablom gercekten baya bi dolu dolu olucak.
    Cpanel kullanmiyorum mediatemple altyapisinda bir sistem kullaniyorum ..

    Site adresini pm ile gondereyim hocam teseklur ederim tekrardan
  • 26-01-2014, 21:27:28
    #4
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    ile dosya veya klasör varsa şeklinde bir koşul koyarsanız sorun kalmaz..