sorunumu buldum ama nasıl cözeceğimi bilmiyorum

sorun ../../db tanımıyor tam yolunu yazıcamı soyluorlar ama nasıl

burda bişeyler var amabişey anlamadım


İlk Fonsiyonumuz En çok Sorun çıkaran ve Çok şikayet edilen
Host değiştigi zaman Ms Access DB kullanan Scriptin Çalışmaması sorununu kısmen Çözen Fonksiyon.
"../ " ın çalışmamasının sebebi . sunucunun bu özelliğinin kapatılmış olması

Server.MapPath (../../db/ornek.mdb) Şeklindeki Fonksiyonun Yeni Hostunuzda çalışmaması durumunda Tam Yolu yazmanız gerekir . oysa vereceğim fonksiyonda bunun önemi yok.

Fonksiyonu Kullanmak için
Server.MapPath() yerine --- > cetinDbMapPath ()
yazmanız yeterli
tabi Aşagıdaki Fonksiyonuda ilgili sayfaya ASP tagları arasına #include etmeniz gerekir.

Kod verisi:
Function cetinDbMapPath (DbYolu)
'********************************
' Kullanimi :
' cetinDbMapPath ("\db")
' veya
' cetinDbMapPath (/../db/denem.mdb)
'
' Aciklama :
' server.MapPath "/../../db/dosya.txt"
' Çalışmadıgı Sunucularda Etkilidir
' www nin gerisini bulur
' vereceginiz klasor eklenir.
' üstelik hangi klasorde olursanız olun
' ana dizinden yola çıkarak işlemi yapar
' Dikkat :
' wwwRoot için kullanilmasi sacma olur
' ocak - 2003
' yazan: Cetin Gumuscu
'********************************
dim sonuc
dim S_pozisyon
dim Yol

' "../","./","//" kuralları uygula
Dbyolu = Replace (Dbyolu,"../","/")
Dbyolu = Replace (Dbyolu,"./","/")
Dbyolu = Replace (Dbyolu,"//","/")
' "/" ile "\" degistiriliyor
Dbyolu = Replace (Dbyolu,"/","\")

' Sunucu ya göre degisen Ana dizin yolu
yol = server.MapPath ("/")

' sagdaki ilk Slash pozisyonu
S_pozisyon = InstrRev (yol,"\")

' slash pozisyonu ve kendini Cıkart
sonuc = left (yol , S_pozisyon - 1 )

cetinDbMapPath = sonuc & Dbyolu

End Function
'----------------------------------------------





fonsiyonda web dizini "httpDocs", "WWW" , "wwwRoot" , olması bişeyi değiştirmiyor. oysa server.MapPath ile Bunu yapamıyoruz.

* server.mapPath (/db/ornek.mdb)
örnek çıktısı = "C:\vhost\domain.com\Httpdocs\db\ornek.mdb" + scriptin çalıştığı dizine göre çıktı değişir!


* cetinDbMapPath (/db/ornek.mdb)
örnek çıktısı = "C:\vhost\domain.com\db\ornek.mdb" + scriptin çalıştıgı Dizine göre çıktı değişmez



__________________



kısa hali:
Kod verisi:

Function cetinDbMapPath (DbYolu)
' ocak - 2003
' yazan: Cetin Gumuscu
'********************************
dim sonuc
dim S_pozisyon
dim Yol
Dbyolu = Replace (Dbyolu,"../","/")
Dbyolu = Replace (Dbyolu,"./","/")
Dbyolu = Replace (Dbyolu,"//","/")
Dbyolu = Replace (Dbyolu,"/","\")
yol = server.MapPath ("/")
S_pozisyon = InstrRev (yol,"\")
sonuc = left (yol , S_pozisyon - 1 )
cetinDbMapPath = sonuc & Dbyolu
End Function

' kullanım şekli klasor yada Db wwwroot arkasında ise kullanın
dbyol = cetinDbMapPath (/private/datalar/ornek.mdb)