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?
Tek Script Çok Database
16
●1.110
- 24-06-2014, 22:44:17Kimlik 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:22tabloları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:22Malesef ubuntu tabanlı özel sunucumuz var hocamsaintx adlı üyeden alıntı: mesajı görüntüle
bu konuyuda düşündüm ancak çok geniş bir sistem hocam bu şekilde uygulamak için baştan aşağı sistemi revize etmek gerekatay adlı üyeden alıntı: mesajı görüntüle - 25-06-2014, 00:35:08Ubuntu Apache2 üzerinde "wildcard subdomain" oluşturmayla ilgili verilmiş bir cevap buldum.ByAkman adlı üyeden alıntı: mesajı görüntüle
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:43Kimlik 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İ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:21dosyalar 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@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...crazykurba adlı üyeden alıntı: mesajı görüntüle