|
Üyelik Sistemi
Aug 07,2007 00:00
by
dragon111
Yeni bir yazıdan merhaba. Bu uygulamamızı web sitelerinin bir çoğunda kullanılan bir script olan üyelik sistemi üzerine yapacağız. Üyelik sistemi, kullanımının web sitelerinin türüne göre farklı özellikler gösterse de genel olarak aynı amaçları taşır. Bunu günlük hayatınızda internetteki gezintileriniz arasında rahatlıkla fark edebilirsiniz. Peki bir üyelik sisteminde olması gerekenler nelerdir? Elbette ki öncelikle ziyaretçilerimizin üye olabilecekleri bir üye formu. Üyelerin şifrelerini unuttuklarında hatırlatabilmek için bir hatırlatma formu ve üyelik bilgilerini değiştirebilecekleri bir form. Bizde bu uygulamamızda Cookie yöntemini baz alarak bir üyelik sistemi oluşturalım. Cookie yönteminden kastımız şu: Üyemiz giriş yaptıktan sonra sitemizden ayrılırken eğer çıkış yapmadan sitemizden çıkarsa, tekrar sitemizde geldiğinde sistemimiz ziyaretçimizi kendisi tanıyacak. Her zaman olduğu gibi öncelikle veritabanı tasarımımızı yapalım. Ben dbuye adındaki veritabanımızı oluşturuyorum ve tbluye adındaki tablomuzu aşağıdaki gibi oluşturuyorum.
Veritabanımızı hazırladığımıza göre yavaş yavaş kod yazmaya başlayalım ve üyelerimizin girişlerini yapacakları giriş bölümümüzü yapmaya başlayalım. Fakat scriptimiz oldukça detaylı olduğu için fazlası ile dikkat etmenizi tavsiye ederim. index.asp if request("kul_adi")="" and request("sifre")="" then Response.Redirect("hata.asp?hata=3") if request("kul_adi")="" then Response.Redirect("hata.asp?hata=4") if request("sifre")="" then Response.Redirect("hata.asp?hata=5") kul_adi=false sifre=false sql= "SELECT * FROM tbluye;" Set rs=conn.execute(sql) Do until rs.eof if ucase(request("kul_adi")) = ucase(rs("kul_adi")) then kul_adi=True if ucase(request("sifre")) = ucase(rs("sifre")) then sifre=True Response.Cookies("Programci")("uye_id")=rs("id") Response.Cookies("Programci")("ad")=rs("ad") Response.Cookies("Programci")("soyad")=rs("soyad") Response.Cookies("Programci")("ad_soyad")=(rs("ad")+ " " + rs("soyad")) Response.Cookies("Programci")("kul_adi")=Request.Form("kul_adi") Response.Cookies("Programci")("sifre")=Request.Form("sifre") Response.Cookies("Programci")("email")=rs("email") Response.Cookies("Programci")("url")=rs("url") Response.Cookies("Programci")("tarih")=Now() Response.Cookies("Programci").Expires=Now()+365 end if end if rs.movenext loop if (kul_adi<>True) and (sifre<>True) then Response.Redirect("hata.asp?hata=6") else if kul_adi<>True then Response.Redirect("hata.asp?hata=7") else if sifre<>True then Response.Redirect("hata.asp?hata=8") end if end if end if rs.close Set rs=nothing end if %> Şimdi yukarıdaki kodumuzu irdeleyelim. olarak kullandığımız yerde veritabanı bağlantımızı yapıyoruz. Veritabanı bağlantımızı web sayfaları içerisine include olarak koymamızın amacı kod hammallığından kurtulmak. Veritabanı bağlantımızı bir çok sayfamızda kullanacağız ve her sayfamıza veritabanı bağlantısını yazmak yerine include metodunu kullanarak istediğimiz sayfada tek bir satır kod ile bağlantıyı rahatlıkla yapabilirsiniz. conn.asp dosyamızın içeriği aşağıdaki gibidir. conn.asp Öncelikle yeni üye yapmak yerine var olan üyelerimizin işlemlerini yapalım. Sitemizin bir üyesi sitemize giriş yapmak istedi. Ne yapacak? Kullanıcı adı ve şifresini girecek. Kullanıcımız bilgilerini girdiğinde koduyla form bilgileri ile birlikte bir spy (casus) gönderiyoruz. Peki bu casus ne işimize yarayacak? Bunu incelerken ilk kod topluluğumuza sürekli geri döneceğiz. Ne demiştik, form ile birlikte bir spy gönderiyoruz. Ve bu spy' ın değeri bir. Formumuzun action' ı index.asp dosyamız olduğundan sayfa baştan itibaren tekrar yorumlanacağına göre spy kontrolünü sayfamızın üst kısmında yapıyoruz. Şimdi tekrar ilk kod topluluğumuza geri dönüyoruz. Eğer spy 1' den farklı ise değerlerimizi Cookiemizden istiyoruz. Değilse bilgilerin kontrolünü yapıyoruz. Yanlış ise gerekli hataları vermesi için hata sayfalarına yönlendiriyoruz. Tabi bunu yaparken üyemizin daha önceden giriş yapıp, çıkış yapmadan sitemizden çıkış yaptığını kabul ediyoruz. Buradaki iki farklı çıkışı birbirine karıştırmayalım. Birincisi bizim amacımızın olduğu Oturumu kapat çıkışı, diğeri ise oturumu kapat demeden browser penceresinin kapatılıp çıkılması. Oturum kapatılmadan çıkış yapılırsa sitemiz ziyaretçimizi tanıyacaktır. Tabi ayni bilgisayardan. Eğer başka bir bilgisayardan giriş yapar yada oturumu kapat linki tıklanarak çıkılırsa tekrar giriş yapması gerekir. Şimdi Kullanıcımızın oturumu kapatarak çıktığını farz edelim. Buna göre ziyaretçimizin karşısına yeniden giriş formu gelecektir. Bu durumda ilk kod topluluğumuza göre formdan gelen bilgiler yeniden kontrol edilecektir. Gelen bilgiler veritabanımızdaki kullanıcı adı ve şifre bölümlerinde olup olmadığı kontrol edilecek eğer var ise giri işlemi tamamlanacak eğer yoksa hata sayfamızdaki uygun hata verilecektir. Buna göre ekran görüntümüz aşağıdaki gibi olacaktır.
Artık üyemize giriş yaptırdığımıza göre yeni bir adıma geçebiliriz. Üstteki resmimizde de görüldüğü gibi üye girişi yapıldıktan sonra iki üyelik seçeneği bulunuyor. Bunlardan biri üyemizin çıkışını gerçekleştireceği Oturumu kapat, diğeri ise Bilgilerini düzenle. Eğer üyemiz bilgilerinde bir değişiklik yapacaksa bu bölümü kullanacak. Şimdi bu sayfamızı hazırlayalım. bilgilerimi_duzenle.asp Üst taraftaki kodumuzda Cookiemizden üye_id bilgisini alıyor ve buna göre sql cümlemizi oluşturuyoruz. Peki şöyle düşünelim. Eğer daha önceden gönderilmiş bir cookie yoksa ne olacak? Sql cümlesi hata verecektir. Bu yüzden kod işlemlerimize geçmeden mutlaka üyelik girişinin yapılıp yapılmadığını kontrol etmeliyiz. Bunu da aşağıdaki gibi yapabiliriz. bilgilerimi_duzenle.asp ... Sitemizin İçeriği Üstteki kodumuzu sadece üyelerimizin gireceği bölümlere mutlaka yerleştirilmelidir. Aksi halde üyelik sistemimizin hiçbir amacı kalmamış oluyor. Üyelik girişi yapıldığı farz ederek sql cümlemizi oluşturmuştuk. Buna göre üyemizin ID numarasına göre "> kodundaki gibi her bir üye bilgisini aşağıdaki gibi kullanıcımıza gösteriyoruz.
Gerekli tüm değişiklikler yapıldıktan sonra kullanıcının yeni bilgileri kaydedilmelidir. Biz bu bilgilerin kaydedilme işlemlerini bilgilerimi_duzenle_kaydet.asp dosyamızda yapacağız. Şimdi bunun nasıl olduğuna bakalım. bilgilerimi_duzenle_kaydet.asp Bu kodumuzda öncelikle recorset bağlantımızı yapıyoruz. Daha sonra temizle adındaki fonksiyonumuzla enter, tek tırnak, yıldız, soru işareti, yüzde işareti, ünlem işareti ve alt çizgi işaretlerini temizliyoruz. Buna göre temizlenen her kodu girişlerin boş olup, olmadığını kontrol ediyoruz. Eğer boş ise bu alanları kullanıcıya uygun bir mesajla gösteriyoruz. Değilse yeni değişiklikleri veritabanımızda güncelliyoruz. Buraya kadar olan bölümümüz üyelik girişi yapıldıktan sonra olan işlemlerdi. Artık yeni üyeler için oan bölümlerimizi yapmaya başlayabiliriz. Bunun için ilk önce ziyaretçimizin üye olabilmesi için gerekli bir üyelik formu yapmamız gerekiyor. Bunun için aşağıdaki gibi bir form oluşturalım.
Burada url alanı hariç her alanın doldurulmasını istiyoruz. Birde şifrenin doğruluğunu sınamak için şifre tekrar bölümü oluşturuyoruz. Olurda kullanıcımız şifre bölümünü yanlış girerse ikinci şifre giriş alanı bu hatayı yakalasın. Formumuz doldurulduktan sonra kullanıcımız uye_kayit_isle.asp dosyamıza gidecek ve kayıt işlemimiz tamamlanacak. Şimdi kayıt işlemi için kullanacağımız kodlarımıza bir göz atalım. uye_kayit_isle.asp Bu bölümde veritabanı bağlantımızı kurup, formdan gelen bilgilerimizi alıyoruz. Burada dikkat etmemiz gereken önemli kontrol bulunuyor. Birincisi daha önceden de bahsetmiş olduğumuz şifre girişlerinin doğruluğu. Eğer girilen şifre ve şifre tekrar alanlarımız birbirini tutmuyorsa hata.asp sayfamıza gidecek. İkinci kontrolümüzde ziyaretçimizin girdiği mail için olacak. Çünkü bu adımımızdan sonra göreceğimiz şifre hatırlatma bölümümüzde mail ve kullanıcı adını kullanacağız. Bu yüzden girilen mail bilgisinin daha önceden girilmemiş olması gerekiyor. Bunun için girilen maili veritabanımız içerisinde bir döngüye sokup, veritabanımızda olup olmadığını kontrol ediyoruz. Eğer girilmesi gereken bu bilgilerde her hangi bir eksiklik varsa bunu da uygun bir mesajla kullanıcımıza gösteriyoruz. Eğer herhangi bir sorunumuz yoksa ayni sayfa içerisinde aşağıdaki gibi kodumuzu hazırlıyoruz. uye_kayit_isle.asp Form alanlarını doldurmada herhangi bir problem olmadığı için formdan gelen bilgileri kaydediyoruz. Eğer kayıtlar sırasında bir problem oluşmuşsa hata verdiriyoruz. Eğer yoksa Uygun bir mesajı ziyaretçimize veriyoruz. Bunun yanında üye kayıt işlemi ayni zamanda üye giriş işlemi olması için kayıt sırasında Cookiemizi gönderiyoruz. Ziyaretçimiz kayıt olduğunda ayni anda girişte yapmış olacak. Bu işlemimizi de bitirdiğimize göre yeni üye olacak ziyaretçilerimiz için olan son işlemimiz olan Şifre hatırlatma bölümümüze geçebiliriz. Bunun için sifremi_unuttum.asp sayfamızı kullanacağız.
Bu bölümde şifresini unutan ziyaretçimizin şifresini hatırlamasını sağlayacağız. Bunun içinde onun gerçek üyemiz olup olmadığını kontrol etmek için üyemizden kullanıcı adı ve mail bilgisini bize verilmesini isteyeceğiz. Aslında bu yöntem pekte güvenli sayılmaz. Bunun için en güzel yöntem şudur. Üyeden mail adresini istemek ve Kullanıcı adı ve şifresini mail adresine göndermek. Bunun yapımını da sizlere bırakıyorum. Şimdi bilgiler girildikten sonra sifre_hatirlatma.asp sayfasında neler yapacağımıza bakalım. sifre_hatirlatma.asp Öncelikle formdan gelen bilgilerin doldurulup doldurulmadığını kontrol ediyoruz ve gerekli hata mesajının verilmesini sağlıyoruz. Ayrıca buldu değişkenimizin ilk baştaki değerini false olarak belirtiyoruz. sifre_hatirlatma.asp ... Sayfa içeriğimiz. Gelen bilgilerde herhangi bir problem yoksa gelen bilgilere göre veritabanımızı bir döngü ile kontrol ediyoruz. Ve gelen bilgilere uygun olan kayıt bulunup, ziyaretçimize gösterilecektir. Değilse yine uygun bir mesajla ziyaretçimize gösterilecektir. |
||||||||||||||||||||||||||||||||||