• 24-06-2014, 21:27:03
    #1
    Merhaba arkadaşlar;

    Birkaç yol tasarladım aslında ancak sizlere de bir sorayım dedim. Şimdi geliştirdiğimiz bir sınav sistemi var. Sistem 3 farklı girişten oluşuyor. Üst kullanıcı, öğrenci, öğretmen girişi. Velhasıl şuan sistem tamam gibi. Sistemi bir domain üzerinden isteyen öğretim kurumlarına açıyoruz.

    Örn: sinavsistemi.com/itu --> öğrenci girişi
    sinavsistemi.com/itu/yonetici --> üst yönetici girişi
    sinavsistemi.com/itu/ogretici --> öğretmen girişi

    ilk sürümlerinde her öğretim kurumu için tekrar ftp ye dosya at vs şeklindeydi. Bu sürümümüzde bu olayı aşarak tek dosya sistemini kullanarak birden fazla öğretim kurumuna açmak şeklinde düşündük. Yani biraz daha açarsam 10 tane öğretim kurumu bizden bu sistemi istedi. Biz ayrı klasör açıp dosyaları upload yerine tek dosya sistemine yeni veritabanı açarak bu şekilde halletmek istiyoruz.

    1-2 yol tasarladım. Domainden klasör yoluna bakıp sembolik linkle ana sistemi göstermek gibisinden. Sizler ne önerirsiniz?
  • 24-06-2014, 22:44:17
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    cPanel kullanıyorsanız tüm alt alan adlarını kapsayacak şekilde alt alanadı oluşturun. (bknz: goo.gl/jbGtAy)
    .htaccess ile alt alan adını alıp buna göre PHP'de işlem yapabilirsiniz.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 22:44:17 -->-> Daha önceki mesaj 22:39:08 --

    cPanel & WHM API kullanarak PHP ile MySQL sunucusu üstünde işlemlerde yapabilirsin. (bknz: http://docs.cpanel.net/twiki/bin/vie.../Api1/ApiMysql)
  • 24-06-2014, 22:51:22
    #3
    tabloların içinde okul_id gibi bir sütun olmalı. tüm verileri veritabanına kayıt ederken, o veri hangi kuruma aitse onun id'sini okul_id sütununa girmelisin.

    daha sonra, login olan öğrenci, öğretmen veya yöneticinin okul_id'ine bakıp, göstereceğin bilgileri çekerken tüm sorgularına okul_id=$okul_id olarak ekleme yapmalısın.

    tabiki dosya kopyalamak doğru değil. hele durduk yere veritabını çoğaltmak hiç doğru değil. ileride bir geliştirme yaptığınızda tek tek tüm veritabanlarıyla uğraşmanız gerekir.

    tek veritabanı, tek codebase'de herkese görmek istediği dünyayı gösterebilirsin.
  • 24-06-2014, 23:05:22
    #4
    saintx adlı üyeden alıntı: mesajı görüntüle
    cPanel kullanıyorsanız tüm alt alan adlarını kapsayacak şekilde alt alanadı oluşturun. (bknz: goo.gl/jbGtAy)
    .htaccess ile alt alan adını alıp buna göre PHP'de işlem yapabilirsiniz.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 22:44:17 -->-> Daha önceki mesaj 22:39:08 --

    cPanel & WHM API kullanarak PHP ile MySQL sunucusu üstünde işlemlerde yapabilirsin. (bknz: http://docs.cpanel.net/twiki/bin/vie.../Api1/ApiMysql)
    Malesef ubuntu tabanlı özel sunucumuz var hocam

    atay adlı üyeden alıntı: mesajı görüntüle
    tabloların içinde okul_id gibi bir sütun olmalı. tüm verileri veritabanına kayıt ederken, o veri hangi kuruma aitse onun id'sini okul_id sütununa girmelisin.

    daha sonra, login olan öğrenci, öğretmen veya yöneticinin okul_id'ine bakıp, göstereceğin bilgileri çekerken tüm sorgularına okul_id=$okul_id olarak ekleme yapmalısın.

    tabiki dosya kopyalamak doğru değil. hele durduk yere veritabını çoğaltmak hiç doğru değil. ileride bir geliştirme yaptığınızda tek tek tüm veritabanlarıyla uğraşmanız gerekir.

    tek veritabanı, tek codebase'de herkese görmek istediği dünyayı gösterebilirsin.
    bu konuyuda düşündüm ancak çok geniş bir sistem hocam bu şekilde uygulamak için baştan aşağı sistemi revize etmek gerek
  • 25-06-2014, 00:35:08
    #5
    ByAkman adlı üyeden alıntı: mesajı görüntüle
    Malesef ubuntu tabanlı özel sunucumuz var hocam
    Ubuntu Apache2 üzerinde "wildcard subdomain" oluşturmayla ilgili verilmiş bir cevap buldum.

    MySQL üzerinde veritabanı oluşturmak ve gerekli yetkileri vermek için komutlar burada;

    $ mysql -u root -p
    # Çıkan alana MySQL root şifrenizi yazın.
    mysql> create database YENI_VERITABANI_ISMI ;
    mysql> grant usage on *.* to YENI_VERITABANI_KULLANICISI@Localhost identified by 'YENI_VERITABANI_KULLANICI_SIFRESI' ;
    mysql> grant all privileges on YENI_VERITABANI_ISMI.* to YENI_VERITABANI_KULLANICISI@Localhost ;
    Şimdi ise açtığımız MySQL veritabanı ve veritabanı kullanıcısı deneyelim.

    $ mysql -u YENI_VERITABANI_KULLANICISI -p 'YENI_VERITABANI_KULLANICI_SIFRESI' YENI_VERITABANI_ISMI
    Eğer herhangi bir hata mesajı görünmüyorsa işlem başarıyla tamamlanmıştır. Emin olmak için phpMyAdmin aracılığıyla da gerekli kontrolleri yapabilirsin.
  • 25-06-2014, 12:10:43
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Tam anlamadım ama

    tek site birden çok database istiyorsan

    üye adı kısmına hangi databaseye erişeceğini kodla

    örnek
    itu_user
    otdu_user

    eğer itu ile başlarsa
    sql bağlantısını
    itu datebaseye yap
    otdu ile başlıyorsa otdu datebase yap

    tüm site aynı veri tabanları farklı olur

    hatta girişleride böyle yapabilirsin

    sinavsistemi.com/ogrenci
    sinavsistemi.com/oretmen
    sinavsistemi.com/mudur

    gibi
  • 25-06-2014, 13:01:47
    #7
    İyi de buradaki sıkıntı nedir?
    Hangi urlden ulaşılıyorsa ona ait database a bağlantı kurabilirsiniz zaten.
    sinavsistemi/itu/
    buradan itu yu alırsınız. ya da hangi kurum ise onun kodunu alırsınız.
    sonra sayfa başında mysql bağlantıyı açarken aldığınız parametreye uygun veritabanına bağlanırsınız.


    RewriteRule ^([a-zA-Z0-9-]+)/yonetici$ index.php?kurum=$1&kullanici=yonetici [L]
    RewriteRule ^([a-zA-Z0-9-]+)/ogrenci$ index.php?kurum=$1&kullanici=ogrenci [L]
    RewriteRule ^([a-zA-Z0-9-]+)/$ index.php?kurum=$1 [L]

    $veritabani = $_GET['kurum'] . '_veritabani';
    $baglanti = @mysql_connect('host', 'kullanıcı adı', 'şifre');
    $veritabani = @mysql_select_db($veritabani);

    Böylece hangi kurum parametresi gelirse onun veritabanına bağlanır. Veritabanlarını da itu_veritabani, odtu_veritabani diye açarsınız. Veritabanına bir ayar alanı açar logoları resimleri ya da tasarımsal bazı metin ve özellikleri oradan çekersiniz. Aynı dosyalar üzerinde yeni veritabanı açarak yeni kurum eklemeye devam edersiniz.
  • 25-06-2014, 13:09:21
    #8
    dosyalar aynı olduğuna göre sadece veri tabanı değişeceğine göre şu şekilde olacaktır..

    söyleyeceğim yöntem ile kullanıcılara kendi domainini kullanma fırsatı sağlayabilirsiniz.

    kendi siteleirini domainlerini alacaklar ve index.html dosyasının içine sizin sitenizi iframe içinde yönlendirecekler. bu sayede gelen referans siteye göre veri tabanını seçerek bağlanabilirsiniz..

    örneğin aokulu.com dan gelirse

    if ($refree="aokulu.com") {
    $dbkullaniciadi="aokulu";
    $dbsifre="aokulupass";
    $db="aokuludb";
    }
    if ($refree="bokulu.com") {
    $dbkullaniciadi="bokulu";
    $dbsifre="bokulupass";
    $db="bokuludb";
    }

    mysql_conenct("","","");

    şeklinde olabilir diye düşünüyorum
  • 25-06-2014, 13:18:07
    #9
    crazykurba adlı üyeden alıntı: mesajı görüntüle
    Tam anlamadım ama

    tek site birden çok database istiyorsan

    üye adı kısmına hangi databaseye erişeceğini kodla

    örnek
    itu_user
    otdu_user

    eğer itu ile başlarsa
    sql bağlantısını
    itu datebaseye yap
    otdu ile başlıyorsa otdu datebase yap

    tüm site aynı veri tabanları farklı olur

    hatta girişleride böyle yapabilirsin

    sinavsistemi.com/ogrenci
    sinavsistemi.com/oretmen
    sinavsistemi.com/mudur

    gibi
    @crazykurba'nın mantığı diğer önerilere göre iyi gibi.Benimde önerim bunu çoklu veritabanı olarak değilde tek veritabanı içinde tabloların başıda bu ekleri kullansanız da olabilir itu_uyeler,itu_haberler,odtu_uyeler gibi...