• 20-12-2015, 00:30:26
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaşlar,

    Kendimi geliştirmek için ufak bir script yapıyorum. Herşey güzel gidiyordu taki mod_rewrite işine gelene kadar.

    Öncelikle url lerim şu şekilde olmasını istiyorum

    domain.com/kategori-adi.html
    domain.com/konu-adi.html
    domain.com/kategori-adi/urunadi.html
    v.s

    index.php dosyam işlemleri şu şekilde yapıyorum
    index.php?islem=kategori&kid=kategori-adi
    veya
    index.php?islem=sayfa&kid=sayfa-adi gibi
    include('mysql_baglanti.php');
    include('fonksiyonlar/fonk.php');
    $kid = mysql_real_escape_string($_GET['kid']);
    $degisken = mysql_real_escape_string($_GET['islem']);
    
    include('tema/header.php');
    
    echo '<!-- Begin Main -->
    		<div id="main" class="shell">';
    
    switch($degisken){
    
    	case 'kategori':
    	include('tema/kategori.php');
            echo 'buraya kategoriler gelicek';
    	break;
    	
    	case 'sayfa':
    	echo 'sayfalar<br>';
    	echo $kid;
    	break;
    	
    	case deneme:
    	echo 'deneme';
    	break;
    	
    	default:
    	include('tema/slider.php');
    	include('tema/ustyazi.php');
    	include('tema/markalar.php');
    	include('tema/content.php');
    
    
    echo '</div>
    		<!-- End Main -->';
    
    include('tema/footer.php');
    .htaccess dosyam ayrıca htaccess bilmiyorum ama az çok mantık yürüterek yapıyorum.
    Alıntı
    RewriteEngine On
    Options +Indexes
    Options +FollowSymlinks
    RewriteCond %{REQUEST_FILENAME} !\.(png|gif|ico|swf|jpe?g|js|css)$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*).html$ ?islem=kategori&kid=$1 [L,QSA]
    RewriteRule ^(.*)/(.*).html$ ?islem=sayfa&kid=$1 [L,QSA]
    Kategorilerde sorun yok gösteriyor.

    Kategorilere tıkladığımda
    yazdırıyor

    sayfalara tıklayınca case sayfa okuması gerekirken kategori case okuyor

    Ayrıca script içerisinde linkleride şu şekilde yazdırıyorum
    echo '<li><a href="'.URL.'sayfa/'.$sayfaseo.'.html" title="'.$sayfaadi.'"><span>'.$sayfaadi.'</span></a></li>';
    <li '.$active.'><a href="'.URL.''.$kategoriseo.'.html" title="'.$kategoriadi.'">'.$kategoriadi.'</a></li>
    				';
  • 20-12-2015, 00:50:05
    #2
    alıntı yapıyorum :
    domain.com/kategori-adi/urunadi.html
    index.php?islem=sayfa&kid=sayfa-adi gibi

    sanırım sayfa-adi urunadi olmalıydı. eğer öyleyse;
    RewriteRule ^(.*)/(.*).html$ ?islem=sayfa&kid=$1 [L,QSA]
    şuradaki $1 ilk (.*) 'ı verir. siz eğer slaştan sonrakini istiyorsanız(islem=sayfa&kid=sayfa-adi'na gidecek) $2 kullanmanız gerekir.

    Eğer yanlış anlamadıysam sorun çözülecektir.

    Kolaylıklar.


    kursadd adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar,

    Kendimi geliştirmek için ufak bir script yapıyorum. Herşey güzel gidiyordu taki mod_rewrite işine gelene kadar.

    Öncelikle url lerim şu şekilde olmasını istiyorum

    domain.com/kategori-adi.html
    domain.com/konu-adi.html
    domain.com/kategori-adi/urunadi.html
    v.s

    index.php dosyam işlemleri şu şekilde yapıyorum
    index.php?islem=kategori&kid=kategori-adi
    veya
    index.php?islem=sayfa&kid=sayfa-adi gibi
    include('mysql_baglanti.php');
    include('fonksiyonlar/fonk.php');
    $kid = mysql_real_escape_string($_GET['kid']);
    $degisken = mysql_real_escape_string($_GET['islem']);
    
    include('tema/header.php');
    
    echo '<!-- Begin Main -->
    		<div id="main" class="shell">';
    
    switch($degisken){
    
    	case 'kategori':
    	include('tema/kategori.php');
            echo 'buraya kategoriler gelicek';
    	break;
    	
    	case 'sayfa':
    	echo 'sayfalar<br>';
    	echo $kid;
    	break;
    	
    	case deneme:
    	echo 'deneme';
    	break;
    	
    	default:
    	include('tema/slider.php');
    	include('tema/ustyazi.php');
    	include('tema/markalar.php');
    	include('tema/content.php');
    
    
    echo '</div>
    		<!-- End Main -->';
    
    include('tema/footer.php');
    .htaccess dosyam ayrıca htaccess bilmiyorum ama az çok mantık yürüterek yapıyorum.


    Kategorilerde sorun yok gösteriyor.

    Kategorilere tıkladığımda
    yazdırıyor

    sayfalara tıklayınca case sayfa okuması gerekirken kategori case okuyor

    Ayrıca script içerisinde linkleride şu şekilde yazdırıyorum
    echo '<li><a href="'.URL.'sayfa/'.$sayfaseo.'.html" title="'.$sayfaadi.'"><span>'.$sayfaadi.'</span></a></li>';
    <li '.$active.'><a href="'.URL.''.$kategoriseo.'.html" title="'.$kategoriadi.'">'.$kategoriadi.'</a></li>
    				';
  • 20-12-2015, 01:02:49
    #3
    bluexpres adlı üyeden alıntı: mesajı görüntüle
    alıntı yapıyorum :
    domain.com/kategori-adi/urunadi.html
    index.php?islem=sayfa&kid=sayfa-adi gibi

    sanırım sayfa-adi urunadi olmalıydı. eğer öyleyse;
    RewriteRule ^(.*)/(.*).html$ ?islem=sayfa&kid=$1 [L,QSA]
    şuradaki $1 ilk (.*) 'ı verir. siz eğer slaştan sonrakini istiyorsanız(islem=sayfa&kid=sayfa-adi'na gidecek) $2 kullanmanız gerekir.

    Eğer yanlış anlamadıysam sorun çözülecektir.

    Kolaylıklar.
    Merhaba,

    Evet kodda orası yanlış kopyalanmış buraya. Bunun sebebi bir sürü deneme yapmam ve dalgınlıkla buraya kopyalamam.


    Şimdiki htaccess kodu
    Alıntı
    RewriteEngine On
    Options +Indexes
    Options +FollowSymlinks
    RewriteCond %{REQUEST_FILENAME} !\.(png|gif|ico|swf|jpe?g|js|css)$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*).html$ ?islem=kategori&kid=$1 [L,QSA]
    RewriteRule ^(.*).html$ ?islem=sayfa&kid=$1 [L,QSA]
    Bunda yanlışlık yok fakat

    sayfalar linklerine tıkladığımda neden case sayfa: okuması gerekirken case kategori: kısmını okuyor. Böyle olduğu zaman ben işlem yapamıyorum konuları göstereceğim fakat uyuşma sağlanmıyor bir mantık hatası var sanırım.
  • 20-12-2015, 17:46:57
    #4
    switch - case yerine $_GET mantığını kullan bence, bu durumda kod basit şekilde
    <?php
    $tema = "tema/".$_GET['islem'].".php";
    require_once($tema);
    ?>
    şekline dönüşür ve otomatik olarak zaten dosyayı alır
  • 20-12-2015, 18:50:29
    #5
    akaracay adlı üyeden alıntı: mesajı görüntüle
    switch - case yerine $_GET mantığını kullan bence, bu durumda kod basit şekilde
    <?php
    $tema = "tema/".$_GET['islem'].".php";
    require_once($tema);
    ?>
    şekline dönüşür ve otomatik olarak zaten dosyayı alır
    Teşekkürler hocam,

    Aslında farklı bir şekilde çözebiliryorum.

    Mesala
    Alıntı
    RewriteRule ^(.*)/(.*).html$ index.php?islem=$1&kid=$2 [L,QSA]
    Ve verdiğim linklerede kategori/ ve sayfa/ verdiğimde doğal olarak ilk parametrede kategori ve sayfa yı okuyor.

    Fakat url ler
    domain.com/kategori/kategori-adi.html
    domain.com/sayfa/sayfa-adi.html
    gibi oluyor.

    Ben böyle olmasını istemiyorum açıkcası url leri olabildiğince kısa tutmak amaçım. Aslında htaccess de yukarıdan aşağıya doğru okuma yaptığından ilk kodda uyuşma sağladığı için doğal olarak hep kategori kısmını okuyor.

    Şimdi sorun şu ben scriptimdeki tüm urlleri aşağıdaki şekilde yapmam için ne yapmam lazım sistem nası olması lazım

    domain.com/kategori-adi.html
    domain.com/konu-adi.html
    domain.com/uye-girisi.html
    domain.com/urun-adi.html
    v.s. v.s.

    Bunun mantığı nasıl olmalı bu mantığı scripte nası monte edeceğim.
  • 20-12-2015, 19:19:51
    #6
    üstad bahsettiğiniz mevzu için önce veritabanınızda yeni bir tablo açın, sitenize ait tüm linkler için içerik türü, içeriğin kendi tablosundaki idsi ya da başlığı (ya da hangisini kullanacaksanız) ve de o içerik için oluşturulacak olan benzersiz bir slug sütunları oluşturun. yönetim panelinizden içerik eklerken otomatik olarak bu tablonun da değerlerini doldurtun ve arayüzde de içeriklerinizi çağırırken index.php?slug=deneme-icerik gibisinden bir adres üzerinden slug parametresinin değerini sonradan oluşturduğunuz tablodaki slug sütununda aratın. tabloda $_GET ile alıp arattığınız slug için girilmiş içerik türünü (ya da o içerikler hangi tablodaysa o tablonun adını) ve o içeriğin kendi tablosundaki idsini alın. o tablodan o iddeki içeriği çağırın. htaccess dosyanızda da artık tek yapmanız gereken gereksiz satırlardan kurtulup sadece ?slug parametresine göre adresleme yapmak... biraz karışık oldu ama yazdığımı anlayan birileri çıkacaktır elbet, en azından bunu ümit ediyorum
  • 20-12-2015, 19:34:07
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    kursadd adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar,

    Kendimi geliştirmek için ufak bir script yapıyorum. Herşey güzel gidiyordu taki mod_rewrite işine gelene kadar.

    Öncelikle url lerim şu şekilde olmasını istiyorum

    domain.com/kategori-adi.html
    domain.com/konu-adi.html
    domain.com/kategori-adi/urunadi.html
    v.s

    index.php dosyam işlemleri şu şekilde yapıyorum
    index.php?islem=kategori&kid=kategori-adi
    veya
    index.php?islem=sayfa&kid=sayfa-adi gibi
    include('mysql_baglanti.php');
    include('fonksiyonlar/fonk.php');
    $kid = mysql_real_escape_string($_GET['kid']);
    $degisken = mysql_real_escape_string($_GET['islem']);
    
    include('tema/header.php');
    
    echo '<!-- Begin Main -->
    		<div id="main" class="shell">';
    
    switch($degisken){
    
    	case 'kategori':
    	include('tema/kategori.php');
            echo 'buraya kategoriler gelicek';
    	break;
    	
    	case 'sayfa':
    	echo 'sayfalar<br>';
    	echo $kid;
    	break;
    	
    	case deneme:
    	echo 'deneme';
    	break;
    	
    	default:
    	include('tema/slider.php');
    	include('tema/ustyazi.php');
    	include('tema/markalar.php');
    	include('tema/content.php');
    
    
    echo '</div>
    		<!-- End Main -->';
    
    include('tema/footer.php');
    .htaccess dosyam ayrıca htaccess bilmiyorum ama az çok mantık yürüterek yapıyorum.


    Kategorilerde sorun yok gösteriyor.

    Kategorilere tıkladığımda
    yazdırıyor

    sayfalara tıklayınca case sayfa okuması gerekirken kategori case okuyor

    Ayrıca script içerisinde linkleride şu şekilde yazdırıyorum
    echo '<li><a href="'.URL.'sayfa/'.$sayfaseo.'.html" title="'.$sayfaadi.'"><span>'.$sayfaadi.'</span></a></li>';
    <li '.$active.'><a href="'.URL.''.$kategoriseo.'.html" title="'.$kategoriadi.'">'.$kategoriadi.'</a></li>
    				';
    senin için ufak bir betik hazırladım onu kullan mantığını anlıyacaksın

    .htaccess
    RewriteEngine On
    Options +Indexes
    Options +FollowSymlinks
    RewriteCond %{REQUEST_FILENAME} !\.(png|gif|ico|swf|jpe?g|js|css)$ 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^kategori-(.*?)/(.*?).html$ ?islem=kategori&kid=$1&urun=$2 [L,QSA]
    RewriteRule ^(.*?)-(.*?).html$ ?islem=$1&kid=$2&urun=$3 [L,QSA]
    index.php
    <?php 
    echo '<meta charset="UTF-8" />';
    $kid = mysql_real_escape_string($_GET['kid']);
    $degisken = mysql_real_escape_string($_GET['islem']);
    $urun = mysql_real_escape_string($_GET['urun']);
    
    
    
    if($degisken != "sayfa" && $degisken != "kategori"){
    	echo "404 NOT FOUND !";
    }elseif($degisken == "kategori"){
    	
    	if($urun){
    		echo "{$kid} kategorisinde {$urun}' ürünü  görüntülüyorsunuz.";
    	}else{
    		echo "{$kid} kategorisini görüntülüyorsunuz.";
    	}
    	
    	
    	
    }elseif($degisken == "sayfa"){
    	echo "{$kid} sayfasını görüntülüyorsunuz.";
    }

    sayfa-hakkimda.html
    kategori-elbise.html
    kategori-elbise/corap.html

    girersen ekrana yansıyan değerleri göz önüne alarak işlem yapabilirsin bence
  • 20-12-2015, 20:31:10
    #8
    RewriteRule ^(.*?)-(.*?).html$ ?islem=$1&kid=$2&urun=$3 [L,QSA]
    derken? 2 bilinmeyene 3 değer atama nasıl oluyor ki, anlayamadım
  • 20-12-2015, 20:59:32
    #9
    akaracay adlı üyeden alıntı: mesajı görüntüle
    üstad bahsettiğiniz mevzu için önce veritabanınızda yeni bir tablo açın, sitenize ait tüm linkler için içerik türü, içeriğin kendi tablosundaki idsi ya da başlığı (ya da hangisini kullanacaksanız) ve de o içerik için oluşturulacak olan benzersiz bir slug sütunları oluşturun. yönetim panelinizden içerik eklerken otomatik olarak bu tablonun da değerlerini doldurtun ve arayüzde de içeriklerinizi çağırırken index.php?slug=deneme-icerik gibisinden bir adres üzerinden slug parametresinin değerini sonradan oluşturduğunuz tablodaki slug sütununda aratın. tabloda $_GET ile alıp arattığınız slug için girilmiş içerik türünü (ya da o içerikler hangi tablodaysa o tablonun adını) ve o içeriğin kendi tablosundaki idsini alın. o tablodan o iddeki içeriği çağırın. htaccess dosyanızda da artık tek yapmanız gereken gereksiz satırlardan kurtulup sadece ?slug parametresine göre adresleme yapmak... biraz karışık oldu ama yazdığımı anlayan birileri çıkacaktır elbet, en azından bunu ümit ediyorum
    Hocam çok teşekkürler Dediklerinizi harfiyen anladım. Peki bunu tema ya nasıl monte edeceğim İlk mesajımdaki sistemle yapıyorum yani include ediyorum. İşte get sayfa dan geliyorsa sayfalar.php i include ediyorum.

    numanturle adlı üyeden alıntı: mesajı görüntüle
    senin için ufak bir betik hazırladım onu kullan mantığını anlıyacaksın

    .htaccess
    RewriteEngine On
    Options +Indexes
    Options +FollowSymlinks
    RewriteCond %{REQUEST_FILENAME} !\.(png|gif|ico|swf|jpe?g|js|css)$ 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^kategori-(.*?)/(.*?).html$ ?islem=kategori&kid=$1&urun=$2 [L,QSA]
    RewriteRule ^(.*?)-(.*?).html$ ?islem=$1&kid=$2&urun=$3 [L,QSA]
    index.php
    <?php 
    echo '<meta charset="UTF-8" />';
    $kid = mysql_real_escape_string($_GET['kid']);
    $degisken = mysql_real_escape_string($_GET['islem']);
    $urun = mysql_real_escape_string($_GET['urun']);
    
    
    
    if($degisken != "sayfa" && $degisken != "kategori"){
    	echo "404 NOT FOUND !";
    }elseif($degisken == "kategori"){
    	
    	if($urun){
    		echo "{$kid} kategorisinde {$urun}' ürünü  görüntülüyorsunuz.";
    	}else{
    		echo "{$kid} kategorisini görüntülüyorsunuz.";
    	}
    	
    	
    	
    }elseif($degisken == "sayfa"){
    	echo "{$kid} sayfasını görüntülüyorsunuz.";
    }

    sayfa-hakkimda.html
    kategori-elbise.html
    kategori-elbise/corap.html

    girersen ekrana yansıyan değerleri göz önüne alarak işlem yapabilirsin bence
    Çok teşekkürler hocam zahmet verdik. Fakat url ler uzun olmasını istemiyorum Şu mesajımda tam olarak anlattığımı sanıyorum https://www.r10.net/1071176379-post5.html