ACTİVE SERVER PAGES ASP
Active Server Pages kısaca ASP Türkçesi Aktif Sunucu Sayfaları,
Microsoft'un ilk sunucu taraflı dinamik web sayfaları üretmek için geliştirdiği programlama dili. Classic ASP Türkçesi Klasik ASP ya da ASP Klasik olarak da bilinir.
Bir ASP dosyasının içinde, özel nesneler ve Visual Basic (VBS), Java Script (JS), Structured Query Language (SQL) kodları bulunur, bu ASP sayfaları istemci tarafından istendiğinde sunucu öncelikle sayfa içindeki kodları yorumlayarak, istemciye göndereceği bilgiyi hazırlar ve gönderir.
Gönderilen bilgi genellikle Hypertext Markup Language (HTML) yada Standard Generalized Markup Language (SGML) şeklindedir.
Fakat sadece bunlarla sınırlı değildir, aynı şekilde bir grafik dosyasıda oluşturulup, istemciye gönderilebilinir.
ASP sayfaları HTML kodlarının içine gömülü şekilde oluşturulduğu halde bir kez server tarafından yorumlandığında saf HTML olarak istemciye geri döner. Kaynak kodlarına bakıldığında saf HTML kodları görünür. Bu web yazılımcıların asp kodlarını saklamalarına olanak sağlar.
ASP dilinin ortaya çıkış nedenlerinden biride Common Gateway Interface (CGI) dillerinin Session (Oturum) ve Application (Uygulamaların) başından sonuna kadar izlenmesinin yetersiz kalmasındandır.
ASP'de Kullanılan Nesneler
ASP sayfalarında özel altı adet nesne kullanılır.
- Application
- ObjectContext
- Request
- Response
- Server
- Session
Asp kodları aşağıda görülen etiketler arasına yazılır.
<% %>
Aşağıdaki kod ekrana "Energy Web Yazılım'a Hoş Geldiniz." yazısını yazdırır.
<%
Dim strWelcome
strWelcome = "Energy Web Yazılım'a Hoş Geldiniz."
Response.Write( strWelcome )
%>
Yukarıdaki kodun farklı yazılışı ise şöyledir.
<%
Dim strWelcome
strWelcome = "Energy Web Yazılım'a Hoş Geldiniz."
%>
<% = strWelcome %>
Aşağıdaki kod ile ASP'de strWelcome adında değişken tanımladık. İstersek değişkenleri direkt olarakta kullanabiliriz.
<% Dim strWelcome %>
Aşağıdaki kod ile sayfayı iletisim.asp sayfasına yönlendirebiliriz.
<%
Response.Redirect("iletisim.asp")
%>
Aşağıdaki kod ile ASP ile oluşturduğumuz bir sayfaya başka bir sayfadan veri çekme işlemine yarar.
default.asp adında bir dosyamız olsun bu dosyamızın içine header.asp dosyamızı gömebiliriz.
<!--#include file="include/header.asp"-->
ASP ile genellikle dinamik veri isteyen sayfalar yapılır.
Örneğin bir sitenin mutlaka haberler, iletişim formu, insan kaynakları formu, ziyaretçi defteri gibi modüllere ihtiyacı vardır. Bütün bunları HTML ile yapmak mümkün değildir. Oysa ASP ile bunlar birkaç satırlık basit kodlarla yapılabilir.
ASP ile bazı örnek kodlar
Microsoft Access veritabanı bağlantısı,
Bu kod ile bir Microsoft Access veritabanına bağlantı sağladık.
<%
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("veritabanı.mdb")
%>
Microfost SQL veritabanı bağlantısı,
Bu kod ile MSSQL veritabanına bağlantımızı sağladık.
<%
Dim Conn, Sunucu, Kullanici, Parola, Veritabani
Sunucu = "localhost"
Kullanici = "kullanıcı_adı"
Parola = "parola"
Veritabani = "deneme_vt"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=SQLOLEDB; Data Source="&Sunucu&"; User id="&Kullanici&"; Password="&Parola&"; Initial Catalog="&Veritabani&"; MARS Connection=True; Trusted_Connection=True;"
%>
MYSQL veritabanı bağlantısı,
Bu kod ile MYSQL veritabanına bağlantımızı sağladık.
<%
Dim Conn, Sunucu, Kullanici, Parola, Veritabani
Sunucu = "localhost"
Kullanici = "kullanıcı_adı"
Parola = "parola"
Veritabani = "deneme_vt"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={MYSQL ODBC 3.51 Driver}; SERVER="&Sunucu&"; UID="&Kullanici&"; pwd="&Parola&"; db="&Veritabani&";"
%>
Bu kod ile veritabanımızda bulunan urunler tablosundan verilerimizi çektik.
<%
Set objRs = Server.CreateObject("ADODB.Recordset")
objRs.Open("SELECT * FROM urunler ORDER BY sira_no ASC;"),Conn,1,3
Do While Not objRs.Eof
Response.Write( objRs("title") )
objRs.MoveNext() : Loop
objRs.Close : Set objRs = Nothing
%>
Aşağıdaki kod ile günün belirli saatlerine göre ekrana mesaj yazdırdık.
<%
Dim Saat
Saat = Hour(Now())
Select Case Saat
Case 6, 7, 8, 9, 10, 11
Response.Write("Günaydın")
Case 12, 13, 14, 15, 16
Response.Write("Tünaydın")
Case 17, 18, 19, 20, 21
Response.Write("İyi Akşamlar")
Case 22, 23, 0, 1, 2, 3, 4, 5
Response.Write("İyi Geceler")
End Select
%>
ASP Replace fonksiyonu ile SQL Injection için örnek bir güvenlik önlemi alalım
<%
' İlk olarak fonksiyonu yazalım
Function Temizle(byVal varText)
If (varText = "") Then Exit Function
varText = Replace(varText, "&", "& amp;")
varText = Replace(varText, ">", "& gt;")
varText = Replace(varText, "<", "& lt;")
varText = Replace(varText, "'", "& apos;")
varText = Replace(varText, "--", "& #45;& #45;")
varText = Replace(varText, ";", "& #59;")
varText = Replace(varText, """", "& quot;")
Temizle = varText
End Function
Dim UserName
UserName = Request.Form("username")
Response.Write( Temizle(UserName) )
%>


