Sayfalar

28 Ağustos 2010 Cumartesi

ASP ile Güncel Haber Ekleme

Aslında şu anda yazacağımız kodlarda , şu ana kadar öğrendiğiniz muhtemel ASP bilgilerinin dışında pek fazla yeni bir şey yok.Ancak yine büyük bir olasılıkla ilk defa karşılaşacağınız DateDiff fonksiyonu ile ASP ile güncelliği yakalayacağız.Bu gerçekten de güncellik konusunda işimizi oldukça kolaylaştıran bir fonksiyon.Size tüm samimiyetim ile söylüyorum ki bu fonksiyon ile tanıştıktan sonra ASP'yi seçtiğim için gerçekten seviniyorum.

Aşağıda haber_ekle.asp dosyasının içeriği verilmiştir.

<%
@ Language="VBScript" codepage=1254 %>

<% Option Explicit %>

<html>

<head>

<title>ASP ile Güncel Haber Ekleme</title>

</head>

<body>

<form action="haber_isle.asp" method="get">

<b>Haber Başlığı : </b><input type="textbox"
name="haber_basligi"><br>

<br><b>Haber : </b><br><textarea rows="10"
cols="50" name="haber"></textarea><br><br>

<input type="submit" value="Gönder">

</form>

</body>

</html>

Bu dosyamızda sadece formumuzu oluşturuyoruz ve formumuzu işleyecek sayfanın adresini belirtiyoruz.Dolayısıyla daha fazla açıklama yapmamıza gerek yok.

Aşağıda haber_isle.asp dosyasının içeriği verilmiştir.


<%
@ Language="VBScript" codepage=1254 %>

<% Option Explicit %>

<html>

<head>

<title>ASP ile Güncel Haber Ekleme</title>

</head>

<body>

<% ' Değişkenlerimizi tanımlıyoruz.

dim tarih,haber_basligi,haber,fso,text_dosyasi,text_getfile

' Değişkenlerimize haber_ekle.asp deki formlara girilen bilgilerin
değerlerini kaydediyoruz.


tarih=date()

haber_basligi=Request.QueryString("haber_basligi")

haber=Request.QueryString("haber")

' Formlardan aldığımız değerlerin boş olup olmadığını kontrol ediyoruz.Doldurulmamış
olan form öğeleri varsa

' bir önceki sayfaya geri dönerek doldurulmamış formların doldurulması
söyleniyor.Eğer herşey tam olarak doldurulmuş ise kodlara devam ediliyor.


if haber_basligi="" then

Response.Write "Lütfen haber başlığı <a href=haber_ekle.asp>giriniz</a>
!"

else

if haber="" then

Response.Write "Lütfen haber <a href=haber_ekle.asp>giriniz
!"

else

'
FileSystemObject
'i oluşturuyoruz ve onu fso değişkenine atıyoruz.


set fso=Server.CreateObject("Scripting.FileSystemObject")

' Eğer "C:\" de haberler.txt diye bir dosya yok ise böyle
bir text dosyası oluşturuyoruz.Yoksa kodlara devam ediliyor.


if fso.FileExists("C:\haberler.txt") = False then

set text_dosyasi=fso.CreateTextFile("C:\haberler.txt")

' Daha sonra text dosyasına başka şekilde izinler verip açacağımız
için dosyayı kapıyoruz.


text_dosyasi.close

set text_dosyasi=nothing

else

end if

' Text dosyamızı "File Nesnesi" için açıp bunu text_getfile
değişkenine atıyoruz.


set text_getfile=fso.getfile("C:\haberler.txt")

' İşte şimdi esas yapacağımız işe , can alıcı noktaya geldi sıra.Datediff()
fonksiyonu yardımıyla dosyamızın en son değiştiriliş tarihi ile bugünkü
tarihi karşılaştırıyoruz.Değer sıfıra eşitse yani dosyamız en son olarak
bugün güncellenmişse 8 (ekleme.) iznini vererek açıyoruz.Eğer sıfıra
eşit değilse yani güncel değilse 2(yazma.) iznini vererek açıyoruz.


if datediff("d",text_getfile.DateLastModified,tarih) = 0 then

set text_dosyasi=fso.OpenTextFile("C:\haberler.txt",8,0)

else

set text_dosyasi=fso.OpenTextFile("C:\haberler.txt",2,0)

end if

' Tüm bu yorucu kontrollerden sonra formlardan aldığımız değişkenleri
text dosyamıza nacizane bir tasarım ile ekliyoruz.


text_dosyasi.Writeline "<b>"

text_dosyasi.Writeline haber_basligi&"</b><br><br>"

text_dosyasi.Writeline haber&"<br><br>"

text_dosyasi.Writeline "<b>Haber tarihi : </b>"

text_dosyasi.Writeline tarih&"<br><br><br>"

' Bundan sonra işimiz bitiyor.Yorucu kodların ardından bir iş başarmanın
mutluluğuyla keyifleniyoruz.Ama asla oluşturduğumuz nesneleri kapatmayı
unutmayalım.Şimdiden düzenli olmak gerekiyor :)))))


text_dosyasi.close

set text_dosyasi=nothing

set text_getfile=nothing

set fso=nothing

end if

end if

%>

</body>

</html>


Bu dosyamız tabiri caizse scriptin başrol oyuncusu , esas oğlanı , jönü.Yani herşeyi yapan kodlar bu sayfada gizli.Kodu yorumları ile okuyunca kodu anlamış olacağınıza eminim.DateDiff() fonksiyonunun kullanılışını böyle bir örnekte gördünüz.Ancak her türlü ayrıntısıyla DateDiff() fonksiyonu anlatan bir yazıyı yakında yazacağım.Ona da bakmanızı tavsiye ederim.

Aşağıda haberler.asp dosyasının içeriği verilmiştir.


<%
@ Language="VBScript" codepage=1254 %>

<% Option Explicit %>


<% ' Bundan sonra yazacağımız kodları ara belleğe alıyoruz.

Response.Buffer=True %>

<html>

<head>

<title>ASP ile Güncel Haber Ekleme</title>

</head>

<body>

<% dim fso,text_dosyasi

set fso=Server.CreateObject("Scripting.FileSystemObject")

' Dosyamızı 1(okuma.) iznini vererek açıyoruz.


set text_dosyasi=fso.OpenTextFile("C:\haberler.txt",1,0)

' While döngüsü ile text_dosyasi text_dosyasi.AtEndOfStream olmadığı
sürece ekrana text dosyasının satırlarını yazdırıyoruz.


while not text_dosyasi.AtEndOfStream

Response.Write text_dosyasi.Readline

wend

' Ara belleğe aldığımız içeriği sayfaya gönderiyoruz.

Response.Flush

text_dosyasi.close

set text_dosyasi=nothing

set fso=nothing

%>

</body>

</html>


Bu naçizane dosyamız içeriğini formlar ile doldurduğumuz haberler.txt dosyasının içeriğini ekrana yazdırıyor.

Hiç yorum yok:

Yorum Gönder

Bing'ı Seviyoruz. :)
Google'ı Seviyoruz. :)