Bir üyelik sisteminin oluşturulması için bir veritabanının varlığından söz etmek gerekir. Bu veritabanında membership
adında bir tablo olmalı. Bu tablonun alanları ise, userid, username,password, IP, Email, freq gibi alanlardan olmalı. Bu alanlardan en
önemlileri username ve password alanlarıdır ve diğerleri isteğe göre değiştirilebilir. Bu tablonun primary key'si userid alanıdır ve bu alan
diğer tablolarla ilişki kurmak için çok ideal bir alandır. Bu alanın en büyük özelliği eşsizdir, yani tablodaki her kayıt için bu alanın değeri farklıdır.
MS-SQL Server'da, bu tabloyu oluştururken dikkat edilmesi gereken, userid alanının otomatik olarak değişmesidir. Userid alanının tipi integer olmalıdır.
Username, password,IP ve email gibi alanlar varchar(N) tipinde olmalıdır. Buradaki N verinin boyutunu gösterir. Freq alanı uyenin ne kadar sıklıkta
geldigini göstermek için kullanılabilecek olan bir alandır ve tipi de integer olmalıdır.
Üye kaydedebilmek için ise, bir form taşıyan bir html dosyasına ihtiyaç var.
<form name="membership" action="membership.asp" method="post">
<table>
<tr>
<td>User Name </td>
<td><input type="text" name="username" value="">
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password" value="">
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email" value="">
</tr>
..................
.................
...............
<tr>
<td><input type="submit" name="continue" value="BECOME A MEMBER">
</tr>
</table>
</form>
Nokta nokta olan yerlere isteğe göre alanlar eklenebilir. Burada önemli olan kısım ise, eklediğimiz alanların veritabanında da yer alıyor olması
gerektiğidir.
Bu form "BECOME A MEMBER" butonuna tıklandığında, "membership.asp" adlı dosyaya bilgi gönderecektir. Bu dosya server'da bulunması gereken
bir dosyadır.
Bu dosyanın içeriği ise,
<%
dim sqlstring,connectionstring,username,password,email,..............
Connectionstring="PROVIDER=SQLOLEDB;DATABASE=MEMBERSHIP;USER ID=SA;PASSWORD=000019"
SET Connection=server.createobject("ADODB.Connection")
connection.open connectionstring
username=Trim(Request.Form("username"))
password=Trim(Request.Form("password"))
email=Trim(Request.Form("email"))
......................
....................
sqlstring="insert into membership (username,password,email) values ('"&usename&"',''"&password&"',''"&email&"')"
SET RecordSet=Server.CreateObject("ADODB.RecordSet")
RecordSet.Open sqlstring,connection,adopenstatic,adlockoptimistic,adcmdtext
SET RecordSet=NOTHING
SET Connection=NOTHING
%>
Buradaki connectionstring değişkeninin içerdiği bilgi, veri tabanına bağlanmak için gerekli olan bağlantı ifadesidir.Database adı olarak,
veri tabanına verdiğimiz isim kullanılmalıdır. User Id SQL Server'a bağlanmak için kullanılan user id ve password de SQL Server'a bağlanmak
için gerekli olan şifredir. Daha sonra ki satırda yapılan ise, ADO nesnesini kullanarak bundan bir örnek yaratmak ve veri tabanı ile bağlantının
sağlanılmaya çalışılmasıdır. Diğer kullanılan nesne ise ADO nesnesine ait olan RecordSet nesnesidir.
Böylece üye tabloya işlenmiş oldu. Böyle bir üyelik sistemi oluşturmak üç ayaklı bir olaydır. İlk ayağı sunucuya gönderilecek olan istemci verisinin
yani formun hazırlanması, diğer ayak veri tabanı tasarımı ve son ayak ta, veri tabanı ile istemcinin konuşmasını sağlayan ASP kodudur. Tabi bu kod,
sadece üyeyi veri tabanına yazmaktadır. Dikkat edilmesi gereken konu, üye isminin veya şifrenin bir başkası tarafından kullanılıyor olup olmadığıdır.
Yani, tabloya bir üyeyi kaydetmeden evvel bunun da kontrolünün yapılması gerekir. Bu bir başka yazıda olacak.
|