| Ocak 22, 2007, 08:15:46 ÖS
| Uyarı : Dikkat bu Administrator mesajıdır | |
|
|
 |
|
|
Doğum Günü Hesabı
VBScript’in dil olarak bize sağladığı bazı kolaylıkları ASP teknolojisi ile birleştirebiliriz. ASP sayfalarımızda istediğimiz gibi HTML kodları da kullanırız. Bu örnekte, bu iki unsuru da birarada göreceğiz. Aşağıdaki kodu dogumgunu01.asp adıyla kaydedin: <% @LANGUAGE=VBscript %> <% Option Explicit Response.Expires = 0 Dim serverSaat, kalanSaat serverSaat = Time ' aşağıdaki satırda işaretler arasındaki yere kendi doğum gününüzü yazın kalanSaat = DateDiff("h",Now,#7/8/2000#) %> <HTML> <HEAD> <TITLE>Dogum Günü Hesabı!</TITLE> <META http-equiv="content-type" content="text/html; charset=ISO-8859-9"> <META http-equiv="Content-Type" content="text/html; charset=windows-1254"> </HEAD> <BODY> <H3> <CENTER> <p>Selam:</p> <p>Şu anda saat: <%=ServerSaat%></p> <% If kalanSaat > 0 Then Response.Write "Doğum gününüze " & kalanSaat & " saat var." & VbCrLf ElseIf kalanSaat < 0 Then Response.Write "Doğum gününüz " & kalanSaat & " geçmiş buluyor." & VbCrLf Else Response.Write "<b>Doğum gününüz kutlu olsun!</b>" & VbCrLf End If %> </CENTER> </H3> </BODY> </HTML> Bu kodda bulunan ASP nesnelerini ve metodlarını kolayca görüyor olmalısınız. Tanımlamadığımız bir değişken kullanmayı veya değişken adlarını yanlış yazmayı önleyen Option Explicit ifadesi dikkatinizi çekiyor olmalı. Sayfamızda bir hesap yapılacağı için Browser tarafından geçici Internet dosyaları arasında (cache) saklanmasını istemediğimizi, Response.Expires’ın değerini 0 yaparak belirtiyoruz. iki değişken tanımlıyoruz (serverSaat ve kalanSaat) ve bunlardan birincisine Server’ın o andaki saatini Time fonksiyonu ile atıyoruz. İkinci değişken ise hesaplama sonucu belirlenecek. Bu arada ASP programının hangi tarihe kaç saat kaldığını hesaplamasını istiyorsak, kalanSaat’i belirleyecek formüle o tarihi yazıyoruz. Bu formüle dikkatle bakalım: kalanSaat = DateDiff("h",Now,#7/8/2000#) DateDiff ve DateAdd, VBScript’in vereceğiniz iki tarih arasında, yine vereceğiniz biçime göre farkı bulmasını veya toplamasını sağlar. Buradaki “h” hesap sonucunun saat olarak verilmesini istediğimiz gösterir. “d” ise sonucu gün olarak istediğimiz anlamına gelir. Now, Server’ın o andaki saatidir; ”#” işaretleri arasında ise hesabın yapılacağı tarih, veya buradaki örnekte doğum gününüz yer alıyor. kalanSaat değişkeninin değeri bu hesaplama sonucu olarak doğum gününüze kalan saat olacaktır. Kodumuzun geri kalan bölümünde ise elde ettiğimiz sonucu Browser’a yollayan bir If seçimi var: doğum gününüze kalan saat 0’dan büyükse veya küçükse bunu farklı cümlelerle belirtiyoruz. Kalan süre 0 ise, bugün doğumgününüz demektir! (ASP ile bu kadar uğraşırsa, insanın doğum gününü filan unutması normaldir. üzülmeyin!) Daha önce VBScript’in metin ve değişkenleri birbirine “&” işareti ile eklediğini görmüştük. VBScript ile yazdırdığımız satırların sonuna kimi zaman <BR> kodu koyarak, yeni satırın bir satır aşağıdan başlamasını sağladığımızı hatırlıyor olmalısınız. Burada & VbCrLf şeklinde gördüğümüz ifade de bunu sağlar. Bu, Visual Basic’in “alt satıra geç, başa git!” (Carriage Return, Line Feed) komutudur. Dedik ki, DateDiff ve DateAdd fonksiyonlarının, sonucu gün olarak vermesini istiyorsanız, “d” argümanını kullanmanız gerekir. Şimdi burada öğrendikleriniz bu programı doğumgününüze kalan saati değil de günü hesaplayacak şekilde değiştirebilir misiniz? (Ortaya çıkartacağınız kodu bu kitapçığın kodları arasındaki dogumgunu02.asp dosyası ile karaşılaştırabilirsiniz.)
|
|
|
|
|
Logged
|
Herşeyi Sana Yazdım , Herşeye Seni YazdımResimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap( N Resimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap D )
|
|
| Ocak 22, 2007, 08:16:03 ÖS
| Uyarı : Dikkat bu Administrator mesajıdır | |
|
| Ocak 22, 2007, 08:16:11 ÖS
| Uyarı : Dikkat bu Administrator mesajıdır | |
ChaR
Administrator
       
Üye ID: 1
Mesaj Sayısı: 2603
Nerden: Bilmem Sence Nerden ;)
Cinsiyet: 
Rep : 136
« Not Found Keyboard »
Durumum:
Admin
|
 |
|
|
Ziyaretçiden Bilgi Alma
İstersek adına Web Programı diyelim, sitemize ziyaretçilerin bilgi ulaştırması ancak HTML’in Form etiketi yoluyla olur. Klasik HTML+CGI yöntemleri ile ASP tekniğinde Form etiketlerinin işlevleri arasında bir fark yoktur. Ancak aralarındaki benzerlik de hemen hemen bundan ibarettir. Klasik HTML+CGI yönteminde Form’larımızın Action özelliğine değer olarak çoğu zaman bir CGI programının yolunu ve adını yazarız; oysa ASP’de Form bu bilgileri kendisinin de içinde bulunduğu ASP sayfasına gönderebilir; ve örneğin formun eksik doldurulup doldurulmadığını sınayabilir. HTML bilgilerinizi tazelerseniz; bir Form’dan Server’a iki metodla bilgi gelebilir: Get ve Post yöntemleriyle. Get, Browser’ın bilgileri yumak yapıp, aradaki boşlukları kaldırarak ve ASCII olmayan karakterleri URL koduyla şifreleyerek Query_String içine yazdırmasını sağlar. Diğer yöntemi birazdan ele alacağız. Küçük bir form oluşturalım ve bu formdan Get yoluyla gelecek bilgileri daha sonra nasıl kullanabileceğimizi görmek için, şimdilik sadece sayfamıza yazdıralım. Şu kodu miniform_get.asp adıyla kaydedin: <% @LANGUAGE=VBscript %> <% Option Explicit Response.Expires = 0 Dim strAdi, strSoyadi, hamBilgi, islenmisBilgi If Request.ServerVariables("QUERY_STRING") <> "" Then strAdi = Trim(Request.QueryString("adi")) strSoyadi = Trim(Request.QueryString("soyadi")) hamBilgi = Trim(Request.QueryString("mesaj")) islenmisBilgi = Replace(hamBilgi, vbcrlf, "<BR>" & vbcrlf) %> <html> <head> <title>Mini Form</title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> </head> <body> Script'imize Form'dan bilgi ulaştı <BR><BR> Gelen bilgiler:<BR> Formu dolduran kişinin adı: <%= strAdi%> <BR><BR> Formu dolduran kişinin Soyadı: <%= strSoyadi%> <BR><BR> Ham Bilgiler: <%= hamBilgi%> <BR><BR> İşlenmiş Bilgiler: <%= islenmisBilgi%> <BR><BR> "Query_String" olarak gelen bilgi: <BR> <%= Request.ServerVariables("QUERY_STRING")%> </body> </html> <% Else %> <html> <body> Bize bilgi verir misiniz?<BR> <FORM ACTION= "<%= Request.ServerVariables("SCRIPT_NAME") %>" METHOD="GET"> Adınız: <INPUT TYPE="Text" NAME="adi"><BR> Soyadınız: <INPUT TYPE="Text" NAME="soyadi"><BR> Mesajınız: <TEXTAREA NAME="mesaj">Mesajınızı buraya yazın!</TEXTAREA><BR> <INPUT TYPE="Submit" NAME="Gönder" VALUE="Gönder"> </FORM> </body> </html> <% End If %> Kodumuzun bir değişken tanımladığımız ve Form’dan gelen bilgileri işleyen bölümü, bir de henüz bu bilgi gelmeden önce Form’u oluşturan bölümü olduğuna dikkat ediyor musunuz? Bu iki bölümü bir If sınama deyimiyle oluşturduğumuzu da görüyorsunuz. ASP tekniği ve VBScript’in kolaylıkları birleşince, CGI’da olduğu gibi, Formdan gelen bilgileri özel fonksiyonlar yazarak ayıklamamız gerekmez. ASP’nin anladığı şekliyle, Query_String Form’dan GET metoduyla gelen bilgileri Form’un bilgileri atadığı değişkenlerin adlarıyla eşleştirerek tutar; ve bize sadece Form’daki değişkenlerin değerlerini, istiyorsak, başka değişkenlere atamak kalır. Burada Form’un “adi” olan değişkenini bir String değişkeni olan strAdi değişkenine, yine Form’un “soyadi” olan değişkenini başka bir bir String değişkeni olan strSoyadi değişkenine atıyoruz. Bunu yapmamızın sebeplerinden biri iki dizi değişkenden hangisinin ASP tarafında kullanıldığını bilmektir. Form’un üçüncü değişkeni olan “mesaj” ise ASP tarafından işlenirken, iki şekilde ele alınacak: hamBilgi değişkeninin değeri olarak, ve bunu Replace() fonksiyonu ile işledikten sonra atayacağımız islenmisBilgi değişkenini değeri olarak. Replace() fonksiyonu, bir değişkende bir değeri bulur ve arzu ettiğimiz bir başka değerle değştirir. Üç argüman alır: içinde arama ve değişiklik yapılacak değişken, aranacak değer ve yerine konacak değer. Burada iki veya daha fazla paragraf içeren bir mesajın içindeki satırbaşı-yeni paragraf karakterini, HTML’in anlayacağı <BR> ve satırbaşı karakteri ile değiştiriyoruz. Şimdi miniform_get.asp’yi çalıştırın, doldurun (mesaj bölümünde iki paragraf oluşturmak için bir yerde Ctrl+Enter’a basmayı unutmayın! Yoksa işlenmiş bilgi ile ham bilginin farkını göremeyiz!) ve Gönder tuşunu tıklayın. Bu arada Browser’ınızın URL hanesine bakın. Bu Get metodunun bilgi gönderme şeklidir. Bilgiler URL-kodu olarak değiştirilir ve gideceği sayfanın adına, soru işareti ile eklenerek, gönderilir. (Tabii ziyaretçiniz yıldızlar halinde görüntülenen bir parola yazdıysa onu da burada açık şekilde görecektir!) Bizim Form bilgilerimiz hangi sayfaya gönderiliyor? Yine kendisine. Bunu Form etiketinin Action özelliğinin karşısında yazılı olan VBScript kodu sağlıyor. Bu yolla gelen bilgi, şuna benzer olmalıdır: Script'imize Form'dan bilgi ulaştı Gelen bilgiler: Formu dolduran kişinin adı: Kroninukus Formu dolduran kişinin Soyadı: Computerium Ham Bilgiler: Merhaba Ben üniversiteyi yeni bitirmiş bir gencim! İşlenmiş Bilgiler: Merhaba Ben üniversiteyi yeni bitirmiş bir gencim! "Query_String" olarak gelen bilgi: adi=Kroninukus+&soyadi=Computerium+&mesaj=Merhaba% 0D%0ABen+%FCniversiteyi+yeni+bitirmi%FE+bir+gencim %21+%0D%0A&G%F6nder=G%F6nder Replace() fonksiyonunun, mesajın içindeki CRLF karakterini bulup yerine <BR> koyduğuna dikkat edin. Query_String’in yazdığınız ad ve soyad ile mesajı nasıl yumak (tek String) yaptığına bakın. Ve programımızın bu yumaktan bilgileri alıp, yeni değişkenlere atayarak Browser penceresinde nasıl görüntülediğini inceleyin. Bu programın canalıcı noktası, Request nesnesinin ServerVariables kolleksiyonunda, Query_String koleksiyonunu kullanmasıdır. Çünkü Get, Form’un sağladığı bilgileri bu koleksiyona kaydetmiş bulunuyor. Şimdi aynı işi Post metodu ile yapalım. Bunun için biraz önce kaydediğiniz kodda şu değişiklikleri yapın ve miniform_post.asp adıyla kaydedin: <% @LANGUAGE=VBscript %> <% Option Explicit Response.Expires = 0 Dim strAdi, strSoyadi, strBilgi If Request.ServerVariables("CONTENT_LENGTH") <> 0 Then strAdi = Trim(Request.Form("adi")) strSoyadi = Trim(Request.Form("soyadi")) strBilgi = Trim(Request.Form("mesaj")) strBilgi = Replace(strBilgi, vbcrlf, "<BR>" & vbcrlf) %> <html> <head> <title>Mini Form (Post)</title> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-9"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> </head> <body> Script'imize Form'dan bilgi ulaştı <BR><BR> Gelen bilgiler:<BR> Formu dolduran kişinin adı: <%= strAdi%> <BR><BR> Formu dolduran kişinin Soyadı: <%= strSoyadi%> <BR><BR> Mesaj: <%= strBilgi%> <BR><BR> </body> </html> <% Else %> <html> <body> Bize bilgi verir misiniz?<BR> <FORM ACTION= "<%= Request.ServerVariables("SCRIPT_NAME") %>" METHOD="POST"> Adınız: <INPUT TYPE="Text" NAME="adi"><BR> Soyadınız: <INPUT TYPE="Text" NAME="soyadi"><BR> Mesajınız: <TEXTAREA NAME="mesaj">Mesajınızı buraya yazın!</TEXTAREA><BR> <INPUT TYPE="Submit" NAME="Gönder" VALUE="Gönder"> </FORM> </body> </html> <% End If %> İki Miniform sayfası arasındaki değişikliği farkettiniz mi? Önce, Form etiketinin METHOD özelliğinin Post olduğuna dikkat edin. Bu yöntemle gelen bilgiler, Request nesnesinin Form kolleksiyonuna, işlenmiş (yani değişken=değer çiftleri halinde yazılmış) olacağı için, Form bilgilerini yeni değişkenlere atama ifadelerimizi de farklı yazıyoruz. Önce formdan gerçekten bilgi gelip gelmediğini Content_Length değişkeninin boyutunun sıfır olup olmadığına bakarak anlıyoruz. Bu değişkenin boyutu 0 ise form içi boş gönderilmiş demektir; bu durumda ziyaretçiyi form’u doldurması için uyaran bir Sub’a gönderebiliriz. Form doldurulmuş ise, kodumuzun birinci bölümü yapması gereken değişkenlere atama işlemini yapıyor; ve sonuçları ziyaretçinin Browser penceresine yazıyor. Daha sonra yapacağımız örnek Konuk Defteri’nde bu bilgileri ziyaretçinin ekrarına değil, bir metin dosyasına yazacağımızı göreceksiniz.
|
|
|
|
|
Logged
|
Herşeyi Sana Yazdım , Herşeye Seni YazdımResimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap( N Resimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap D )
|
|
| Ocak 22, 2007, 08:16:23 ÖS
| Uyarı : Dikkat bu Administrator mesajıdır | |
ChaR
Administrator
       
Üye ID: 1
Mesaj Sayısı: 2603
Nerden: Bilmem Sence Nerden ;)
Cinsiyet: 
Rep : 136
« Not Found Keyboard »
Durumum:
Admin
|
 |
|
|
Form etiketlerinden bilgi alma
Form içinde kullandığımız bir çok etiket, Server’a farklı biçimde bilgi gönderir. Yukarıdaki örnekte gördüğümüz Input ve Textarea etiketleri, kendi adlarını değişken adı yaparak ve değişkene ziyaretçinin yazdığı metni değer olarak atayarak, gönderir. Fakat HTML’in <SELECT MULTIPLE> etiketi biraz daha dikkat etmemizi gerektirir; çünkü ziyaretçi bu etiketle oluşturduğunuz seçeneklerden birden fazla seçebilir ve bunlar Server’a bir kolleksiyonun elemanları olarak gelir. Şöyle bir örnek düşünün: <SELECT NAME=”CokluSecme” SIZE=”3” MULTIPLE> <OPTION VALUE=”Emrah” SELECTED> Emrah <OPTION VALUE=”Karacaoglan”> Karacaoğlan <OPTION VALUE=”Sulari”> Davud Sulari <OPTION VALUE=”Daimi”> Aşık Daimi <OPTION VALUE=”Pirsultan”> Pir Sultan Abdal Browser, kullanıcı birden fazla seçim yaptıysa, yapılan seçim sayısını, yani kaç seçenek seçildiğini bize bildirir ve bu Request nesnesinin Form kolleksiyonunda “CokluSecme” elemanının “.Count” değişkenine yazılır. Bu bakımdan “CokluSecme” kendisi bir kolleksiyondur. Yani, bu değişkenin değerini kullanarak, “CokluSecme” kolleksiyonunun elemanlarını tek tek okutmak için bir For döngüsünden yararlanabiliriz: For sayac = 1 to Request.Form(“CokluSecme”).Count Response.Write(sayac & “. seçim: “ & Request.Form(“CokluSecme”)(sayac) & “<BR>”) Next Bu iki kodu, miniform_post.asp’ye katabilir misiniz? (Ortaya çıkartacağınız örneği bu kitapçığın örnekleri arasındaki miniform_multi.asp ile karşılaştırabilirsiniz.)
|
|
|
|
|
Logged
|
Herşeyi Sana Yazdım , Herşeye Seni YazdımResimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap( N Resimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap D )
|
|
| Ocak 22, 2007, 08:16:42 ÖS
| Uyarı : Dikkat bu Administrator mesajıdır | |
ChaR
Administrator
       
Üye ID: 1
Mesaj Sayısı: 2603
Nerden: Bilmem Sence Nerden ;)
Cinsiyet: 
Rep : 136
« Not Found Keyboard »
Durumum:
Admin
|
 |
|
|
Parola İle Sayfa Koruma
“Internet’te gizlilik olmaz!” ilkesine rağmen, bazen öyle sayfalarımız olur ki, bunların içeriğini bütün Internet ziyaretçilerinin görmesini istemeyebiliriz. Örneğin derneğimizin veya grubumuzun telefon numaraları ve elektronik posta adreslerini gösteren sayfamıza sadece grup üyelerinin ulaşmasını arzu edebiliriz. Bir Web sitesinin herhangi bir sayfasını ziyaretçilerden gizlemek için sayfanın açılmasını belirli bir şartın yerine gelmiş olmasına, mesela ziyaretçinin bir Form aracılığıyla bize doğru parolayı göndermesine bağlayabiliriz. Bu tür sayfa gizleme yollarını istemci-tarafında çalışan bir programla yapmak mümkündür; ancak sayfa gizlemenin mantığına aykırıdır. sözgelimi bir Form’da parola alanına girilecek bilginin gerçek parola ile karşılaştırılmasını bir Script fonksiyonu ile yapmaya kalkarsak, ziyaretçinin kaynağı görüntülemesi halinde ziyaretçinin girdisi ile parolayı karşılaştıran Script, ve tabiî bizim kıymetli parolamız, ziyaretçi tarafından öğrenilecektir. Oysa ASP kodları ile gizlediğimiz parolanın ziyaretçiye görünmesi imkansızdır; çünkü ASP kodları hiç bir zaman ziyaretçiye gönderilmeyeceği için parola sınayan program da ziyaretçiye gidemeyecektir. Önce şu kodu, parola.asp adıyla kaydedelim: <%@ LANGUAGE="VBSCRIPT" %> <% Response.ExpiresAbsolute = Now() - 1 'Sayfanın yedeklenmesini önleyelim FormParola = ucase(trim(request.form("FormParola"))) If FormParola <> "PAROLA" Then %> <HTML> <HEAD> <TITLE>ASP ILE PAROLA</TITLE> <META http-equiv="content-type" content="text/html; charset=ISO-8859-9"> <META http-equiv="Content-Type" content="text/html; charset=windows-1254"> </HEAD> <BODY bgcolor="#ccffff" text="black" link="navy" vlink="purple"> <DIV align="center"> <FORM action="parola.asp" method="POST"> <h2>Ana sayfaya girmek için parolayı yazınız (Mesela, PAROLA) ?</h2> <input type="password" name="FormParola" size="10"><br><br> <input type="submit" value="Girebilir Miyim?"> </form> </div> </body> </html> <% Else %> Şimdi ana sayfaya girmiş oldunuz.. <% End If %> Şimdi kodumuzu ayrıntılı indereleyebiliriz. Önce, bu sayfanın ziyaretçinin Browser’ı tarafından ziyaretçinin bilgisayarında yedeklenmesini önlediğimize dikkat edin: Bunu Response nesnesinin .Expries metodunun farklı bir türü ile yapıyoruz. .ExpiresAbsolute sadece .Expires metodundan farklı olarak, bizden bir değer ister. Bu değerin zaman olarak verilmesi gerekir. Burada VBScript’in o andaki zamanı belirten Now() fonksiyonu ile yapıyoruz ve bu fonksiyonun verdiği değerden (yani o andaki saatten) 1 saat çıkartıyoruz. Böylece sayfanın geçerliği çoktan dolmuş oluyor. Browser, bu ifadeyi gördüğü anda sayfanın daha sonra başvurulmak üzere bir kopyasını saklamayacaktır. Bunu neden yapıyoruz? Diyelim ki parolayı doğru bilen bir ziyaretçi kullandığı bilgisayarın başından kalktı ve yerine başka bir kullanıcı geçti. Bu kişinin Browser’ın Yenile düğmesini tıklaması halinde bizim özene-bezene gizlediğimiz sayfa yeniden görüntülenecektir. Oysa Browser’a bu sayfanın artık geçerli olmadığını bildirmekle, yenilenme işleminin Cache bellekten (ziyaretçinin bilgisayarında sabit diskte kaydedilen kopyadan) değil de, mutlaka Server’dan yapılmasını istiyoruz. Sayfamız açılırken, (kodumuzun dört ve beşinci satırında) kendi içerdiği formda bilgi olup olmadığını sınıyor. Bunu formdaki formParola isimli INPUT alanının değerini atadığımız değişkenin içeriğini parola olarak seçtiğimiz kelime karşılaştırarak yapıyoruz. Eğer bu değişken (buradaki örnekte “PAROLA” kelimesine) eşit değilse, yani parola yanlış veya boşsa If sorgusu olumlu sonuç verecek ve program devam edecektir. If sorgusu yanlış sonuç vermiş olsaydı, yani ziyaretçi Form’a bilgi girmiş ve bu bilgi bizim karşılaştırmayı yaptığımız kelimeye eşit olmuş olsaydı, program ELSE ifadesine atlayacaktı. Programın devamı formu oluşturmaktadır; ELSE ifade ise formu atlamakta ve ziyaretçinin Browser penceresine “Şimdi ana sayfaya girmiş oldunuz” cümlesini yazdırmaktadır. Tabiî gerçek bir uygulamada bu cümlenin yerinde gerçek bir sayfanın ögeleri yer alacaktı. Bu yöntemi uygularken sayfanın VBScript’nin End If ifadesiyle bittiğine dikkat edin.
|
|
|
|
|
Logged
|
Herşeyi Sana Yazdım , Herşeye Seni YazdımResimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap( N Resimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap D )
|
|
| Ocak 22, 2007, 08:16:54 ÖS
| Uyarı : Dikkat bu Administrator mesajıdır | |
ChaR
Administrator
       
Üye ID: 1
Mesaj Sayısı: 2603
Nerden: Bilmem Sence Nerden ;)
Cinsiyet: 
Rep : 136
« Not Found Keyboard »
Durumum:
Admin
|
 |
|
|
Dinamik İçindekiler Sayfası
Internet sitemizin sayfaları genellikle çok özenilmiş, cicili-bicili, albenisi olan, görsel odak noktalarının oluşmasına dikkat edilmiş tasarımlar olur. Fakat bazen, önemli olan sadece bir dizindeki bütün HTML ve ASP belgelerinin adlarını ve başlıklarını liste halinde ziyaretçiye sunmaktır. Böyle bir sayfada da tasarımın görsel ilkelerine dikkat edilebilir. Fakat burada önemli olan, sayfanın kendi kendisini inşa etmesi ve sayfanın bir dizinin içindeki tüm dosyaları zyaretçiye listeyen bölümünün otomatik olarak güncellenmesidir. Bunu, bir HTML sayfası oluşturan ASP programı olarak tasarlayabiliriz. Aşağıdaki biraz uzunca kodu, menu.asp adıyla kaydedin veya bu kitapçığın örnek dosyaları arasında bulun: <%@ LANGUAGE=VBSCRIPT %> <% Server.ScriptTimeOut = 300 'Server'a daha çok zaman tanımak için strMenuSayfaURL = "/menu.htm" 'oluşturacağımız sayfanın yolu strListKlasor = "/" 'içindekileri bulacağımız dizin %> <HTML> <TITLE>ASP ILE MENU OLUSTURMA</TITLE> <META http-equiv="content-type" content="text/html; charset=ISO-8859-9"> <META http-equiv="Content-Type" content="text/html; charset=windows-1254"> <META http-equiv="Copyright" content="Alex Homer"> <BODY>
<% Response.Write "<P>Menü sayfası oluşturuluyor: " & strMenuSayfaURL & " ...</P>"
'menü sayfası olacak düz yazı dosyasını oluşturalım Set objFSO = CreateObject("Scripting.FileSystemObject") strDosyaAdi = Server.MapPath(strMenuSayfaURL) Set objMenuSayfa = objFSO.CreateTextFile(strDosyaAdi, True) 'dosyanın üstüne yaz
'menü sayfasının başlık bölümünü yazalım objMenuSayfa.WriteLine "<HTML><BODY><P><B>Dosyaların listesi</B></P>"
'belirtilen dizindeki dosyaların listesini içeren kolleksiyonu oluşturalım Set objKlasor = objFSO.GetFolder(Server.MapPath(strListKlasor)) Set kolDosyalar = objKlasor.Files
'Her bir dosyanın başlığını okuyarak listemizi yapalım For Each objDosya in kolDosyalar
'dosya adının uzantısı ASP ve HTM olanları ayıralım strDosyaTuru = objFSO.GetExtensionName(objDosya.Name) If (strDosyaTuru = "asp") Or (Left(strDosyaTuru, 3) = "htm") Then
'dosyanın tümünü okuyup bir String'de tutalım Set objOku = objDosya.OpenAsTextStream(1) 'okumak için strIcerik = objOku.ReadAll objOku.Close
'içinden başlık bölümünü alalım strBaslik = "" intBaslangic = Instr(UCase(strIcerik), "<TITLE>") + 7 intSon = Instr(UCase(strIcerik), "</TITLE>") If (intBaslangic > 0) And (intSon > intBaslangic) Then strBaslik = Trim(Mid(strIcerik, intBaslangic, intSon - intBaslangic)) End If If Len(strBaslik) = 0 Then strBaslik = "Adsız sayfa '" & objDosya.Name & "'"
'Menü sayfası için metni oluşturalım strBuDosyaURL = strListKlasor & objDosya.Name strKopru="<A HREF=" & Chr(34) & strBuDosyaURL & Chr(34) & ">" & strBaslik & "</A><BR>" objMenuSayfa.WriteLine(strKopru) End If Next
'Menü sayfasının son bölümünü yazalım objMenuSayfa.WriteLine "</BODY></HTML>" objMenuSayfa.Close Response.Write "<P>Menü sayfası oluşturuldu.</P>" %> <P><A HREF="<% = strMenuSayfaURL %>">Menü sayfasını aç</A></P> </BODY> </HTML> Programın daha öncekilere göre uzun oluşu, Dosya Sistemi (FileObject) Nesnesini kullanarak oluşturacağı menu.htm dosyasının içeriğini sağlamak için verdiğiniz dizinde bulunan ve dosya adı uzatması .htm ve .asp olan bütün dosyaların içinde <TITLE>..</TITLE> etiketini aramasından kaynaklanıyor. Programın yazarı Alex Homer’in bütün değişken adlarının önünde, değişkenin türünü belirten ön-ekler kullandığına dikkat edin. Böylece nesneleri (obj), sayısal (int) ve kolleksiyon (kol) değerlerden ayırmamız kolaylaşıyor. Programı çalıştırdığımız zaman, Browser penceresinde menü sayfasının oluşturulduğuna ilişkin mesaj belirliyor; ve işlem tamamlandığında da oluşturulan menu.htm sayfasının köprüsü veriliyor. Bu köprüyü tıkladığımızda ise programın beşinci satırında strListKlasor = "/" ifadesiyle verdiğimiz dizinin içindeki bütün HTML ve ASP dosyalarının başlığını, bu dosyalara köprü verilmiş olarak görürüz. İsterseniz, strListKlasor değişkeninin değeri olarak, sözgelimi “/html/” gibi, kendi Web Server’ınızdaki diğer herhangi bir dizinin adını da verebilirsiniz. Bunu yaparken dizin adının sonuna bölü işareti koymayı unutmamak gerekir. Bu program böyle bağımsız olarak çalıştırılabileceği gibi, bir çerçevenin (Frame) içinde çalıştırılabilir ve sonuçları, başka bir çerçevenin içinde görüntülenebilir. Bu programın “İçindekiler” sayfasını hazırladığı dizine ne kadar yeni dosya koyarsanız koyun veya mevcut dosyaları çıkartırsanız çıkartın, ne zaman bu programı çalıştırırsanız, İçindekiler listesi dinamik olarak mevcudu yansıtacaktır.
|
|
|
|
|
Logged
|
Herşeyi Sana Yazdım , Herşeye Seni YazdımResimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap( N Resimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap D )
|
|
| Ocak 22, 2007, 08:17:06 ÖS
| Uyarı : Dikkat bu Administrator mesajıdır | |
ChaR
Administrator
       
Üye ID: 1
Mesaj Sayısı: 2603
Nerden: Bilmem Sence Nerden ;)
Cinsiyet: 
Rep : 136
« Not Found Keyboard »
Durumum:
Admin
|
 |
|
|
Gecikme Bildirme Sayfası
Yukarıdakı örneği birlikte uyguladıysak, ASP programına İçindekiler listesini çıkartması için verdiğimiz dizinin içerdiği dosya sayısına bağlı olarak, programın çalışması epey uzun süre alacaktır. 20 saniyenin üzerinde beklemenin bir yüzyıla yakın etki yaptığı günümüz Internet ziyaretçisi için bu süre çok uzun görünebilir. Ziyaretçimize, sözgelimi Browser programının donmadığını, veya Internet bağlantısının kesilmediğini belirtebilmek için, “Lütfen bekleyiniz!” mesajı vermek yerinde olabilir. Yukarıdaki örnekte bunu aynı sayfa içinde yapma imkanımız vardı; çünkü programımız tabir yerinde ise ziyaretçiyi bu sayfadan alıp, başka bir sayfaya götürmüyordu. Oysa Web uygulamamızın akış planı öyle gerektirebilir ki, ziyaretçimizin bir talebini karşılayabilmek için ona “Lütfen bekleyiniz!” mesajını ne hareket ettiği, ne de gittiği sayfada veremeyiz. Bunun için bir “ara” sayfa gerekebilir; bir tür “Lütfen bekleyiniz!..” sayfası. Bu örnekte böyle bir sayfa yapacağız; ancak bu amacımızı tek sayfa karşılamayacağı için, ortaya iki sayfa çıkartacağız. Şimdi şu kodu bekle01.asp adıyla kaydedin: <% Response.Buffer = True %> <HTML> <% mesaj = Server.URLEncode("Arzu ettiğiniz iş yapılıyor.. Lütfen bekleyiniz") %> <% Response.Redirect ("bekle02.asp?BEKLE_SURE=3&BEKLE_MESAJ=" & mesaj & _ "&GONDER_URL=index.htm") %> <HEAD> <TITLE>ASP ILE BEKLETME 01</TITLE> <META http-equiv="content-type" content="text/html; charset=ISO-8859-9"> <META http-equiv="Content-Type" content="text/html; charset=windows-1254"> </HEAD> <BODY> </BODY> </HTML> Burada ASP kodunun tümü işlemeden, ortaya çıkan HTML’in ziyaretçinin Browser’ına parça parça gönderilmesini önlemek amacıyla Response nesnesinin .Buffer metodunun True (doğru) olarak belirlendiğini görüyorsunuz. Programın kullanacağı mesajın, mesaj adlı değişkene atandığına dikkat edin. Bu sayfanın tek işlevi ise Response nesnesinin .Redirect metodu ile bekle02.asp sayfasını çağırmaktan ibaret. Başka bir deyişle bekle01.asp, gerçekte Browser’ın yüzünü bile göremeyecektir! Biraz sonra kendisine üç değişken verilmesini bekleyen bekle02.asp programı yazacağız. Nitekim bekle01.asp’nin içinde üç değişken değeri belirleniyor; ve bunlar bekle02.asp’ye URL-GET metodu ile “yazılıyor.” Burada GET metodu ile bir bir sayfaya veri gönderme tekniğini hatırlayalım. Bir Form’un Server’a veri gönderme metodu GET ise, Form’dan (veya sayfadan URL yoluyla) derlenen verilerin “değişken=değer” çiftleri halinde ve çiftlerin arasında & işareti konularak gönderilir. Bu yöntemi, HTTP yoluyla Browser nasıl kullanıyorsa, biz de istediğimiz anda kullanabiliriz. Burada; bekle02.asp?BEKLE_SURE=3&BEKLE_MESAJ=" & mesaj & _ "&GONDER_URL=index.htm” şeklindeki ifade de sayfa adından sonra konan soru işareti, Server’a bu bilgi kümesinin bu sayfaya iletilmesi komutunu vermenizi sağlar; bir bakıma Server’a “Şu bilgileri al; bekle02.asp sayfasına ver!” demiş oluyoruz. Bu bilgiler hatırlayacaksınız, Server’da Request nesnesinde tutulur; eşittir işaretinin önündeki kısım değişken, arkasındaki kısım ise değer sayılır. Dedik ki: bekle02.asp kendinise üç değişken verilmesi beklemektedir. Bunu sağlayan nedir? Resquest nesnesinden alınıp, bu sayfanın içindeki değişkenlere atanan üç değer bulunması. bekle02.asp’yi de yazalım: <%@ LANGUAGE="VBSCRIPT" %> <% BEKLE_SURE = Request("BEKLE_SURE") GONDER_URL = Request("GONDER_URL") BEKLE_MESAJ = Request("BEKLE_MESAJ") %> <html> <head> <META http-equiv="content-type" content="text/html; charset=ISO-8859-9"> <META http-equiv="Content-Type" content="text/html; charset=windows-1254"> <META http-equiv="Refresh" content="<% =BEKLE_SURE %>; URL=<% =GONDER_URL %>"> <title>ASP ile Bekletme</title> </head> <body color="#FFFFFF"> <font face="Arial"> <p align = "center"><strong><% =BEKLE_MESAJ%></strong> </p> </font> </body> </html> Daha önce yazdığımız bekle01.asp, ziyaretçiyi bekle02.asp’ye yönlendirirken ona üç “değişken=değer” çiftti gönderiyor; bekle02.asp bunları Request nesnesinden alarak, kendi değişkenlerine atıyor. Bu üç değişkenini inceleyelim. ·Ziyaretçinin bekleme süresince Browser penceresinde göreceği mesaj, BEKLE_MESAJ değişkeninde yer alıyor; ·Bu mesajı görüntülendiği sayfanın ziyaretçinin Browser’ında kalacağı süreyi BEKLE_SURE değişkenin değeri belirliyor: ·Bu sayfanın yerini alacak olan hedef sayfa veya ziyaretçinin Browser’ına gönderilecek yeni sayfanın adresini, GONDER_URL değişkeni belirliyor. Bu programları çalıştırdığınızda ziyaretçinin Browser’ında üç saniye süreyle “Arzu ettiğiniz iş yapılıyor.. Lütfen bekleyiniz!” yazısı görüntülenecek; daha sonra Browser’a index.htm sayfası gönderilecektir. Bu iki programı kendi ihtiyaçlarınıza uyarlamak isterseniz, sözgelimi bir veritabanının güncellenmesi sırasında veya benzeri bir muhtemel gecikme durumunda, ziyaretçiye durumu bildirmek için, köprüyü bekle01.asp’e verebilirsiniz; asıl hedef URL’i ise bekle01.asp’de verebilirsiniz.
|
|
|
|
|
Logged
|
Herşeyi Sana Yazdım , Herşeye Seni YazdımResimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap( N Resimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap D )
|
|
| Ocak 22, 2007, 08:17:27 ÖS
| Uyarı : Dikkat bu Administrator mesajıdır | |
ChaR
Administrator
       
Üye ID: 1
Mesaj Sayısı: 2603
Nerden: Bilmem Sence Nerden ;)
Cinsiyet: 
Rep : 136
« Not Found Keyboard »
Durumum:
Admin
|
 |
|
|
Elektronik Adres Doğrulama
Ziyaretçimizin doğru adres verdiğini, bu adresin geçerli bir elektronik posta alıcısına ait olduğunu doğrulamamız mümkün değil, ama en azından adresin doğru yazılıp yazılmadığını denetleyebiliriz. Bunu yapmanın bir yolu elektronik adresin içinde @ karakteri ile en az bir adet nokta bulunduğunu garantilemek olabilir. Bunu denetleyecek kodu içeren aşağıdaki örnek kodu email.asp adıyla kaydedin: <% @Language = VBscript %> <HTML> <HEAD> <TITLE>E-Mail Form’u</TITLE> <META http-equiv="content-type" content="text/html; charset=ISO-8859-9"> <META http-equiv="Content-Type" content="text/html; charset=windows-1254"><% If Not IsEmpty(Request.Form("Email")) Then strEmail = Request.Form("Email") If dogruMu(strEmail) Then Response.Write strEmail & " adresini aldık; teşekkür ederiz.<BR>" ' .....[BURAYA DIĞER KODLAR GİRECEK]........................ Else Response.Write strEmail & " adresi doğru görünmüyor.<BR>" End If End If %> <FORM "Name="Email" Action="email.asp" Method="post"> Enter an email address: <INPUT Name="Email" Type=Text> <BR> <!- - Buraya formun diğer unsurları girecek - - > <INPUT Type=Submit Value="Gönder"> </FORM> <SCRIPT RUNAT=SERVER LANGUAGE=VBScript> Function dogruMu (byval adres) AtIsareti=0 'sayaç olarak kullanacağımız Nokta=0 'değişkenleri sıfırlayalım dogruMu=false 'Fonksiyonun değerini yanlış olarak belirleyelim KacKarakter=len(adres) 'adresin boyutunu bir değişkene atayalım For i=1 to KacKarakter 'döngüyü başlatalım karakter=mid(adres, i, 1) 'sayacın gösterdiği karakteri alalım if karakter="@" then '@ işareti olup olmadığına bakalım AtIsareti=AtIsareti + 1 '@ işareti ise sayacı bir arttıralım End If if karakter="." Then 'nokta işaretini arayalım Nokta=Nokta + 1 'nokta ise nokta sayasını bir arttıralım End if Next 'bir sonraki karaktere geçelim If AtIsareti=1 and Nokta >0 Then 'Bir @ ve en az bir nokta olduysa dogruMu=true 'Fonksiyonun değerini doğru yapalım End If End Function </SCRIPT> </HTML> Bu programı, bu şekliyle sınama amacıyla çalıştırabilirsiniz. Fakat daha sonra programlarınızda kullanmanız gerekirse, bazı değişiklikler yapmanız gerekir. Bu değişiklikleri kodu inceledikten sonra ele alalım. Sayfamızda tek elemanlı bir Form var ve sınama amacıyla buraya elektronik posta adresimizi yazabiliriz. Sayfa açıldığında çalışan VBScript’in kendi-içinde varolan isEmpty fonksiyonunu bir If döngüsü içinde çağırarak, kendi içindeki formdan kendisine bir değer gelip gelmediğine bakacak; değer olmadığını görünce formu sunacaktır. Forma herhangi bir şey yazıp, Gönder düğmesini tıkladığımız zaman ASP kodumuz, bu kez dogruMu adlı fonksiyona formdan gelen Email değişkeninin değerini vererek sonucu bekleyecektir. dogruMu fonksiyonu güvenlik kaygısıyla Server’da çalışan sunucu-tarafı Script’tir; metni ve sonuçları kesinlikle kullanıcıya gönderilmeyecektir. Bu fonksiyon, kendisine aktarılan değişken değerinde, içiçe iki If döngüsü ile @ ve nokta işaretlerini arayarak sayacaktır. Bu sayımın sonucu iki değişkenin değerleri arzu ettiğimiz sayıda (AtIsareti bire eşit ve Nokta sıfırdan büyük) ise kendisini çağıran satıra True (doğru), değilse False (yanlış) değerini gönderecektir. Biliyoruz ki, bir fonksiyon doğru sonuç verirse, If döngüsü birinci komuttan, yanlış sonuç verirse Else bölümünden yoluna devam eder. Bu örnekte, dogruMu fonksiyonu doğru sonuç verirse Response.Write metoduyla Browser penceresine elektronik posta adresinin alındığına ilişkin teşekkür mesajı yazdırılacak; yanlış sonuç verirse, adresin yanlış olduğu bildirilecektir. Gerçek Internet uygulamasında bu tür bir sınama yapacağınız zaman, yukardaki programın fonksiyonu içeren SERVER SCRIPT (“<SCRIPT RUNAT=SERVER....>” diye başlayan ve “</SCRIPT>” diye biten) bölümünü aynen sayfanızın herhangi bir yerine koyabilirsiniz. Daha sonra ziyaretçiden gelecek elektronik posta adresine göndermede bulunduğunuz ilk yerde ve bu adresi tutan değişken ile herhangi bir işlem yapmadan, örneğin veri tabanına yazmadan veya programın içinde bir başka şekilde kullanmadan önce, sadece şuna benzer bir kod bölümü yazmanız yeter: strEmail = Request.Form("Email") If dogruMu(strEmail) Then .....[BURAYA KODLAR GİRECEK]........................ Else Response.Write strEmail & " adresi doğru görünmüyor.<BR>" End If Programınızın gereği olarak döngünün ELSE bölümünü değiştirebilirsiniz.
|
|
|
|
|
Logged
|
Herşeyi Sana Yazdım , Herşeye Seni YazdımResimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap( N Resimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap D )
|
|
| Ocak 22, 2007, 08:18:06 ÖS
| Uyarı : Dikkat bu Administrator mesajıdır | |
ChaR
Administrator
       
Üye ID: 1
Mesaj Sayısı: 2603
Nerden: Bilmem Sence Nerden ;)
Cinsiyet: 
Rep : 136
« Not Found Keyboard »
Durumum:
Admin
|
 |
|
|
ADO Güvenliği ve Hata Mesajları
MS Internet Information Server (IIS) ve diğer Web Server programları, istemcinin siteye gönderebileceği talepleri hem kendi açılarından, hem de işletim sistemi açısından belirleme ve sınırlama imkanı sağlarlar. Windows NT işletim sistemi bakımından Internet ziyaretçisi herhangi bir ağ kullanıcısından farksızdır ve ulaşabileceği sayfalar (dosyalar) ve bu dosyalarla yapabileceği işler, “Internet Kullanıcı Hesabı” denen kullanıcının haklarına bağlıdır. IIS’i kuran Web Yöneticisi, bu hesaba istediği gibi haklar kazandırabilir veya sınırlamalar getirebilir. Burada iki noktayı birbirinden dikkatle ayırmak gerekir: Web ziyaretçisinin bir Web Sitesi’nde kullanabileceği haklar HTTP kaynakları ile sınırlıdır. İşletim sistemi ile ilgili haklar bunun dışındadır. Fakat ikisinin çakıştığı nokta, özellikle veritabanına dayanan Web sitelerinde, veritabanı dosyasının güncelleştirilmesi sırasında ortaya çıkar. HTTP’nin ziyaretçiye sağlayabileceği bütün okuma-yazma hakları tanınsa bile, işletim sistemi bir veritabanı dosyasının yeniden yazılmasına izin vermeyebilir. Bunu, önceki bölümlerde veritabanı dosyasını güncelleştirme örneklerini yeniden çalıştırarak sınayabilirsiniz. Kullandığınız veri tabanını sözgelimi Windows Gezgini’nde bulun ve sağ tıklayarak “Salt okunur” hale getirin ve ilgili ASP programını çalıştırın; ODBC hata mesajı verecektir. Bu noktada Web Tasarımcısı olarak akılda tutacağımız ilke şudur: HTTP izinleri ne olursa olsun, eğer işletim sisteminin izinleri daha kısıtlayıcısı ile, işletim sisteminin dediği olur. Tasarımcı olarak bunun bize etkisi, genellikle Web sitemize evsahipliği yapan Server işletmecisinin veritabanı dosyalarımıza yazma-okuma izni vermesini sağlamaktır. Web sitesi evsahibi (Hosting) firması, veritabanı dosyasına DSN ayarı yaparken bu izni verecektir. Ancak DSN kaydı yaptırıldığı halde veritabanınız ziyaretçilerinize ODBC hata mesajı veriyorsa evsahibi firmanın yönetimine, veritabanı dosyasının “haklarını” yeniden belirlemesini hatırlatmanız gerekebilir. Veritabanı ile yönlendirilmiş Web sayfalarımızda en sık aldığımız hata mesajı: [Microsoft] [ODBC Driver Manager] Data source name not found olsa gerek. Bu mesaj, veritabanının ODBC’ye tanıtılması ile ilgili işlemde arıza olduğunu gösterir. Ya veritabanı dosyasının sürümü, ODBC sürücülerinin kapsamı dışındadır, ya da ODBC sürücüleri eksik kurulmuştur. Bunu, Windows’un Denetim Masası’nda ODBC Yönieticisi’ni çalıştırarak ve sürücüler sekmesini seçerek denetleyebilirsiniz. Bir diğer sık alınan hata türü ise 80004005’dir. Bu hatanın bir kaç türü olabilir: Microsoft OLE-DB Provider for ODBC Driver error ‘80004005’ [Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database engine cannot open the file ‘(unknown)’.. Bu hata mesajına bir kaç farklı durum sebep olabilir: 1. Internet kullanıcısına veritabanının işletim sistemi düzeyinde yazma-okuma yetkisi verilmemiş olabilir. 2. Veritabanının bulunduğu dizinin işletim sistemi açısından dosya oluşturma ve silme yetkileri yoktur. 3. Veritabanının bulunduğu dizin bir ağ sabit diskinde ise Internet kullanıcısının bu diske erişim hakkı yoktur. 4. DSN oluşturulurken veritabanı salt okunur veya Exclusive olarak işaretlenmiş olabilir. 5. O anda dosyaya Server tarafında InterDev gibi bir Web Tasarım Programı erişiyor olabilir. 6. Sözkonusu Access dosyası, bulunduğu ağda yerel kullanıcıların hizmetine açık olabilir. Bu sorunların çözümü için ODBC yapılandırma işleminin dikkatle yeniden tekrarı ve özellikle sabit disk izinlerinin gözden geçirilmesi gerekir. Bu hata mesajını evsahibi firmanın bilgisayarından alıyorsanız; Web Server yönetimine yeniden başvurmanız şarttır. Microsoft OLE-DB Provider for ODBC Driver error ‘80004005’ [Microsoft][ODBC Microsoft Access 97 Driver] Couldn’t use the file ‘(unknown)’; the file already in use Bu hata mesajının tek sebebi veritabanı dosyasının birden fazla kullanıcı tarafından kullanılmasını önleyen kilit deyimlerinin kullanılmış olmasıdır. Çözümü, dosya ile ilgili .Recordset deyiminin kilidi önleyecek şekilde yazılmasından ibarettir. Microsoft OLE-DB Provider for ODBC Driver error ‘80004005’ [Microsoft][ODBC Microsoft Access 97 Driver] Data source name not found and no default driver specified Veri tabanı ile veri-yolu bağlantısı kuracak Connection komutu, Global.asa dosyasından alınmak isteniyorsa ve IIS Global.asa dosyasını çalıştıramıyorsa bu hata mesajıyla karşılaşırsınız. Global.asa dosyasında şu kodun bulunup bulunmadığını kontrol edin: <%=”’auth_user’ ise & request.servervariables(“auth_user”)%> <p> <%=”’auth_type’ is & request.servervariables(“auth_type”)%> <p> <%=”connection string is & session(“baglanti_deyimi”%> <p> Burada “baglanti_deyimi ifadesi yerinde sizin Connection deyiminiz yer almalıdır. Global.asa’da bu ifadelerin bulunmasına rağmen yine de çalışmıyorsa, Web Server programına, global.asa’nın içinde bulunduğu kök dizin için çalıştır (execute) izni verilmemiş olabilir. Bu kişisel Web Server’da veya yerel IIS’te oluyorsa, bütün yapacağınız şey kök dizin olan klasörü sağ tıklayarak izinlerini değiştirmektir. Bu hata evsahibi firmanın sitesinde oluyorsa, Web Sitesi yönetimi ile temasa geçmeniz gerekir. Microsoft OLE-DB Provider for ODBC Driver error ‘80004005’ [Microsoft][ODBC Microsoft Access 97 Driver] Data source name not ?? Web Server’ın bulunduğu bilgisayarda MDAC (Microsoft Data Access Component) dosyaları ya bozulmuş ya da yanlış kurup kaldırma yüzünden bazı bileşenleri arasında sürüm farkı doğmuş demektir. MDAC’ın güncellenmesi çözüm sağlayabilir. Microsoft OLE-DB Provider for ODBC Driver error ‘80004005’ [Microsoft][ODBC Microsoft Access ODBC driver Driver] General error Unable to open registry key... Registry Editor ile burada adı verilen kayıt anahtarı (Key) için verilen izinlerikontrol etmelisiniz. Bunun için Regedt32.exe programını kullanabilirsiniz. Microsoft OLE-DB Provider for ODBC Driver error ‘80004005’ [Microsoft][ODBC SQL Server Driver] [dbnmpntw] ConnectionOpen (CreateFile()). Aynı bilgisayarda bile olsa SQL Server izinleri yeterli değilse, ODBC sürücüleri veritabaına ulaşamazlar. Sorunu çözmek için SQL Server yönetimiyle görüşmek ve izinleri değiştirmek gerekir. Bu ve diğer 80004005 hata mesajları için Microsoft’un sitesinde Q189408, Q174943, Q173742, ve Q175671 numaralı bilgi notlarına (Knowledgebase articles) başvurabilirsiniz.
|
|
|
|
|
Logged
|
Herşeyi Sana Yazdım , Herşeye Seni YazdımResimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap( N Resimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap D )
|
|
| Ocak 22, 2007, 08:18:17 ÖS
| Uyarı : Dikkat bu Administrator mesajıdır | |
ChaR
Administrator
       
Üye ID: 1
Mesaj Sayısı: 2603
Nerden: Bilmem Sence Nerden ;)
Cinsiyet: 
Rep : 136
« Not Found Keyboard »
Durumum:
Admin
|
 |
|
|
ASP Hatası Arama
ASP teknolojisi, Internet’in kendisine göre nisbeten eski HTTP protokolü ile işbirliği yapmak zorundadır ve bazen ASP sayfalarımızda oluşan hatalar, bizden (yazdığımız VBScript veya diğer Script kodlarından) değil, bu iki teknolojinin Server’daki uyumsuzluğundan kaynaklanıyor olabilir. ASP teknolojisi üç adımda çalışır: 1. Ziyaretçi bir ASP sayfası talep eder 2. Server talep edilen belgenin bir ASP programı olduğunu belirler ve bunu ziyaretçiye göndermeden önce ASP.DLL aracılığıyla çalıştırır. 3. Ortaya çıkacak olan HTML belgesi ziyaretçiye gönderilir. Bu bakımdan ASP hatasını ararken sorulacak birinci soru hatanın nerede olduğu olmalıdır. Hata istemci tarafında ise ASP sayfamız muhtemelen ziyaretçinin Browser’ı ile uyumlu olmayan HTML kodu üretiyor olabilir. Ayrıca hatanın hangi aşamada olduğunu yakalamamız gerekir. Sık alacağımız bir ASP hatası, Server’ın vereceği “VBS Script Error:” şeklinde başlayan mesajlar olacaktır. Bu, gerçekten de sayfamızdaki VBScript kodlarında hata olduğunu gösterir. Yapılacak tek şey, iyi bir programcı gibi, biraz açık havada gezdikten sonra kodu baştan sonra yeniden gözden geçirmek veya en iyisi başka bir programcının yardımını istemektir. Bir süre sonra insan kendi yazdığı kodlardaki hataları göremez hale gelir! Nesne oluşturma hataları ise “Failed to create ...” diye başlar ve hemen hemen daima ASP sayfanızdaki Server.CreateObject.. diye başlayan deyimin icra edilemediğini gösterir. Bu sizin yanlış nesneye yanlış metod kullandırmaya kalkmanızdan olabileceği gibi, Web Server’ın size bazı bileşen dosyalarına (.dll ve .exe) erişim hakkı vermiyor olmasından kaynaklanabilir. Ücretsiz ASP desteği veren sitelerde çoğu zaman bu tür komutlar içeren Script’lere izin verilmez. İleri ASP Konuları
ASP’ye giriş niteliğindeki bu iki kitapçığın kapsamı dışında bırakılan bazı ASP konularını burada sıralayarak, bundan sonraki adımlarınıza yardımcı olabiliriz. Server izin verdiği ve gerekli yazılımı sağladığı taktirde, ASP sayfalarınızdan elektronik posta gönderebilirsiniz. Bunun bir Form’un Server’ın CreateObject metodu ile Server’ın SMTP protokülünü kullanan mesaj gönderme programına (IIS’te “CDONTS.Mail” nesnesine) ulaşması ve bu nesneye alıcı ve gönderenin adresleri ile konu ve mesaj bölümlerini iletmesi gerekir. Bunun için gerekli program (veya nesne) adını ve ASP sayfalarınızdan mektup gönderme izniniz olup olmadığını Web Server yönetiminden öğrenmeniz gerekir. Bir diğer ileri ASP tekniği ise COM bileşenlerini kullanarak, ASP sayfalarınızı VBScript veya JavaScript yerine daha hızlı ve daha güvenli binary (program) dosyaları ile birleştirmek olabilir. C++, Visual Basic, Borland Delphi gibi bir dille yazılmış ve derlenmiş olan COM bileşenleri, kendilerine ASP sayfası tarafından gönderilen çağrı üzerine harekete geçerler ve büyük bir ihtimalle Server dışında yapmaları gereken işi yaparak sonucunu ASP sayfasına ulaştırılmak üzere Server’a bildirirler. Derlenmiş (program haline getirilmiş) oldukları için COM bileşenleri daha hızlı çalışırlar ve Server’ın kaynaklarını kullanmadıkları için de Web iletişimini yavaşlatmazlar. Bu tür bileşenlere çoğu zaman ADODB nesnesinin .Command metodu ile erişiriz. Microsoft ve diğer firmalar, ASP sayfalarımızla birlikte kullanılmak üzere COM programları üretmeye ve pazarlamaya başlamış bulunuyorlar. Bu tür bileşenleri gerçek Internet Server ortamında kullanabilmek için, programın Server’ın bulunduğu bilgisayarda Registry kaydının yapılması gerekir. Bunu Web Server yönetimi ile görüşmeniz şarttır.
|
|
|
|
|
Logged
|
Herşeyi Sana Yazdım , Herşeye Seni YazdımResimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap( N Resimlerin Görüntülenmesine İzin Verilmiyor Resimleri Görebilmek İçin Üye Ol veya Giriş Yap D )
|
|
| Kasım 10, 2007, 04:06:51 ÖS
|
|
| Şubat 16, 2008, 10:10:16 ÖÖ
|
|
|
| | | | | | | | | | | |