 |
|
 |
|
asp ve sorunlar
artık yaz geldi, ne kadar arada yağmurda yağsa sıcaklar bunaltacak derece. bu havada aslında hiç bilgisayar kullanılmıyor, yapılabilecek en iyi şek belki denize girmek ama bizim gibi bilgisayarcılar için deniz falan fayda etmez, hava nasıl olursa olsun, bir her daim bilgisayarın başındayız.
haziran ayında genel olarak veritabanı sorunlarımıza eğilmiştik, bu ay ise başka konulara yönelelim. mesela bir ziyaretçi defteriniz var sitenizde, kendiniz yazdığınız, çok güzel oldu, birçok özelliği var ancak küçükte bir sorun var içinde. html kodları açık, yani eğer bir ziyaretçi görüşlerini yazmak yerine <meta http-equiv='refresh' content='1; url=http://www.sitem.com'> gibi bir kod yazsa bu sayfa 1 saniye içinde kişinin sitesine yönlenir, sanıyorum bu da ne sizin hoşunuza gider ne de diğer ziyaretçilerin. bu ilk ele alacağımız konu, diğer ise include file (sayfa ekleme) ile ilgili. asp ile biraz haşır neşir olunca aynı kodları (özellikle standart html kodlarını) her sayfaya tekrar tekrar yazmanın gereksiz olduğunu, bunun yerine <!—include file=”sayfa.asp” à gibi bir kod ile sayfaları birbirine ekleyebildiğinizi görürsünüz. ancak bir süre sonra yine bir eksiklik fark edersiniz. oda bunları dinamik olarak yapamamanız yani asp değişkenleri ile…
verileri düzeltmek, istemediğimiz şeyleri değiştirmek…
yazının girişinde verdiğimiz örnek aslında her şeyi açıklamaya yetti ama bu kodlar sadece buralarda bu işe yaramayacak. bir örnek daha verelim, bir forum hazırlıyorsunuz ve forum kullanıcılarının soru/cevap yazacakları sayfayı hazırladınız ve test ettiniz. bir anda çok büyük bir sorunla karşı karşı olduğunuzu herhalde o an fark etmişinizdir. yazının girişinde bahsettiğimiz sorun dururken, buna ek olarak bir karakterden çok bırakılan boşluklar ile metin alanında yazı yazarken alt satıra geçmenize rağmen sayfada bunlar görülmüyor.
bu sorun birçok asp’cinin karşılaştığı bir problem, çözümü ise vbscript’in bir fonksiyonu ile mümkün replace, biz vbscript’in replace fonksiyonunu başka bir fonksiyon içinde kullanacağız ve zahmetsizce düzenlememizi yapacağız.
bu örnek için önce bir html sayfası hazırlayalım, bu sayfada büyük bir metin alanı olsun ve biz verileri buraya girip test edelim. aşağıdaki kodlar bu sayfanın yani metinalani.htm dosyasının kodları.
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1254">
<title>metin alanı</title>
</head>
<body>
<form method="post" action="veriduzenle.asp">
<p align="center">
<textarea rows="19" name="veri" cols="63"></textarea></p>
<p align="center"><input type="submit" value="girdiklerimi düzelt"></p>
</form>
</body>
</html> |
bu kodları açıklamaya gerek yok sanıyorum, basit html kodları, aşağıdaki kodlar ise formun hedefindeki veriduzenle.asp’ye ait.
<%
option explicit
%><html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1254">
<title>düzenmiş veri</title>
</head>
<body>
<%
dim strveri
strveri = request.form("veri") ' forma girdiklerimizi alıyoruz
response.write funcduzenle(strveri) ' funcduzenle fonksiyonu yardımıyla veriyi düzenleyip ekrana yazdırıyoruz...
' funcduzenle fonksiyonu
function funcduzenle(strveri)
dim strduzenlenmis : strduzenlenmis = strveri
strduzenlenmis = replace(strduzenlenmis,"<", "<", 1, -1, 1) ' etiket başlatıcılarını, kodlara çevirdik
strduzenlenmis = replace(strduzenlenmis,">", ">", 1, -1, 1) ' etiket bitiricilerini, kodlara çevirdik
strduzenlenmis = replace(strduzenlenmis,chr(10),"<br>", 1, -1, 1) ' alt satıra geçtiysek onları çıkartalım
strduzenlenmis = replace(strduzenlenmis," ", " ", 1, -1, 1) ' 2 karakter boşluk
strduzenlenmis = replace(strduzenlenmis," ", " ", 1, -1, 1) ' 3 karakter boşluk
strduzenlenmis = replace(strduzenlenmis," "," ", 1, -1, 1) ' 4 karakter boşluk
strduzenlenmis = replace(strduzenlenmis, vbtab, " ", 1, -1, 1) ' sekme kullandıysak...
funcduzenle = strduzenlenmis ' verileri fonksiyona attık
end function
' fonksiyonumuz bitti
%>
</body>
</html> |
2.satır: option explicit geçen ay bahsettiğimiz kodlama kuralları arasında bulunuyordu. bu kodu sayfanın en başına yerleştirdiğimizde o sayfadaki tüm değişkenleri dim ile tanımlamamız gerekiyor.
3. ile 10. satırlar: bu aralıktaki kodlar standart html kodlarımız.
12.satır: dim ile strveri değişkenini tanımladık.
13.satır: request.form methodu ile formdan veriyi aldık
19.satır: funcduzenle isimli fonksiyonu tanımladık
20. ile 30. satırlar: burası fonksiyonun içi, önce strduzenlenmis diye bir değişken tanımlayıp, gelen veriye eşitliyoruz değerini, sonra replace fonksiyonu ile üzerinde değişiklikler yapıyoruz.
31.satır: end function ile fonksiyonumuzu bitiriyoruz.
dinamik sayfa ekleme
her insanın renk zevki birbirinden farklıdır. bazıları mavi, bazıları kırmızı, bazıları ise renksizliği yani beyazı severler. bir web tasarımcı içinse bu çok kötü bir durumdur. çünkü web sayfasını kime göre yapacağını bilemez ve kendine göre yapar. arka alan rengini, bağlantıların renklerini falan kendisi belirler. peki kullanıcıya seçme hakkı versek, kullanıcı siteye gelince istediği rengi seçse, ama nasıl olacak?
bunun için bir çok yöntem mevcut olabilir ama biz dosya ekleme metodu ile yapacağız ve bunu yaparken de bir ssı (server side ınclude) olan dosya ekleme işinin asp ile tam bütünleşmediğini görecek ve buna küçük bir çözüm bulacağız.
şimdi 4 tane sayfa hazırlayalım, bunların 3’ünün adları beyaz.asp, mavi.asp ve kirmizi.asp olsun. bunların içinde art alan rengi ve bağlantı renkleri olsun, diğer 1 tanesinin adı da default.asp olsun. default.asp ise genel sayfamız olsun ve sayfamızın içeriği bulunsun. sırası ile beyaz.asp, mavi.asp ve kirmizi.asp’nin kodlarını yazalım
<html>
<head>
<meta http-equiv="content-language" content="tr">
<meta http-equiv="content-type" content="text/html; charset=windows-1254">
<title>beyaz, sadeliktir...</title>
<style>
<!--
a:link { color: #808080 }
a:hover { color: #c0c0c0 }
-->
|
|
|
|
|
|
bu site bahadır arslan tarafından tasarlanmış ve kodlanmıştır
|