Dreamweaver ile Üyelik Sistemi - Üye bilgileri güncelleme sayfası
Bu makale dizisi ile Dreamweaver kullanarak sitemiz için bir üyelik sistemini nasıl yapacağımızı inceleyeceğiz. Üyelerimizin üye olurken verdiği bazı bilgileri değiştirebileceği ve profillerini güncelleyebilecekleri sayfaları nasıl yapacağımızı bu makalede göreceğiz
Üyelik sistemini kullanan üye bilgilerini değiştirmek isteyebilirler. Bu imkanı mümkün kılan üye profili güncelleme sayfalarını Dreamweaver ile yapmak hiç de düşünüldü kadar zor değil. Zira basit bir veri güncelleme formu (update record) ve oturum bilgisine göre filtrelenmiş bir kayıt dizisi (recordset) bu işlemi yapmak için yeterli işlemlerdir. Bu uygulamada bu işlemleri nasıl birleştireceğimizi göreceğiz.
Öncelikle yeni bir PHP dokümanı oluşturup sitemiz altında uygun bir yere uygun bir isim ile (profile.php) kaydediyoruz. Sayfada görsel değişiklikleri istediğiniz gibi yapabilirsiniz. Bu sayfanın sadece üyelere özel bir sayfa olması ve oturum bilgisine ihtiyacımız olduğundan bu sayfaya üyelere özel bir biçimde yetki kısıtlaması (Restrict Acces To Page) vereceğiz. Bu işlemi yapmazsak kayıt dizisi için kullanacağımız oturum bilgisine erişemeyiz dolayısı ile üye bilgilerini çektiremeyiz.
Bu işlem için eğer açık değilse Windows / Server Behaviors menüsü ile "Server Behaviors" panelini açıyoruz. (+) işaretine tıklayarak açılan menüden "User Authentication / Restrict Access To Page" seçeneğine tıklıyoruz.
Bunun dışında, bir veri güncelleme işlemi yapacağımız için üye kaydında kullandığımız forma benzer bir form yaratmalıyız. Bu formu nasıl yapacağımızı daha önce bir çok defa anlatmıştık. Formumuzun genel yapısını aşağıdaki resimden inceleyebilirsiniz.
Dikkatinizi çekeceği üzere bu formumuzda üye kullanıcı adını güncellemeyeceğiz. Üyelerinizin kimliklerini koruyabilmek adına bu kısıtlamayı kullanabilirsiniz. Tabi bu tamamıyla sizin isteğinize kalmış.
Formu yaratırken dikkat edeceğimiz bir diğer nokta ise üye ID numarasının tutulduğu bir gizli alana (UserID : hiden field) ihtiyacımız olmasıdır. Bu üye ID numarasına göre veri güncelleme işlemi sırasında veritabanındaki hangi kaydın güncelleneceğini belirtmiş olacağız.
Üye bilgisi için kayıt dizisi tanımlama
Formumuzu uygun şekilde hazırladıktan sonra sıra bu form içerisine üyemizin şu anki bilgilerini yazdırmaya geliyor. Bunu da tabi ki bir kayıt dizisi ile yapacağız. Fakat hangi üyenin bilgilerini çektireceğimiz bilgisini nereden alacağız? İşlemin en can alıcı noktası olan bu bilgiyi bir önceki makalemizde de anlattığımız üzere DW ile hazırlanmış üyelik sistemlerinde giriş yapmış kullanıcının kullanıcı adı bilgisinin tutulduğu oturum değişkeni olan "MM_Username" değerinden alacağız. Bu değişkene göre kaydımızı çektirecek ve formumuzun içerisine yazdıracağız.
Kayıt dizisini tanımlarken "Filter" bölümünden üye kullanıcı adının tutulduğu "kullanici_adi" alanını "MM_Username" oturum değişkenine (Session Variable) göre eşitliğinin belirtecek şekilde ayarlıyoruz. Kayıt dizimiz için yapacaklarımız bu kadar "OK" diyerek işlemi tamamlayabilirsiniz.
Kayıt dizimizi tamamladıktan sonra "Application" panel grubu altındaki "Bindings" panelinde listelenen veritabanı alanlarını uygun form elemanlarının içerisine sürüklüyoruz. Bu işlemi nasıl yapacağımızı "Dreamweaver ile veri güncelleme sayfalarının yapımı" başlıklı makalede dile getirmiştik.
Bu işlemin ardından formumuz aşağıdaki gibi görünecektir.
Bilgilerin güncellenmesi
Formumuz ve üye bilgilerimiz hazır olduğuna göre bu formdaki bilgilerin veritabanındaki ilgili kaydı güncellemesi işlemini yapabiliriz. Bunun için "Server Behaviors" panelinden (+) işaretine tıklayıp açılan menüden "Update Record" seçeneğine tıklıyoruz.
Açılan kayıt güncelleme iletişim penceresinden gerekli yapılandırmaları yapıp bilgi güncelleme formumuzu tamamlayabiliriz.
Bu aşamada yaptığımız yapılandırmalar önceki makalelerde anlatılan kayıt bilgisi güncelleme işlemlerinden çok da farklı değil. Birincil anahtar olan üye ID numarasının tutulduğu "id" alanının formdan gelen gizli form elemanı olan "UserID" alanı ile eşleşmesine ve "Primary key" seçeneğinin işaretli olduğuna dikkat etmeliyiz.
Hangi kaydı güncelleyeceğimiz bilgisini formdan gelen bu "UserID" alanından belirliyoruz. Fakat burada ciddi bir güvenlik açığı ortaya çıkıyor. Sayfanın kaynak koduna bakan herkes bir ID numarasının tutulduğu gizli bir form elemanının olduğunu fark edece ve bu numarayı değiştirerek başka kullanıcıların bilgilerini de değiştirebileceğini anlayacaktır. Öte yandan bu kendi bilgisayarında hazırladığı başka bir formu sizin formunuza göndererek site sahibi yada yöneticisi konumundaki diğer üyelerin bilgilerini (ve tabi ki şifresini de) değiştirebilecektir. Bunu engellemek için sayfanın PHP kodlarına küçük bir el kodlaması ile müdahale edeceğiz.
Yapacağımız işlem şu şekilde; üyenin gönderilen formdan gelen kullanıcı ID numarasının (bu örneğimizde "UserID") şu anki oturum açmış kullanıcının ID numarası ile uyuşup uyuşmadığını kontrol etmek şeklinde olacak. İlgili PHP kodunu veri güncelleme manipulasyonundan önce ve "GetSQLValueString" fonksiyonundan sonra bir yere eklemelisiniz.
Tabi ki burada geçen veritabanı SQL sorgusundaki alan isimleri ve formdan gelen üye ID numarası bilgisi olan "$_POST['UserID']" değişkenini kendi çalışmanıza uygun olarak değiştirmelisiniz.
ASP sunucu modeli ile çalışan arkadaşlar için ilgili kod ise şu şekilde;
Böylece üye bilgisi güncelleme işlemini de tamamlamış oluyoruz. Yapmanız gereken giriş yapmış kullanıcıların bu üye bilgisi güncelleme sayfasına (profile.php) erişebilecekleri bir link yaratmak. Geriye üyelik sistemimizin son parçası olan "şifre hatırlatma sayfası" kalıyor. Onu da yazı dizimizin son makalesinde inceleyeceğiz. Yeni bir makalede görüşmek dileğiyle, herkese iyi çalışmalar.
Kaynak www.dw.gen.tr/makale/detay/dreamweaver-uyelik-profil-bilgi-guncelle/