Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Basit menü sistemi #MAKALE#

Konu, 'PHP' kısmında LoS.ToF tarafından paylaşıldı.

  1. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    Selamlar...
    Öncelikle ilk makalem olduğunu belirteyim... O yüzden benden fazla bir şeyler beklemeyin.

    Şimdi bu makalenin amacı size bir şeyleri öğretmek hazıra kondurmak değil. :)

    Bir web sitesi yapıyorsunuz ve bir sürü ayrı dosya kullanıyorsunuz. Tabi hepsinin klınızda tutmanız gerekiyor ve ayrı isimleri değiştiği zaman ayrı ayrı sayfaları değiştirmeniz gerekebiliyor...

    Bunun yerine kendinize bir menü sistemi yazın. Öğreniğin...

    Bir başlık tablomuz olsun

    Kod:
    CREATE TABLE basliklar (
      id int(11) NOT NULL auto_increment,
      isim varchar(255) ,
      baslik varchar(255) ,
      dosya varchar(255) DEFAULT '0' ,
      durum tinyint(1) NOT NULL DEFAULT '0' ,
      guvenli tinyint(1) NOT NULL DEFAULT '0' ,
      PRIMARY KEY (id)
    );
    
    Şeklinde olsun.

    isim
    Sayfaya verilmiş bir isim.

    başlık
    Size sayfanızdaki '<title></title>' tagları arasına bir şeyler yazmanızı sağlayacak.

    dosya
    Sayfamızın dosyası...

    durum
    Sayfamızın durumu. Sayfamız gösterimdemi değilmi ne yapıyor bilmek lazım...

    güvenli
    Sayfamızın güvenlik unsurları içermesi gerekip gerekmediğini belirtiyoruz. Session cookie filan yani. Dilerseniz daha vt ye daha farklı sütunlar ekleyebilirsiniz bu size daha fazla secenek sunacaktır. SSL koyabilirsiniz. Mesela...
    Şimdi veri tabanımızı yarattık. Böylelikle işin en uğratırıcı yanı olan vt tasarımını geride bıraktık.

    Şimdi sistemin kafa kodunu yazmaya geldi iş. Bir tane ayarlarınızı koyacağınız dosya yaratın. Ben içine şunları yazıyorum.
    PHP:
    <?
        
    define('baslik'$_GET['s']);
        
    define('www''http://127.0.0.1/');
        
    define('linkX', [url]www.[/url]'?s=');
        
    define('incdir','./incs/');
        
    define('top''top.php');
        
    define('down''down.php');
    ?>
    Evet. bu dosyadaki şeylerin herhalde ne işe yaradığını anlatmama gerek yok. Hepinizi benim gibi kıt anlayışlı sayıyorum ve devam ediyorum :D

    index sayfamıza bir kod yazıyoruz ki kod ilk önce "baslik" sabit değişkenini kontrol edicek eğerki boş ise bir incs klasöründen bulduğu "ana_sayfa.inc.php" dosyasını sayfaya "require" ile sayfaya yerleştirecek. Peki sizce aşağıdaki şekillerden hangisi doğru bire yerleştirme biçimidir ? Evet tekrar okuldayız !
    1:
    PHP:
    require top;
    require 
    incdir.'ana_sayfa.inc.php';
    require 
    down;
    veya
    2:
    PHP:
    require incdir.'ana_sayfa.inc.php';
    Bence 2. şekil daha doğru olucaktır. Çünkü bizim bağımsız bir sistem yazmamız lazım. Her sayfa başına buyruk olmamalı ama kendi özgürlüklerinede sahib olmalı. Özgürlük ? yani sayfa içerisinde isterseniz bir session tanımlayın isterseniz başka bir şey yapın. Hiç bir zaman 2 satır kod yazmaktan çekinmeyin.

    sonra index sayfamız gidip veri tabanımızdan baslik değişkenine uygun id yi bulup bize hangi dosyayı sayfaya eklememiz gerektiğine değiniyor. Biz de gerekli kontrolleri yaptıktan sonra sayfayı ekranımıza usulünce yerleştiriyoruz.... Böylece kısa yolundan bir menü sistemi yapmış oluyoruz. İsterseniz ufak bir while döngüsü ile Menüyü otomatikleştirebilirsiniz...

    Dilerseniz bir altbaşlık veritabanı oluşturur. ana başlık, alt başlık olaraktan bir menü oluşturursunuz...


    Yazım hataları için özür dilerim.
     
  2. redial

    redial Misafir

    :super:
     
  3. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Bunu birazcık daha geliştirip bir örnek sayfa ekleyerek ana sayfadaki PHP bölümümüzde yayınlayalım değil mi? ;)
     
  4. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    Yeterlidir sanırım. İnsanlar bir uğraş vermeleri lazım. Kodları kendileri yazmaları lazım copy paste değil. Ben sadece sistemin mimarisini anlattım geliştirmek sizlere kalmış bir şey.

    Eğerki buraya mimarinin hepsini soksaydım hazıra konulurdu. Ben bu sistemin alt menü onun altı filan özelliğinide hazırladım ama bunları programcı kendisi düşünüp yapmalı ben bundan yanayım. Yanlış düşünüyorsam söyleyin ?

    Zor varken niye kolayı yapayım ?
     
  5. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    Peki
     
  6. redial

    redial Misafir

    Dogru dusunuyorsun...
    BKZ.
     
  7. HunTER

    HunTER ...

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    8,684
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    Iyı hos fekat ben pek bısey anlamıs dıılım.. Hangı sıstem ne mımarısı? Ben ortada bır menu sıstemı goremıyorum yoksa bakmayımı bılmıyorum?

    Anladım ınsanları hazıra alıstırmak ıstemıyosun ama makelede bıraz havada kalmamısmı?
     
  8. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    :aglama:
     
  9. HunTER

    HunTER ...

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    8,684
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
  10. Sahin

    Sahin Daimi Üye

    Kayıt:
    28 Mayıs 2002
    Mesajlar:
    8,943
    Beğenilen Mesajlar:
    0
    :rolleyes: :melek: :2:
     
  11. hmustak

    hmustak PersianBulls

    Kayıt:
    29 Mayıs 2002
    Mesajlar:
    4,607
    Beğenilen Mesajlar:
    0
    Meslek:
    BT/QA
    Şehir:
    Persian
    :super:
     
  12. hilmi

    hilmi Üye

    Kayıt:
    7 Temmuz 2002
    Mesajlar:
    94
    Beğenilen Mesajlar:
    0
    Meslek:
    ogrenci
    Şehir:
    Ankara
    Siz basit menu diyorsunuz ama ben hala bir adim atamadim, buradaki yazilari indirip offline olarak ögrenmeye calisiyorum, biraz para biriktirsem birde kitap alacağım ama maalesef kitaba ayıracak param yok şu anda ama inşallah öğreneceğim birgün. :(
     
  13. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    :aglama: Bir kaç güne kadar geniş içerikli bir makale hazırlayacağım. Şu anda işlerimden dolayı kendime bile vakit ayıramıyorum. Özürlerimi iletirim.
     
    Son düzenleme yönetici tarafından yapıldı: 15 Kasım 2002
  14. mkarabulut

    mkarabulut Misafir

    Hilmi, şahsen ben PHP öğrenmeye başladığımda gittim Hakkı abinin kitapçıklarının üçünü de okudum, bitirdim. Sonra ise internette ki dokumanlar ve özellikle phpmanual ile devam ettim...

    Hiç kitap almadım, sanırım çok da gerek kalmıyor...

    Bence git şu kitapçıkları bi yerden bul indir... Bulamazsan bende şu an var mı yok mu emin değilim ama buradaki arkadaşlardan en az birisinde vardır sanırım... Yardımcı olunur..
     
  15. HunTER

    HunTER ...

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    8,684
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    Evet bende var bı kıtap.. Nette bıyere attım.. Ayrıca suana kadar bırıktırdıgım dokuman arsıvıde var.. Lınkler assagıda..

    Php Kıtabı : phpmanual.zip
    Dokumanlar: document.zip

    Ama yınede bı kıtap almanda fayda var derım.. Kendımden ornek verırsem kıtap benı nete bagımlı olmaktan ve sureklı dokuman pesınde kosmaktan kurtardı.. Buda onemlı bı avantaj..
     
  16. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    Yardımlaşma die buna derim yaa :) HLL bize :D
     
  17. HunTER

    HunTER ...

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    8,684
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    :) :hiohahoha -cok sevımlı ya :)
     
  18. LoS.ToF

    LoS.ToF Daimi Üye

    Kayıt:
    11 Ağustos 2002
    Mesajlar:
    1,088
    Beğenilen Mesajlar:
    0
    Meslek:
    PHP Developer
    Şehir:
    Antalya
    CREATE TABLE basliklar (
    id int(11) NOT NULL auto_increment,
    baslik varchar(255) ,
    sayfa varchar(255) DEFAULT '0' ,
    durum tinyint(1) NOT NULL DEFAULT '0' ,
    guvenli tinyint(1) NOT NULL DEFAULT '0' ,
    PRIMARY KEY (id)
    );
    PHP:
    <?
    // define('','');
    define('baslik'$_GET['s']);
    define('www''http://127.0.0.1/');
    define('linkX', [url]www.[/url]'?s=');
    define('incdir','./incs/');
    define('top''top.php');
    define('down''down.php');
    define('pbp'50);
    // ** SQL AYARLARI ** //
    $SQLcfg['server_type'] = 'MySql';
    $SQLcfg['host']='127.0.0.1';
    $SQLcfg['user']='root';
    $SQLcfg['pass']='';
    $SQLcfg['port']='3306';
    $SQLcfg['db']  = 'merihli';
    if(!
    mysql_connect($SQLcfg['host'], $SQLcfg['user'], $SQLcfg['pass'])) {
        echo 
    '<b>SQL Sunucusuna bağlantı yapılamadı<br></b>';
        exit;
    }
    if (!
    mysql_select_db($SQLcfg['db'])) {
        echo 
    '<b>SQL Veri tabanınına bağlantı yapılamıyor.<br></b>';
        exit;
    }
    // ** SQL AYARLARI ** //
    require 'fonk.php';
    ?>
    PHP:
    <?
    require 
    'ayarlar.php';
    if ( 
    baslik == '') {
        require 
    incdir.'ana_sayfa.inc.php';
        exit;
    }
    $_QUERY mysql_query('SELECT * FROM `basliklar` WHERE `id` = \''.baslik.'\'');
    if (
    mysql_num_rows($_QUERY)<1) {
        require 
    top;
        require 
    incdir.'404.htm';
        require 
    down;
        exit;
    }else{
        
    $row=mysql_fetch_array($_QUERY);
        
    $title $row['baslik'];
        if (
    file_exists(incdir.$row['sayfa'])){
            if (
    $row['guvenli']=='0') {
                require 
    incdir.$row['sayfa'];
                exit;
            }else{
                if (
    session_is_registered('kull_id')) {
                    require 
    incdir.$row['sayfa'];
                    exit;
                }else{
                    require 
    incdir.'zorunlu.inc.php';
                    exit;
                }
            }
        }else{
        require 
    top;
        require 
    incdir.'404.htm';
        require 
    down;
        exit;
        }
    }
    ?>

    :aglama: :p
     
  19. blackhawk

    blackhawk Üye

    Kayıt:
    16 Kasım 2002
    Mesajlar:
    244
    Beğenilen Mesajlar:
    0
    Meslek:
    ...
    teşekkür..

    dökümanlar için teşekür ederim.:)
     
  20. bilbilal

    bilbilal Üye

    Kayıt:
    10 Ekim 2006
    Mesajlar:
    133
    Beğenilen Mesajlar:
    0
    Meslek:
    Öğrenci-Öğretmen
    Şehir:
    Fatih'in Fethettiği Kutlu şehir
    linkler ölmüş yenilemek mümkün mü gerçi bu mesajlar 2002 yılında atılmış galiba ama