• 09-07-2008, 20:09:34
    #1
    Bir arkadaşın bu forumda vermiş olduğu kodlar ile sitemde Sitemap uygulaması yapmak istedim. Yalnız ufak bir sorunla karşılaştım. Sitemdeki linkler AspRewrite şeklinde.
    Veritabanından aldığım dosyaadını Türkçe Karakterden arındırıp linke çeviriyorum. Aynı işlemi Sitemap içinde yaptığımda ise hata ile karşılaşıyorum.

    KODLAR SOYLE:

    <%
    ConnStr = "driver=........."
    Set baglanti = server.CreateObject("adodb.connection" )
    baglanti.Open(ConnStr)
    sitemapbasi = 100
    dosyasay = baglanti.Execute("select count(id) as dosyasayisi from TABLOADI" )
    dosyasayisi=dosyasay("dosyasayisi" )
    Set dosyasay = Nothing
    Set FSO = Server.CreateObject("Scripting.FileSystemObject" )
    FSO.createTextFile Server.MapPath("sitemaps.xml" )
    Set haritadizin = FSO.OpenTextFile(Server.MapPath("sitemaps.xml" ),2,0)
    veri="<?xml version=" "1.0" " encoding=" "UTF-8" "?>"
    veri=veri&"<sitemapindex xmlns=" "http://www.sitemaps.org/schemas/sitemap/0.9" ">"
    For L = 1 To Round(dosyasayisi/sitemapbasi)
    veri=veri&"<sitemap><loc>http://www.sitem.com/sitemap" &L&".xml</loc></sitemap>"
    Next
    haritadizinveri=veri&"</sitemapindex>"
    haritadizin.write(haritadizinveri)
    haritadizin.Close
    Set haritadizin = Nothing
    '-Buraya kadar site haritası dizinimizi oluşturduk.

    For T = 1 To Round(dosyasayisi/sitemapbasi)
    FSO.createTextFile Server.MapPath("sitemap" &T&".xml" )
    Set harita = FSO.OpenTextFile(Server.MapPath("sitemap" &T&".xml" ),2,0)
    haritaveri="<?xml version=" "1.0" " encoding=" "UTF-8" "?>"
    haritaveri=haritaveri&"<urlSet xmlns=" "http://www.sitemaps.org/schemas/sitemap/0.9" ">"
    Set dosyalar = Server.CreateObject("Adodb.Recordset" )
    sutun = "select * from TABLOADI where onay='E' order by id desc"
    dosyalar.Open sutun,baglanti,1,3
    dosyalar.move (sitemapbasi*(T-1))
    Do While not dosyalar.Eof
    haritaveri=haritaveri&"<url><loc>http://www.sitem.com/24/" &dosyalar("id" )&"/SiteMap/" &Karakter&".html</loc></url>"
    dosyalar.Movenext
    Loop
    dosyalar.Close
    Set dosyalar = Nothing
    haritaveri=haritaveri&"</urlset>"
    harita.write(haritaveri) --------------61. SATIR BURASI
    harita.Close
    Set harita = Nothing
    Next
    Set FSO = Nothing
    %>
    SAYFASONU
    ----------------

    HATALI KISIM

    haritaveri=haritaveri&"<url><loc>http://www.sitem.com/24/"&dosyalar("id")&"/SiteMap/"&Karakter&".html</loc></url>"

    Bu satırdaki ---"&Karakter&".--- bölümünü kaldırdığımda kod sorunsuz çalışıyor.
    Ama karakter bölümü varken alttaki hatayı veriyor.

    Microsoft VBScript runtime error '800a0005'
    Invalid procedure call or argument
    /SitemapYapma.asp, line 61

    ------ 61. SATIR = harita.write(haritaveri) --------------
  • 11-07-2008, 14:02:49
    #2
    Karakter diye bir değişken var. Onu nerde tanımlıyorsun ?