ASP ile Öğrenci Bilgi Sisteminde Öğrenci ve Öğretmen Yönetimi Nasıl Yapılır?

Adobe-dreamweaver-asp-icon

Şimdi sizlere aşırı gelişmiş olmayan fakat genel yapı itibariyle profesyonel öğrenci bilgi sistemi ile ilgili örnek bir uygulama hazırlayalım.

Uygulamaya başlamadan önce olması gerekenleri düşünmemiz gerekir. Öncelikle scriptimizde 2 kısım olmalı Öğretmen için ve öğrenci için giriş kısmı.

Öncelikle nasıl bir veritabanı hazırlamamız gerekiyor onu tasarlayalım. İlk yapmamız gereken dersler tablosu olacaktır. Dersler tablomuzda id, ders kodu, adı, yılı, donem ve kredi bulunmalıdır.

sistem1

 

Oluşturduğumuz dersler tablosu ile her öğrenci için ayrı ayrı dersleri girmemize gerek kalmayacaktır.

Şimdi ise Öğrencilerin bilgilerinin bulunacağı tablomuzu oluşturalım. Tablomuzu aşağıdaki gibi oluşturmalıyız

sistem2

Şimdi ise en önemli kısma gelelim mantık olarak her döneme genelde dersler dağıtılırdı ama burada daha farklı bir uygulama yapıyoruz veritabanında daha iyi bir düzen için 4 tane dönem oluşturuyoruz;

donem2004_1 donem2004_2 donem2005_1 donem2005_2 : bu tablolara id olarak otomatik sayı ve öğrenci id si ekliyoruz. Ama daha sonraki panelden not girişlerinde asp kodlarımız ile bu tablolara yeni alanlar açıp her öğrenci id sine karşılık ders notları gireceğiz.

Mdb dosyamızın son tablo görünümü şu şekilde olacaktır.

 

Sistem3

 

 

Tablo adlarını alan adlarını istediğiniz gibi belirleyebilirsiniz. Burada önemli olan tabloları gereksiz şekilde oluşturmamaktır.

 

 

Access dosyamızı hazırladığımıza göre Sırayla Asp Dosyalarımızı Hazırlayalım:

a) Öğretmen Giriş Kısmı; Öğretmen giriş sisteminde yapacaklarımızı sıralar olursak ilk önce şifreli bir giriş düşünmeliyiz. Şifreli giriş içinde session kontrolu yapmalı ve  erişim güvenliğini korumalıyız.

Yonet diye bir klasör açalım. Daha sonra  ister herhangi bir editör ile ister not defteri ile kodlarımızı yazmaya başlayalım. Size tavsiyemiz Microsoft Frontpage yada Macromedia Dreamweaver  kullanmanızdır. Çünkü sadece asp kodu yazmakla beraber tasarımı da tabloları da yapmamız gerekecektir. Bu tip editörlerde hem kodları görebilir hem de önizlemeyi sağlamış olursunuz. ( asp kodlarınız çalışmaz sadece tablolar gözükür. Bunun için farklı yöntemler ve ayarlar yapmalısınız)

Öncelikle her zaman kullanacağımız kodları ayrı ayrı dosyalara koyup include yardımı ile çağırmak daha kolaydır. İlk işimiz veritabanı bağlantısını sağlayacak dosyayı oluşturmak olmalı.

Veritabani.asp;

 

<%

vtyolu = server.mappath(“../vt1.mdb”)  // mappath ile veritabanı yolumuzu buluyoruz

Set baglanti = server.createobject(“adodb.connection” )   // bağlantıyı kuruyoruz

baglanti.open “Provider=Microsoft.JET.OLEDB.4.0; Data Source=” & vtyolu &”;”
// Mdb mizi açıyoruz

%>

 

Yukarıdaki bağlantı kodlarını hemen hemen her sayfada zaten kullanacaktık. Bunu bir dosyaya yerleştirip sadece include etmek daha mantıklıdır. İleriki zamanlarda yapacağınız değişiklikler yada mdb ismi değişimi için her dosyayı açıp derlemenize gerek kalmayacaktır. Zaten asp yada php gibi web programlama dillerinin bu özelliklerini kullanmazsanız tüm dinamikliği gitmiş olur size bir yarar sağlamaz. Dinamik sayfa demek her yönüyle birbirine bağlantılı her işin ayrı ayrı yapıldığı sayfalar demektir. Bir kodu 10 sayfada yazmak yerine 1 sayfada yazıp veriyi oradan almak için zaten bu programlama dillerini kullanıyoruz.

 

Şimdide oturum kontrolünü her sayfada yapıp güvenliği sağlayacak session.asp dosyasını oluşturalım.

session.asp;

 

<%

If not Session(“login”) = true and not session(“kullanici”) <> “” Then

response.redirect “index.asp”

end if

%>

Yukarıdaki kod ile login kontrolü yapılır eşitlik yoksa index.asp dosyasına yönlendirilir. Kısaca giriş engellenmiş olur. İndex.asp dosyamızı hazırlayınca tam olarak görevini daha iyi anlamış olacağız.


Sıra artık giriş formumuzun bulunacağı index.asp yi yapmaya geldi.

index.asp;

 

<!–#include file=”veritabani.asp”–> // veritabanımıza bağladık

<html>

<head>

<title>Öğrenci Bilgi Sistemi</title>

<link rel=stylesheet href=style.css type=text/css>

</head>

<body bgcolor=#e5e5e5>

<center>

<table cellspacing=0 cellpadding=0 width=100% height=100%>

<tr><td align=center valign=middle width=100% height=100%>

<table cellspacing=1 cellpadding=0 width=100% height=200 bgcolor=#aaaaaa>

<tr><td bgcolor=#ffffff width=100% height=100% align=center>

<%

if request.form(“submit”)<>”” then  // formun onaylanıp onaylanmadığına bakılıp işlem yapılıyor

kullanici = request.form(“kullanici”)

sifre = request.form(“sifre”)

// kullanıcı adı ve şifre gelen formdan alındı

if kullanici = “ogretmen” and sifre = “şifrem” then // kullanıcı adı ve şifre kıyaslanıyor

session(“login”) = true // kıyas doğru olunca oturum doğru denildi

session(“kullanici”) = kullanici // kullanici oturumuna alındı

response.redirect “giris.asp” // giris.asp mize yönlendirildi

else

session(“login”) = false // oturum yanlış denildi

session(“kullanici”) = “” // kullanıcı temizlendi

%>

<table cellspacing=2 cellpadding=2>

<tr><td><font class=label>Giriş Geçersiz</font></td></tr></table>

<% end if %>

<% end if %>

// Bu üst kısımda ise şifre yanlış olunca giriş geçersiz yazısı çıkartılıyor.  Aşağıdaki kodlar ise index.asp miz üzerinde çalışması gerek html formudur. Formun ayrıntılarına girmiyoruz. Standart bir html formu zaten sadece yapılan action kısmına index.asp yi belirtmektir. Çünkü işlem yine aynı dosya üzerinde yapılıyor.

 

<form method=post action=”index.asp”>

<table cellspacing=2 cellpadding=3>

<tr><td align=right><font class=label><b>Kullanıcı Adı :</b></font></td>

<td width=150><input type=text name=kullanici class=input></td>

</tr>

<tr><td align=right><font class=label><b>Şifre :</b></font></td>

<td width=150><input type=password name=sifre class=input></td></tr>

<tr><td colspan=2 height=50 align=center><input type=submit name=submit value=”PANELE GİRİŞ” class=input> </td></tr>

</table>

</form>

</td></tr>

</table>

</td>

</tr>

</table>

</center>

</body>

</html>

 

 

Bu kısma kadar yapılan her şey sadece şifreli giriş ve oturum kontrolü içindir. Basit bir şifreleme yöntemi ile yapılan bu sistemde veritabanımızdan kullanıcı adı ve şifre alma gereği duyulmamıştır. Dilersek mdb dosyamızda bir tablo oluşturup kullanıcı adı ve şifremizi içine yerleştirebilirdik ancak size bunu pek tavsiye etmiyoruz mdb dosyamız her ihtimale karşı çalınabilir. Güvenlik açısından bu daha kolaydır.

Artık veritabanımızdan bilgileri alacak sorguları yapacak dosyalarımızı hazırlayabiliriz.

İlk önce tüm işlemlerin üzerinde döneceği bir giris.asp dosyası oluşturalım ve içerisine 3 tane include dosyası koyalım ;

 

<!–#inculude file=”session.asp”–>

<!–#include file=”ust.asp”–>

<!–#include file=”alt.asp”–>

Burada amaç giris.asp mizi parçaya bölmektir. Alt.asp zaten her sayfada aynı olacaktır. Ust.asp ise işlem menüsünü gösterecektir ilk girişte. Session.asp mizi zaten biliyoruz.

Ust.asp dosyamızda neler bulunuyor şimdi onları yapalım.

 

<!–#include file=”veritabani.asp”–>

<html>

<head>

<title>Öğrenci Bilgi Sistemi</title>

<link rel=stylesheet href=style.css type=text/css>

</head>

<body bgcolor=#e5e5e5>

<center>

<table cellspacing=1 cellpadding=0 width=700 bgcolor=#aaaaaa>

<tr><td width=100% height=100% align=center bgcolor=#ffffff>

<table cellspacing=2 cellpadding=0 width=100 height=60>

<tr><form method=post action=ders.asp><td width=20% align=center><input type=submit name=submit class=input value=”Dersler”></td></form>

<form method=post action=ogrenci.asp><td width=20% align=center><input type=submit name=submit class=input value=”Öğrenciler”></td></form>

<form method=post action=not.asp><td width=20% align=center><input type=submit name=submit class=input value=”Not Girişi”></td></form>

<form method=post action=cikis.asp><td width=20% align=center><input type=submit name=submit class=input value=”Çıkış”></td></form>

</tr></table>

 

Yine veritabanı bağlantısı yapılıyor ve bize form bağlantılı Çeşitli seçenekler sunuyor. Butonlara verilen işlevler ile hazırlanmış olan ders.asp ogrenci.asp not.asp ve cikis.asp dosyalarına bağlantı kuruluyor. Bu dosyaları tek tek sizlere işlevleri ile beraber açıklayalım.

Ders.asp;

 

 

<!–#inculude file=”session.asp”–>

<!–#include file=”ust.asp”–>

<table cellspacing=0 cellpadding=0 width=90%>

<tr><td align=center height=30><font class=label><b>2004-2005 1. Dönem Dersleri</b></font></td></tr></table>

<table cellspacing=1 cellpadding=3 width=90% bgcolor=#e5e5e5>

<tr>

<td align=center bgcolor=#cccccc width=80><font class=label><b>Ders Kodu</b></font></td>

<td align=center bgcolor=#cccccc width=300><font class=label><b>Ders Adı</b></font></td>

<td align=center bgcolor=#cccccc width=50><font class=label><b>Kredi</b></font></td>

<td align=center bgcolor=#ffffff><a href=dersekle.asp?yil=2004&donem=1 class=top>Yeni Ders</a></td>

</tr>

// Alttaki 3 satırda dersler tablosuna bağlanılıp yılı 2004 olan ve donem 1 deki tüm bilgileri sorgular ve id ye göre a dan z ye sıralayarak alır. 4. satırda ise yapılan while döngüsü ile her bir ders için işlem  movenext komutuna kadar tekrarlanır ve bu şekilde dersler listelenmiş olur. Html kodları da bu ilem için örnek şekilde hazırlanmıştır.

<% sql1 = “select * from dersler where yil=2004 and donem=1 order by id asc”

set rs1 = baglanti.Execute(sql1)

if not rs1.eof or not rs1.bof then %>

<% do while not rs1.eof %>

<tr>

<td align=center bgcolor=#ffffff width=80><font class=label><%=rs1(“kod”)%></font></td>

<td align=left bgcolor=#ffffff width=300><font class=label><%=rs1(“ad”)%></font></td>

<td align=center bgcolor=#ffffff width=50><font class=label><%=rs1(“kredi”)%></font></td>

<td align=center bgcolor=#ffffff><a href=derssil.asp?yil=2004&donem=1&dersid=<%=rs1(“id”)%> class=top>Sil</a></td>

</tr>

<% rs1.movenext

loop %>

<% end if %>

</table>

<br><br>

<table cellspacing=0 cellpadding=0 width=90%>

<tr><td align=center height=30><font class=label><b>2004-2005 2. Dönem Dersleri</b></font></td></tr></table>

<table cellspacing=1 cellpadding=3 width=90% bgcolor=#e5e5e5>

<tr>

<td align=center bgcolor=#cccccc width=80><font class=label><b>Ders Kodu</b></font></td>

<td align=center bgcolor=#cccccc width=300><font class=label><b>Ders Adı</b></font></td>

<td align=center bgcolor=#cccccc width=50><font class=label><b>Kredi</b></font></td>

<td align=center bgcolor=#ffffff><a href=dersekle.asp?yil=2004&donem=2 class=top>Yeni Ders</a></td>

</tr>

// Yukarıda olduğu gibi aynı kodda alan adı ve tablo değişimi  ile 2004 yılı 2. dönemi de alınır .

<% sql1 = “select * from dersler where yil=2004 and donem=2 order by id asc”

set rs1 = baglanti.Execute(sql1)

if not rs1.eof or not rs1.bof then %>

<% do while not rs1.eof %>

<tr>

<td align=center bgcolor=#ffffff width=80><font class=label><%=rs1(“kod”)%></font></td>

<td align=left bgcolor=#ffffff width=300><font class=label><%=rs1(“ad”)%></font></td>

<td align=center bgcolor=#ffffff width=50><font class=label><%=rs1(“kredi”)%></font></td>

<td align=center bgcolor=#ffffff><a href=derssil.asp?yil=2004&donem=2&dersid=<%=rs1(“id”)%> class=top>Sil</a></td>

</tr>

<% rs1.movenext

loop %>

<% end if %>

</table>

<br><br>

<table cellspacing=0 cellpadding=0 width=90%>

<tr><td align=center height=30><font class=label><b>2005-2006 1. Dönem Dersleri</b></font></td></tr></table>

<table cellspacing=1 cellpadding=3 width=90% bgcolor=#e5e5e5>

<tr>

<td align=center bgcolor=#cccccc width=80><font class=label><b>Ders Kodu</b></font></td>

<td align=center bgcolor=#cccccc width=300><font class=label><b>Ders Adı</b></font></td>

<td align=center bgcolor=#cccccc width=50><font class=label><b>Kredi</b></font></td>

<td align=center bgcolor=#ffffff><a href=dersekle.asp?yil=2005&donem=1 class=top>Yeni Ders</a></td>

</tr>

<% sql1 = “select * from dersler where yil=2005 and donem=1 order by id asc”

set rs1 = baglanti.Execute(sql1)

if not rs1.eof or not rs1.bof then %>

<% do while not rs1.eof %>

<tr>

<td align=center bgcolor=#ffffff width=80><font class=label><%=rs1(“kod”)%></font></td>

<td align=left bgcolor=#ffffff width=300><font class=label><%=rs1(“ad”)%></font></td>

<td align=center bgcolor=#ffffff width=50><font class=label><%=rs1(“kredi”)%></font></td>

<td align=center bgcolor=#ffffff><a href=derssil.asp?yil=2005&donem=1&dersid=<%=rs1(“id”)%> class=top>Sil</a></td>

</tr>

<% rs1.movenext

loop %>

<% end if %>

</table>

<br><br>

<table cellspacing=0 cellpadding=0 width=90%>

<tr><td align=center height=30><font class=label><b>2005-2006 2. Dönem Dersleri</b></font></td></tr></table>

<table cellspacing=1 cellpadding=3 width=90% bgcolor=#e5e5e5>

<tr>

<td align=center bgcolor=#cccccc width=80><font class=label><b>Ders Kodu</b></font></td>

<td align=center bgcolor=#cccccc width=300><font class=label><b>Ders Adı</b></font></td>

<td align=center bgcolor=#cccccc width=50><font class=label><b>Kredi</b></font></td>

<td align=center bgcolor=#ffffff><a href=dersekle.asp?yil=2005&donem=2 class=top>Yeni Ders</a></td>

</tr>

<% sql1 = “select * from dersler where yil=2005 and donem=2 order by id asc”

set rs1 = baglanti.Execute(sql1)

if not rs1.eof or not rs1.bof then %>

<% do while not rs1.eof %>

<tr>

<td align=center bgcolor=#ffffff width=80><font class=label><%=rs1(“kod”)%></font></td>

<td align=left bgcolor=#ffffff width=300><font class=label><%=rs1(“ad”)%></font></td>

<td align=center bgcolor=#ffffff width=50><font class=label><%=rs1(“kredi”)%></font></td>

<td align=center bgcolor=#ffffff><a href=derssil.asp?yil=2005&donem=2&dersid=<%=rs1(“id”)%> class=top>Sil</a></td>

</tr>

<% rs1.movenext

loop %>

<% end if %>

</table>

<!–#include file=”alt.asp”–>

Yukarıdaki kodlarda yapılan işlem sadece veritabanına bağlanıp 4 dönem şeklinde bilgileri almak olmuştur. Aşağıdaki ekran çıktısına sahip olan ders.asp ders gösterimini sağlamakta olup ders ekleme ve silme linklerine sahiptir.

ssitem4

 

 

Dersekle.asp;

derssil.asp:

ogrenciekle.asp;

Not.asp;

cikis.asp; 

index.asp :

giris.asp gibi  dosyaların kodları verilmemektedir. Detaylı bir proje olduğunadn devamı verilmemektedir.

sistem8

 

Ssitem5

 

sistem7

sistem6

 

Bir yanıt yazın

Bu site spam'i azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiğini öğrenin.