Konular

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;
                        }
            }
  1.  

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

Database Paneli

Database paneli

26,247 Okunma 1 Yorum 05/06/2008 10:46:38

Div Çatılı sayfalar Oluşturmak

Çok değil birkaç yıl önce sayfa tasarımlarımızı yaparken ara yüz bileşenlerini tablolar kullanarak görünmez ızgaralar üzerine inşa ederdik. Bu durum; HTML yapı dilinin web tasarımcıları tarafından hatalı yorumlanmasının ve kullanılmasının bir sonucu idi. Tarayıcılar arası çekişmelerin ve tüm Internet alışkanlıklarımızı etkileyen tarayıcı savaşlarının bir sonucu olarak ortaya çıkmıştı. Fakat Web 2. 0 kavramının gündeme geldiği şu günlerde artık eski tasarım alışkanlıklarını bir kenara bırakıp modern tasarım ve web teknolojilerine cevap verecek web sayfaları tasarlamanın vakti geldi de geçiyor bile

25,988 Okunma Henüz yorum yapılmamış 06/08/2007 17:55:00

Recordset ile verileri sayfaya yazdırmak

Kayıt dizisi (recordset) ile Dreamweaver içerisinden veritabanına erişim sağlayarak, kriterlere göre ve ya istediğimiz sayıda kaydı sayfaya yazdırmak mümkün. Bizde bu makale ile veritabanı kayıt erişimlerini yakından inceleyeceğiz

21,703 Okunma Henüz yorum yapılmamış 31/08/2007 14:19:45

Bindings Paneli

Dreamweaver bindings paneli

20,760 Okunma Henüz yorum yapılmamış 05/06/2008 10:03:38

Database Paneli

Veritabanlarına erişmek

19,749 Okunma Henüz yorum yapılmamış 05/06/2008 09:12:39

Datebases Paneli

Resimli anlatım

19,648 Okunma Henüz yorum yapılmamış 06/06/2008 11:05:53

Bindings Paneli

Veri bağlantılarının yönetildiği panel

19,017 Okunma Henüz yorum yapılmamış 05/06/2008 09:11:51

Named Anchor

Named anchor aracı ile ilgili açıklamalar

19,011 Okunma Henüz yorum yapılmamış 05/06/2008 10:18:51

Dreamweaver ile Site tanımlamaları

Dreamweaver birçok geliştirme ortamında olduğu gibi proje bazlı çalışmalar yapmaya olanak tanıyan bir yazılımdır. Bu makalede projelerimizi DW içerisinde nasıl yönetebileceğimizi göreceğiz

18,837 Okunma Henüz yorum yapılmamış 01/09/2007 02:25:54

ASP sayfası hazırlama

Dreamweaver mx de ASP çalışmak için daha önceden ASP ile uğraşmış olmak gereklidir. Her nekadar Dreamweaver Mx işimizi kolaylaştırsa da ASP 'den anlamak bazı durumlarda faydalı olacaktır. ASP öğrenmek için Dr. Hakkı ÖCAL 'ın ASP kitaplarını tavsiye ederim

18,711 Okunma Henüz yorum yapılmamış 12/08/2007 04:13:11

Yükleniyor...