BURADA REKLAM VERİN
 
Şimdi Üye Ol | Şifremi Unuttum

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

Ana SayfaSanalkurs.netProgramlarSanalkurs.netÖnemli SitelerSanalkurs.netYazarlarSanalkurs.netDers EkleSanalkurs.netE-DergiSanalkurs.netBlog Sanalkurs.netİletişimSanalkurs.netForum
 
Anasayfa » ASP.net (44 ders)
 
Asp.NET ile Üyelik Sistemi (Bölüm 2)

Yazar: Mustafa Çiçek  
Eklenme: 29.05.2009   Okunma: 3370   Seviyesi:  İleri
 
Merhaba arkadaşlar?
Bu makalede bütün işlemleri tek tek anlatmayacağım. Veritabanı önceki makalede kullandığımız ile aynı veritabanıdır. Nasıl oluşturacağınızı bilmiyorsanız bir önceki makaleyi okumalısınız.
İlk olarak bu makalede neler yapacağımızı kısaca özetleyeceğim;
1. Yeni üye kaydı
2. Parolamı unuttum
3. Üye giriş işlemi
4. Üye çıkış işlemi
5. Aktif kullanıcı sayısını öğrenme
Yeni projemizdeki sayfalar bu şekildedir. Bu sayfaları eklemek için Web Site > Add New Item adımlarını kullanabilirsiniz.

http://img.sanalkurs.net/uploads/sayfalar.jpg

İlk olarak veritabanımızda nelerimiz olduğuna bir göz atalım.

http://img.sanalkurs.net/uploads/veritabanilistesi.jpg

Gördüğümüz gibi 5 adet alanımız var.

Şimdi Anasayfamızdan (Default.aspx) başlayarak neler yaptığımıza bakalım.
Default.aspx sayfamızın tag?leri;

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Asp.Net ile Üyelik Sistemi</title>
</head>
<body>
    <form id="icerik_form" runat="server">
    <div>
        <table align="center" width="600">
            <tr>
                <td height="100" style="text-align: center; background-color: #CCCCCC;">
                    <h1>
                        Asp.Net ile Üyelik Sistemi</h1>
                </td>
            </tr>
            <tr>
                <td height="250" style="text-align: center; font-size: x-large; color: #FFFFFF; background-color: #FF0000">
                    Sayın
                    <asp:Label ID="lblAktifKullanici" runat="server"></asp:Label>
                    , sitemize hoşgeldiniz.
                </td>
            </tr>
            <tr>
                <td style="text-align: center; font-size: x-large; color: #FFFFFF; background-color: #CCCCCC">
                    <asp:Button ID="btnCikisYap" runat="server" OnClick="btnCikisYap_Click" Text="Çıkış Yap" />
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>


Bu tag?lerin oluşturduğu sayfamız şu şekildedir.

http://img.sanalkurs.net/uploads/defaultaspx.jpg

Default.aspx.cs kodlarımız;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // Eğer herhangi bir kullanıcı yok ise
        if (Session["UyeID"] == null)
        {
            // Üye giriş sayfasına yönlendir
            Response.Redirect("GirisYap.aspx");
        }
        else 
        {
            // Varsa ekrana adını soyadını yaz
            lblAktifKullanici.Text = Session["AdiSoyadi"].ToString();
        }

    }
    protected void btnCikisYap_Click(object sender, EventArgs e)
    {
        // Bütün Session değerlerini sıfırlayarak kullanıcının sistemden çıkış yapması sağlanır
        Session.Abandon();
    }
}


Kullanıcı Giriş (GirisYap.aspx) sayfamız;

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GirisYap.aspx.cs" Inherits="GirisYap" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Giriş Yap</title>
</head>
<body>
    <form id="icerik_form" runat="server">
    <div>
        <table align="center">
            <tr>
                <td colspan="2" height="50" style="text-align: center; background-color: #CCCCCC">
                    <h3>
                        Asp.Net ile Üyelik Sistemi<br />
                        Giriş Sayfası</h3>
                </td>
            </tr>
            <tr>
                <td>
                    Kullanıcı Adı:
                </td>
                <td>
                    <asp:TextBox ID="txtKullaniciAdi" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    Parola:
                </td>
                <td>
                    <asp:TextBox ID="txtParola" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td colspan="2" style="text-align: center">
                    <asp:Button ID="btnGirisYap" runat="server" Text="Giriş Yap" OnClick="btnGirisYap_Click" />
                </td>
            </tr>
            <tr>
                <td colspan="2" style="text-align: center">
                    <asp:Label ID="lblKullaniciKontrol" runat="server"></asp:Label>
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>


Oluşan sayfamız;

http://img.sanalkurs.net/uploads/girisyapaspx.jpg

GirisYap.aspx.cs kodlarımız;

using System.Data.SqlClient;
public partial class GirisYap : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // Eğer zaten bir kullanıcı giriş yapmış ise Default sayfasına yönlendir
        if (Session["UyeID"] != null)
        {
            Response.Redirect("Default.aspx");
        }

    }
    protected void btnGirisYap_Click(object sender, EventArgs e)
    {
        // Veritabanı bağlantısı için SqlConnection nesnemizi oluşturuyoruz
        SqlConnection baglanti = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\UyelikSistemi.mdf;Integrated Security=True;User Instance=True");
        // Gerekli sorgumu yapabilmek için SqlCommand nesnemizi oluşturuyoruz
        SqlCommand sorgu = new SqlCommand("SELECT * FROM Uyeler WHERE KullaniciAdi=@KullaniciAdi AND Parola=@Parola", baglanti);
        // Burada sorgumuza verileri parametreler ile gönderiyoruz
        sorgu.Parameters.Add("@KullaniciAdi", SqlDbType.VarChar).Value = txtKullaniciAdi.Text;
        sorgu.Parameters.Add("@Parola", SqlDbType.VarChar).Value = txtParola.Text;
        // Veritabanı bağlantımızı açıyoruz
        baglanti.Open();
        SqlDataReader oku = sorgu.ExecuteReader(CommandBehavior.CloseConnection);
        // Eğer bir kayıt okunuyorsa
        if (oku.Read())
        {
            // Okunan verileri Session'larda sakla
            Session["UyeID"] = oku["UyeID"].ToString();
            Session["AdiSoyadi"] = oku["Adi"].ToString() + " " + oku["Soyadi"].ToString();
            // Giriş sayfasına yönlendir
            Response.Redirect("Default.aspx");
        }
        else // Böyle bir kayıt okunamadıysa
        {
            lblKullaniciKontrol.Text = "Böyle bir kullanıcı bulunamadı !!!";
        }
        oku.Close(); // Reader nesnesini kapat
        baglanti.Close(); // Bağlantı nesnesini kapat
    }
}


Sırada Kullanıcı Kaydı(KullaniciKaydi.aspx) sayfamız var;

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="KullaniciKaydi.aspx.cs" Inherits="KullaniciKaydi" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Kullanıcı Kaydı</title>
</head>
<body>
    <form id="icerik_form" runat="server">
    <div>
        <table align="center">
            <tr>
                <td colspan="3" height="50" style="text-align: center; background-color: #CCCCCC">
                    <h3>
                        Asp.Net ile Üyelik Sistemi<br />
                        Kullanıcı Kaydı</h3>
                </td>
            </tr>
            <tr>
                <td>
                    Kullanıcı Adı:
                </td>
                <td>
                    <asp:TextBox ID="txtKullaniciAdi" runat="server"></asp:TextBox>
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="kullaniciadiRFV" runat="server" ControlToValidate="txtKullaniciAdi"
                        ErrorMessage="(*)"></asp:RequiredFieldValidator>
                </td>
            </tr>
            <tr>
                <td>
                    Parola:
                </td>
                <td>
                    <asp:TextBox ID="txtParola" runat="server"></asp:TextBox>
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="parolaRFV" runat="server" ControlToValidate="txtParola"
                        ErrorMessage="(*)"></asp:RequiredFieldValidator>
                </td>
            </tr>
            <tr>
                <td>
                    Parola Tekrar:
                </td>
                <td>
                    <asp:TextBox ID="txtParolaTekrar" runat="server"></asp:TextBox>
                </td>
                <td>
                    <asp:CompareValidator ID="parolakontrolCV" runat="server" ControlToCompare="txtParola"
                        ControlToValidate="txtParolaTekrar" ErrorMessage="(*)"></asp:CompareValidator>
                </td>
            </tr>
            <tr>
                <td>
                    Adı:
                </td>
                <td>
                    <asp:TextBox ID="txtAdi" runat="server"></asp:TextBox>
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="adRFV" runat="server" ControlToValidate="txtAdi"
                        ErrorMessage="(*)"></asp:RequiredFieldValidator>
                </td>
            </tr>
            <tr>
                <td>
                    Soyadı:
                </td>
                <td>
                    <asp:TextBox ID="txtSoyadi" runat="server"></asp:TextBox>
                </td>
                <td>
                    <asp:RequiredFieldValidator ID="soyadRFV" runat="server" ControlToValidate="txtSoyadi"
                        ErrorMessage="(*)"></asp:RequiredFieldValidator>
                </td>
            </tr>
            <tr>
                <td colspan="3" style="text-align: center">
                    <asp:Button ID="btnKaydol" runat="server" OnClick="btnKaydol_Click" Text="Kaydol" />
                </td>
            </tr>
            <tr>
                <td colspan="3" style="text-align: center">
                    <asp:Label ID="lblMesaj" runat="server"></asp:Label>
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>


Sayfamızın görüntüsü;

http://img.sanalkurs.net/uploads/kullanicikaydiaspx.jpg

Bu sayfada farklı olarak Validator kontrolleri kullandık. Bundan uzun uzun bahsetmeyeceğim çünkü bu ayrı bir makale gerektirir. Ama ne işe yaradığını söyleyim. Verilerin hepsi girilmiş mi girilmemiş mi? Değerler eşit mi değil mi? Belli aralıklarda veri girişi yapmamızı verileri kontrol etmemizi sağlıyor. Bunlar sağlanmadığı sürece sayfada işlem yapamıyoruz. Bunu da araştırmanız gerekecek veya bir makale ile ben açıklayacağım ;)

KullaniciKaydi.aspx.cs kodlarımız;

using System.Data.SqlClient;
public partial class KullaniciKaydi : System.Web.UI.Page
{
    protected void btnKaydol_Click(object sender, EventArgs e)
    {
        // Veritabanı bağlantısı için SqlConnection nesnemizi oluşturuyoruz
        SqlConnection baglanti = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\UyelikSistemi.mdf;Integrated Security=True;User Instance=True");
        // Gerekli sorgumu yapabilmek için SqlCommand nesnemizi oluşturuyoruz
        SqlCommand sorgu = new SqlCommand("INSERT INTO Uyeler(KullaniciAdi,Parola,Adi,Soyadi) VALUES(@KullaniciAdi,@Parola,@Adi,@Soyadi)", baglanti);
        // Burada sorgumuza verileri parametreler ile gönderiyoruz
        sorgu.Parameters.Add("@KullaniciAdi", SqlDbType.VarChar).Value = txtKullaniciAdi.Text;
        sorgu.Parameters.Add("@Parola", SqlDbType.VarChar).Value = txtParola.Text;
        sorgu.Parameters.Add("@Adi", SqlDbType.VarChar).Value = txtAdi.Text;
        sorgu.Parameters.Add("@Soyadi", SqlDbType.VarChar).Value = txtSoyadi.Text;
        // Veritabanı bağlantımızı açıyoruz
        baglanti.Open();
        sorgu.ExecuteNonQuery();
        lblMesaj.Text = "Kayıt yapıldı !!!";
        baglanti.Close(); // Bağlantı nesnesini kapat
    }
}


Parolamı Unuttum (ParolamiUnuttum.aspx) sayfamız;

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ParolamiUnuttum.aspx.cs"
    Inherits="ParolamiUnuttum" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Parolamı Unuttum</title>
</head>
<body>
    <form id="icerik_form" runat="server">
    <div>
        <table align="center">
            <tr>
                <td colspan="2" style="text-align: center; background-color: #CCCCCC">
                    <h3>
                        Asp.Net ile Üyelik Sistemi<br />
                        Parolamı Unuttum</h3>
                </td>
            </tr>
            <tr>
                <td>
                    Kullanıcı Adı:
                </td>
                <td>
                    <asp:TextBox ID="txtKullaniciAdi" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td colspan="2" style="text-align: center">
                    <asp:Button ID="btnParolaGonder" runat="server" OnClick="btnParolaGonder_Click" Text="Parolamı Gönder" />
                </td>
            </tr>
            <tr>
                <td colspan="2" style="text-align: center">
                    <asp:Label ID="lblMesaj" runat="server"></asp:Label>
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>


Ekran görüntümüz;

http://img.sanalkurs.net/uploads/parolamiunuttumaspx.jpg

ParolamiUnuttum.aspx.cs kodlarımız;

using System.Data.SqlClient;
public partial class ParolamiUnuttum : System.Web.UI.Page
{
    protected void btnParolaGonder_Click(object sender, EventArgs e)
    {
        // Veritabanı bağlantısı için SqlConnection nesnemizi oluşturuyoruz
        SqlConnection baglanti = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\UyelikSistemi.mdf;Integrated Security=True;User Instance=True");
        // Gerekli sorgumu yapabilmek için SqlCommand nesnemizi oluşturuyoruz
        SqlCommand sorgu = new SqlCommand("SELECT * FROM Uyeler WHERE KullaniciAdi=@KullaniciAdi", baglanti);
        // Burada sorgumuza verileri parametreler ile gönderiyoruz
        sorgu.Parameters.Add("@KullaniciAdi", SqlDbType.VarChar).Value = txtKullaniciAdi.Text;
        // Veritabanı bağlantımızı açıyoruz
        baglanti.Open();
        SqlDataReader oku = sorgu.ExecuteReader(CommandBehavior.CloseConnection);
        // Eğer bir kayıt okunuyorsa
        if (oku.Read())
        {
            // Burada ben kullanıcı adını gönderip parolayı istedim
            // Gelen veriyide Label'a yazdırdım
            // Tabiki siz bu kadar basit yapmayın
            // Örneğin; kullanıcı mail adresini girsin eğer böyle bir kayıt varsa
            // okunan parolayı kullanıcıya mail olarak gönderin
            // Ben bu kısma giremeyeceğim bunun için internette bolca örnek var
            // "Asp.net ile mail gönderme" diyerek aratın !!!
           lblMesaj.Text = oku["Parola"].ToString();
        }
        else // Böyle bir kayıt okunamadıysa
        {
            lblMesaj.Text = "Böyle bir kullanıcı bulunamadı !!!";
        }
        oku.Close(); // Reader nesnesini kapat
        baglanti.Close(); // Bağlantı nesnesini kapat
    }
}


Ve son olarak Global.asax dosyamıza gelelim;


<%@ Application Language="C#" %>

<script RunAt="server">

    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup

    }

    void Application_End(object sender, EventArgs e)
    {
        //  Code that runs on application shutdown

    }

    void Application_Error(object sender, EventArgs e)
    {
        // Code that runs when an unhandled error occurs

    }

    void Session_Start(object sender, EventArgs e)
    {
        // Session değeri başladığında yani Session'a bir değer atandığında buradaki kodlar çalışacak
        // Burada da yaptığımız işlem ziyaretçi sayısını 1 artırmak
        // Kullanıcı sayısınıda Application nesnesinde saklıyoruz
        // Bunun nedeni ise Applicaion nesnesi sistemdeki tüm kullanıcıların aynı anda kullanabileceği bir nesnes olmasıdır
        // Yani bütün kullanıcılar tek bir nesne ile çalışır
        // Kullanıcı sayısınıda ekranda bi yere yazdırmak istiyorsanız
        // Ör: Label1.Text=Application["ToplamZiyaretciSayisi"].ToSring() demeniz yeterlidir
        if (Application["ToplamZiyaretciSayisi"] == null)
            Application["ToplamZiyaretciSayisi"] = 1;
        else
        {
            int ziyaretcisayisi = (int)Application["ToplamZiyaretciSayisi"];
            ziyaretcisayisi += 1;
            Application["ToplamZiyaretciSayisi"] = ziyaretcisayisi;
        }
        // Kullanıcının sistemde kalacağı süre. (60 dakida)
        Session.Timeout = 60;

    }

    void Session_End(object sender, EventArgs e)
    {
        // Session değerini sıfırladığımızda çalışacak kodları buraya yazıyoruz
        // Bu değer sıfırlandığında kullanıcı sistemden çıkmış olacak
        // Haliyle kullanıcı sayısını 1 eksiltiyoruz
        int ziyaretcisayisi = (int)Application["ToplamZiyaretciSayisi"];
        ziyaretcisayisi -= 1;
        Application["ToplamZiyaretciSayisi"] = ziyaretcisayisi;
        Response.Redirect("GirisYap.aspx");
    }
       
</script>


Bu dosyamızın veya sayfamızın diyelim sayfada değilde herneyse ;) eklediğimizde içeriği önceden belirlenmiş halde gelir. Sadece aralardaki blokları biz dolduruyoruz.

Bu makelemizinde burada sonuna geldik. Neden daha fazla ayrıntılı anlatmadınız diyorsanız bunların çoğundan bir önceki makalede bahsemiştim. Onu okumanızı tavsiye ederim...
 

 

Asp.NET ile Üyelik Sistemi  (Bölüm 2) Dersini Yazdirin YAZDIR
Paylas

"Asp.NET ile Üyelik Sistemi (Bölüm 2)" dersi için 14 yorum var

30.05.2009 ncg diyor ki:
teşekkürler

30.05.2009 PsyGo diyor ki:
asp.net ten anlamıyorum ama öğrenmek istiyordum valla hevesimi arttırdın :)

03.06.2009 erkanankgun diyor ki:
Aslında asp.net'te bu işlemler otomatik olarak (Visual Studio programı ile)birkaç dakikada yaptırılabiliyor. Hazır nesneler var. Fakat tabiki iyi bir programcı hazırı değil, mantığı bilmelidir. Güzel bir makale olmuş, elinize sağlık. Teşekkür ederiz.

03.06.2009 mstfcck diyor ki:
Evet hazır nesneler var ama bunlar her zaman ihtiyacımızı karşılayamabiliyor. Bu şekilde çok daha ayrıntılı üyelik sistemi geliştirilebilir.

17.06.2009 takao200 diyor ki:
COK FAYDALI BİR DERS OLMUS. BUNA BENZER TEMEL ANLATIMLAR, CABUK OGRENMEMİZ ACISINDAN İYİ OLUYOR. COK TESEKKURLER.

25.06.2009 onuradar diyor ki:
// Session değerini sıfırladığımızda çalışacak kodları buraya yazıyoruz
// Bu değer sıfırlandığında kullanıcı sistemden çıkmış olacak
// Haliyle kullanıcı sayısını 1 eksiltiyoruz
int ziyaretcisayisi = (int)Application["ToplamZiyaretciSayisi"];
ziyaretcisayisi -= 1;
Application["ToplamZiyaretciSayisi"] = ziyaretcisayisi;
Response.Redirect=("GirisYap.aspx";
}

</script>


Glabol.asax 'ın Bu kısmından " ) expected " hatası alıyorum. nedeni ne olabilir?

28.06.2009 mstfcck diyor ki:
Belliki kopyala yapıştır yapıyorsunuz. Kodları kendiniz yazarsanız böyle bir hata ile karşılaşmazsınız. Verdiğiniz kodda da direk göze çarpıyor hata. Response.Redirect=("GirisYap.aspx"); bu satırdaki parantez kapatılmamış olsa gerek. Editor kodlardaki son parantezleri atıyor galiba...

03.07.2009 sagokesh diyor ki:
;)

23.08.2009 tedoras1566 diyor ki:
bende copy paste yaptım ilk sonra kendim yazdım kendi yazdığımda bir sorun yok ama öğrenmek isttiyorum sizin yazdığınızda
baglanti.Open();
>>> sorgu.ExecuteNonQuery();<<<[Hatalı kısım burası]
lblMesaj.Text = "Kayıt yapıldı !!!";
baglanti.Close(); // Bağlantı nesnesini kapat
hatalı kısım burası yazdığım yerde ne gibi bir sorun var :S

24.09.2009 mstfcck diyor ki:
ama hatayı neden veriyor bu şekilde yardımcı olamam. benim yazdığım kodlar çalışmasa buraya zaten yüklemem. biraz dikkatli bi şekilde yeniden deneyin :(

17.10.2009 msatic diyor ki:
Neden Session.Abondon(); kullandınız ki ?
Belki sitede kullanıcı ile ilgili başka ayarlar falan tutuluyor.Örn : Dil vs böyle yaparsak bütün sessionlanır onun yerine sadece 1 session u boşaltırsak kanaatimce daha iyi olur.
Yazı için teşekürler..

27.12.2009 mstfcck diyor ki:
Burda başka bi şey kullanmadığımız için direk .abandon kullandım.
Onun içinde Session["isim"]=null; veya =""; boşaltabilirsiniz. İsteğe bağlı bu kullanmak zorunda değilsiniz :) Ben sadece session ile girdik session ile çıkış yapalım dedim...

14.03.2010 Pierce_MVP diyor ki:
Acaba bu ders vb içinde anlatılabilir mi?

  BU DERSE YORUM EKLEYİN

Üye olmadan yorum ekleyemezsiniz !


UYARI: SANALKURS.net'te yer alan materyaller ile ilgili her türlü sorumluluk hazırlayan veya gönderene aittir. Yazarlar, gönderdikleri makale ve derslerle başkalarını yanıltıcı bilgi veremezler. SANALKURS.net bilgilerin kullanımı sonucunda doğacak hata ve zararlardan sorumlu tutulamaz. SANALKURS.net'te yer alan bir makale link vermek ve kaynak göstermek şartıyla başka bir sitede yayınlanabilir. SANALKURS.net kullanıcıları ve üyeleri, üçüncü kişilerin telif hakkı sahibi bulunduğu hiçbir yazı, fotoğraf, resim vb. materyal ve ürünü kullanamazlar. SANALKURS.net kullanıcı ve yazarlarının, üçüncü kişilerin telif hakkı sahibi olduğu yazı, resim vb. ürünleri izinsiz kullanması durumunda, her türlü hukuki ve cezai sorumluluk kendilerine aittir.
 İSTATİSTİKLER
XML Kaynağımızdan yararlanarak sitemizdeki derslerimizi masaüstünüzden yada web sitenizden takip edebilirsiniz
ÇEVRİMİÇİ 194 Ziyaretçi, 10 Üye (1 Gizli)
pc doktoru, Vejdi, siracel, void_main, By Necdet, berrock, Di Guan, Ugur YAPAL, modapark
Bugün: 2483, Dün: 10049, Bu Ay: 158543, Toplam Ziyaret: 5433442, Toplam Üye: 212486, Son Üye:
Toplam Ders: 2836, Toplam Yazar: 56, Toplam Dosya: 51, Toplam Link: 27
   
RSS Kaynağımızdan yararlanarak sitemizdeki derslerimizi masaüstünüzden yada web sitenizden takip edebilirsiniz