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
www.dijitalders.com

Ü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.

Server Behaviors panelinden User Authentication / Restrict Access To Page seçeneğine tıklıyoruz

Server Behaviors panelinden 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.

Üye profili güncelleme formu

Üye profili güncelleme formu

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.

Üye bilgilerini çektirdiğimiz kayıt dizisi

Üye bilgilerini çektirdiğimiz kayıt dizisi

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.

Kayıt dizisindeki alanları ilgili form elemanlarının içine yazdırıyoruz

Kayıt dizisindeki alanları ilgili form elemanlarının içine yazdırıyoruz

Bu işlemin ardından formumuz aşağıdaki gibi görünecektir.

Üye bilgisi formunun DW içerisindeki görünümü

Üye bilgisi formunun DW içerisindeki görünümü

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.

Server Behaviors menüsünden Update  Record seçeneğine tıklıyoruz

Server Behaviors menüsünden 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.

Profil bilgileri güncelleme iletişim penceresi

Profil bilgileri güncelleme iletişim penceresi

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.

mysql_select_db($database_baglantim, $baglantim);
$CheckUserSQL=sprintf("SELECT id FROM blg_uyeler WHERE kullanici_adi=%s",
GetSQLValueString($_SESSION['MM_Username'], "text"));
$CheckUserQuery = mysql_query($CheckUserSQL, $baglantim) or die(mysql_error());
if (mysql_num_rows($CheckUserQuery)) {
            $CheckUserID  = mysql_result($CheckUserQuery,0,'id');
            if ($CheckUserID != $_POST['UserID'] && isset($_POST['UserID'])) {
                        echo("Kullanici bilgisi uyusmuyor! Lutfen yeniden giris yapip tekrar deneyiniz");
                        exit;
                        }
            }
 

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;

Dim CheckUserSQL
Dim CheckUserSessionVar
Dim CheckUser
Dim CheckUser_cmd
Dim CheckUserFormVar
 
CheckUserSessionVar = Session("MM_Username")
CheckUserFormVar = Request.Form("UserID")
CheckUserSQL = "SELECT id FROM blg_uyeler WHERE kullanici_adi=?"
 
Set CheckUser_cmd = Server.CreateObject ("ADODB.Command")
CheckUser_cmd.ActiveConnection = MM_baglantim_STRING
CheckUser_cmd.CommandText = CheckUserSQL
CheckUser_cmd.Parameters.Append CheckUser_cmd.CreateParameter("param1", 200, 1, 32, CheckUserSessionVar)
CheckUser_cmd.Prepared = true
Set CheckUser = CheckUser_cmd.Execute
If Not CheckUser.EOF Or Not CheckUser.BOF Then
            If (CheckUserSessionVar <> "") And (CheckUserFormVar <> CheckUser.Fields.Item("id").Value) Then
            Response.Write "Kullanici bilgisi uyusmuyor! Lutfen yeniden giris yapip tekrar deneyiniz"
            Response.End
End If
CheckUser.Close
  1.  

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/

Yorumunuzu Ekleyin
Dreamweaver ile Üyelik Sistemi - Üye bilgileri güncelleme sayfası Yorumları +3 Yorum
  • Frozen
    1
    Frozen
    Ellerine Saglik
    09 Şubat 2010 16:29:51, Salı
  • hatice
    1
    hatice
    teşekkürler
    04 Nisan 2010 17:56:58, Pazar
  • acemi_dreamweaver_user
    1
    acemi_dreamweaver_user
    Ellerinize saglik hocam cok tesekkurler.
    10 Şubat 2013 17:09:30, Pazar


Yükleniyor...
Yükleniyor...