Forum
Bulduğum bir şablonu tek tablodan çekecek şekilde çalıştırdım. Yanlız union all komutuyla 2 tablodan çektiremedim. Yapmaya çalıştığım kodlar aşağıda bi bakarmısınız neresi yanlış olmuş? Ayrıca ben bu dosyayı sitemap.asp olarak kaydediyorum ve bunu google a gönderdiğimizde sitemap.xml kadar performans verecekmidir. Bu şekilde bir sitemap.asp dosyasından randuman alabilirmiyim? Doğru yoldamıyım?
<?xml version="1.0" encoding="UTF-8" ?><urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xs d">
<%
Response.Buffer = True
Response.ContentType = "text/xml"
Set baglan = Server.CreateObject("ADODB.Connection")
baglan.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb")
Function cevir(data)
data = Replace (data ,"http://www.youtube.com/watch?v=","",1,-1,1)
data = Replace (data ,"ı","i",1,-1,1)
data = Replace (data ,"ğ","g",1,-1,1)
data = Replace (data ,"ü","u",1,-1,1)
data = Replace (data ,"ş","s",1,-1,1)
data = Replace (data ,"ö","o",1,-1,1)
data = Replace (data ,"ç","c",1,-1,1)
data = Replace (data ,"I","i",1,-1,1)
data = Replace (data ,"Ğ","g",1,-1,1)
data = Replace (data ,"Ü","u",1,-1,1)
data = Replace (data ,"Ş","s",1,-1,1)
data = Replace (data ,"İ","i",1,-1,1)
data = Replace (data ,"Ç","c",1,-1,1)
data = Replace (data ,"Ö","o",1,-1,1)
data = Replace (data ," ","-",1,-1,1)
data = Replace (data ,">","",1,-1,1)
data = Replace (data ,"<","",1,-1,1)
data = Replace (data ,"*","",1,-1,1)
data = Replace (data ,"%","",1,-1,1)
data = Replace (data ,"'","",1,-1,1)
data = Replace (data ,"/","",1,-1,1)
data = Replace (data ,"\","",1,-1,1)
data = Replace (data ,".","",1,-1,1)
data = Replace (data ,"","",1,-1,1)
data = Replace (data,",","")
data = Replace (data,"?","")
data = Replace (data,"[","")
data = Replace (data,"]","")
data = Replace (data,"!","")
data = Replace (data,"(","")
data = Replace (data,")","")
data = Replace (data,":","")
data = Replace (data ,"`","")
data = Replace (data ,"=","")
data = Replace (data ,"&","")
data = Replace (data ,"%","")
data = Replace (data ,"#","")
data = Replace (data ,"And","")
data = Replace (data ,Chr(34),"")
data = Replace (data ,Chr(39),"")
cevir=data
End Function
' ---------- Start Configuration --------
'
' Valid change frequency values: always, hourly, daily, weekly, monthly, yearly, never
Const strCategoryChangeFreq = "weekly" 'Change frequency of category pages
Const strCategoryPriority = "0.8" 'Priority of category pages
Const strForumChangeFreq = "weekly" 'Change frequency of forums pages
Const strForumPriority = "0.6" 'Priority of forum pages
Const strTopicChangeFreq = "daily" 'Change frequency of topic pages
Const strTopicPriority = "0.4" 'Priority of topic pages
'
' ---------- End Configuration ----------
Function FormatDate(byVal strDate)
If strDate = "" OR IsDate(strDate) = False Then Exit Function
strYear = Year(strDate)
strMonth = Month(strDate)
strDay = Day(strDate)
If Len(strMonth) < 2 Then strMonth = "0"& strMonth
If Len(strDay) < 2 Then strDay = "0"& strDay
' Output: YYYY-MM-DD
FormatDate = strYear &"-"& strMonth &"-"& strDay
End Function
'Declare variables
Dim strYear
Dim strMonth
Dim strDay
Dim rsCategory
Dim rsForums
Dim rsTopics
Dim strCategoryLastMod
Set rsforums = Server.CreateObject("adodb.RecordSet")
sql = ""
sql = sql & "SELECT id,baslik,aciklama,tarih From haber WHERE baslik ORDER BY tarih ASC "
sql = sql & "Union All "
sql = sql & "SELECT id,baslik,aciklama,tarih From makale WHERE baslik ORDER BY tarih ASC "
rsforums.open sql, baglanti, 1, 3
If Not rsForums.Eof Then
Do While Not rsForums.Eof
strCategoryLastMod = rsForums("tarih")
Response.Write(vbCrLf &"<url>" & _
vbCrLf & "<loc> http://www.siteadi.com /"& rsForums("id") &"-"& cevir(rsForums("baslik")) &".html</loc>" & _
vbCrLf & "<lastmod>"& FormatDate(rsForums("tarih")) &"</lastmod>" & _
vbCrLf & "<changefreq>"& strForumChangeFreq &"</changefreq>" & _
vbCrLf & "<priority>"& strForumPriority &"</priority>" & _
"</url>")
' List topics
rsForums.Movenext
Loop
End If
%>
</urlset>
işe öncelikle (plesk panel kullanıyorsan tabi ki diğerlerinde nasıl yapıldığını hiç araştırmadım) 404 uyarısı için özelleştirme yaparak başlanman gerek. server a 404.asp diye bir dosya yükle ve 404 hatası verdiğinde 404.asp ye gitmesi için panele 404.asp dosyasının yolunu gir.
404.asp dosyasına sitemap.xml dosyası çağırıldığıda böyle bir dosya olmadığı için sitemap.asp dosyasına gitmesini söyle
404.asp
IF Request.ServerVariables("URL") = "/sitemap.xml" THEN
Response.Redirect "sitemap.asp"
ELSE
Response.Write "HATA: BÖYLE BİR SAYFA YOK."
END IF
Daha önceki sorduğun soruda union ile birleştirme yapmıştın sanırım.
If Not rsForums.Eof Then u kullanman gereksiz geldi bana. Çünkü zaten Do While Not rsForums.Eof ile kayıt boş değilse while yaptırmışsın. Bu şekilde çalışması lazım.
Set baglan = Server.CreateObject("ADODB.Connection")
baglan.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb")
Sayfanın en başında mdb yi baglan ile obje yapmışsın ama sql de tablo verisi listelerken rsforums.open sql, baglanti, 1, 3 kullanmışın yani baglanti değil baglan yapmalısın. Hata vermesi normal.
Lütfen dediklerimi deneyip, feedback yaparmısın. Cevabını bekliyorum.
hocam dediinizi yaptım kod aşağıdaki gibi oldu. yanlız ben iis7 win7 kullanıyorum ve localde çalıştırıyorum. Bu kodu çalıştırdıgımda böle bir hata alıyorum chrome da ...
This page contains the following errors:
Below is a rendering of the page up to the first error.
<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xs d">
<%
Response.Buffer = True
Response.ContentType = "text/xml"
Set baglan = Server.CreateObject("ADODB.Connection")
baglan.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb")
Function cevir(data)
data = Replace (data ,"http://www.youtube.com/watch?v=","",1,-1,1)
data = Replace (data ,"ı","i",1,-1,1)
data = Replace (data ,"ğ","g",1,-1,1)
data = Replace (data ,"ü","u",1,-1,1)
data = Replace (data ,"ş","s",1,-1,1)
data = Replace (data ,"ö","o",1,-1,1)
data = Replace (data ,"ç","c",1,-1,1)
data = Replace (data ,"I","i",1,-1,1)
data = Replace (data ,"Ğ","g",1,-1,1)
data = Replace (data ,"Ü","u",1,-1,1)
data = Replace (data ,"Ş","s",1,-1,1)
data = Replace (data ,"İ","i",1,-1,1)
data = Replace (data ,"Ç","c",1,-1,1)
data = Replace (data ,"Ö","o",1,-1,1)
data = Replace (data ," ","-",1,-1,1)
data = Replace (data ,">","",1,-1,1)
data = Replace (data ,"<","",1,-1,1)
data = Replace (data ,"*","",1,-1,1)
data = Replace (data ,"%","",1,-1,1)
data = Replace (data ,"'","",1,-1,1)
data = Replace (data ,"/","",1,-1,1)
data = Replace (data ,"\","",1,-1,1)
data = Replace (data ,".","",1,-1,1)
data = Replace (data ,"","",1,-1,1)
data = Replace (data,",","")
data = Replace (data,"?","")
data = Replace (data,"[","")
data = Replace (data,"]","")
data = Replace (data,"!","")
data = Replace (data,"(","")
data = Replace (data,")","")
data = Replace (data,":","")
data = Replace (data ,"`","")
data = Replace (data ,"=","")
data = Replace (data ,"&","")
data = Replace (data ,"%","")
data = Replace (data ,"#","")
data = Replace (data ,"And","")
data = Replace (data ,Chr(34),"")
data = Replace (data ,Chr(39),"")
cevir=data
End Function
' ---------- Start Configuration --------
'
' Valid change frequency values: always, hourly, daily, weekly, monthly, yearly, never
Const strCategoryChangeFreq = "weekly" 'Change frequency of category pages
Const strCategoryPriority = "0.8" 'Priority of category pages
Const strForumChangeFreq = "weekly" 'Change frequency of forums pages
Const strForumPriority = "0.6" 'Priority of forum pages
Const strTopicChangeFreq = "daily" 'Change frequency of topic pages
Const strTopicPriority = "0.4" 'Priority of topic pages
'
' ---------- End Configuration ----------
Function FormatDate(byVal strDate)
If strDate = "" OR IsDate(strDate) = False Then Exit Function
strYear = Year(strDate)
strMonth = Month(strDate)
strDay = Day(strDate)
If Len(strMonth) < 2 Then strMonth = "0"& strMonth
If Len(strDay) < 2 Then strDay = "0"& strDay
' Output: YYYY-MM-DD
FormatDate = strYear &"-"& strMonth &"-"& strDay
End Function
'Declare variables
Dim strYear
Dim strMonth
Dim strDay
Dim rsCategory
Dim rsForums
Dim rsTopics
Dim strCategoryLastMod
Set rsforums = Server.CreateObject("adodb.RecordSet")
sql = ""
sql = sql & "SELECT id,baslik,aciklama,tarih From haber WHERE baslik ORDER BY tarih ASC "
sql = sql & "Union All "
sql = sql & "SELECT id,baslik,aciklama,tarih From makale WHERE baslik ORDER BY tarih ASC "
rsforums.open sql, baglan, 1, 3
Do While Not rsForums.Eof
strCategoryLastMod = rsForums("tarih")
Response.Write(vbCrLf &"<url>" & _
vbCrLf & "<loc> http://www.siteadi.com /"& rsForums("id") &"-"& cevir(rsForums("baslik")) &".html</loc>" & _
vbCrLf & "<lastmod>"& FormatDate(rsForums("tarih")) &"</lastmod>" & _
vbCrLf & "<changefreq>"& strForumChangeFreq &"</changefreq>" & _
vbCrLf & "<priority>"& strForumPriority &"</priority>" & _
"</url>")
' List topics
rsForums.Movenext
Loop
%>
</urlset>
sanırım sayfa başında cache yapmadığın için böyle bir hata alıyorsun. Yada sayfa üst bilgisini sayfanın üstünde belirtmediğin için oluyor. Bir deneme yapalım.
<%
Response.Buffer = True
Response.ContentType = "text/xml"
%>
<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xs d">
<%
Set baglan = Server.CreateObject("ADODB.Connection")
baglan.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb")
.
.
.
şeklinde yap eğer gene hata alıyorsan
deneme yapalım.
<%
Response.Buffer = True
Response.ContentType = "text/xml"
%>
kısmını kaldırıp tekrar denemelisin.
göndermiş olduğun kodu xp iis 5.1 de denedim tabi sql kısmını kaldırarak sorunsuz çalıştı bir hata vermedi. Başka bir sorun olmasın, hangi sayfada vermişti bu hatayı bir bakın derim. Bir de xml de taglar arası boşluk olunca verebiliyormuş ama sorun çıkarması lazım.
Denediğim kod aşağıdaki gibi ve hata vermedi xml sayfası açıldı.
deneme.asp
<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns=" http://www.google.com/schemas/sitemap/0.84 " xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation=" http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd ">
<%
Response.Buffer = True
Response.ContentType = "text/xml"
Function cevir(data)
data = Replace (data ," http://www.youtube.com/watch?v =","",1,-1,1)
data = Replace (data ,"ı","i",1,-1,1)
data = Replace (data ,"ğ","g",1,-1,1)
data = Replace (data ,"ü","u",1,-1,1)
data = Replace (data ,"ş","s",1,-1,1)
data = Replace (data ,"ö","o",1,-1,1)
data = Replace (data ,"ç","c",1,-1,1)
data = Replace (data ,"I","i",1,-1,1)
data = Replace (data ,"Ğ","g",1,-1,1)
data = Replace (data ,"Ü","u",1,-1,1)
data = Replace (data ,"Ş","s",1,-1,1)
data = Replace (data ,"İ","i",1,-1,1)
data = Replace (data ,"Ç","c",1,-1,1)
data = Replace (data ,"Ö","o",1,-1,1)
data = Replace (data ," ","-",1,-1,1)
data = Replace (data ,">","",1,-1,1)
data = Replace (data ,"<","",1,-1,1)
data = Replace (data ,"*","",1,-1,1)
data = Replace (data ,"%","",1,-1,1)
data = Replace (data ,"'","",1,-1,1)
data = Replace (data ,"/","",1,-1,1)
data = Replace (data ,"\","",1,-1,1)
data = Replace (data ,".","",1,-1,1)
data = Replace (data ,"","",1,-1,1)
data = Replace (data,",","")
data = Replace (data,"?","")
data = Replace (data,"[","")
data = Replace (data,"]","")
data = Replace (data,"!","")
data = Replace (data,"(","")
data = Replace (data,")","")
data = Replace (data,":","")
data = Replace (data ,"`","")
data = Replace (data ,"=","")
data = Replace (data ,"&","")
data = Replace (data ,"%","")
data = Replace (data ,"#","")
data = Replace (data ,"And","")
data = Replace (data ,Chr(34),"")
data = Replace (data ,Chr(39),"")
cevir=data
End Function
' ---------- Start Configuration --------
'
' Valid change frequency values: always, hourly, daily, weekly, monthly, yearly, never
Const strCategoryChangeFreq = "weekly" 'Change frequency of category pages
Const strCategoryPriority = "0.8" 'Priority of category pages
Const strForumChangeFreq = "weekly" 'Change frequency of forums pages
Const strForumPriority = "0.6" 'Priority of forum pages
Const strTopicChangeFreq = "daily" 'Change frequency of topic pages
Const strTopicPriority = "0.4" 'Priority of topic pages
'
' ---------- End Configuration ----------
Function FormatDate(byVal strDate)
If strDate = "" OR IsDate(strDate) = False Then Exit Function
strYear = Year(strDate)
strMonth = Month(strDate)
strDay = Day(strDate)
If Len(strMonth) < 2 Then strMonth = "0"& strMonth
If Len(strDay) < 2 Then strDay = "0"& strDay
' Output: YYYY-MM-DD
FormatDate = strYear &"-"& strMonth &"-"& strDay
End Function
'Declare variables
Dim strYear
Dim strMonth
Dim strDay
Dim rsCategory
Dim rsForums
Dim rsTopics
Dim strCategoryLastMod
%>
</urlset>
hocam bu kod bu şekilde tam istediğim gibi çalışıyor çok teşekkür ederim.sayfanın en aaltına koydum çalışan kodu. kaç gündür benimle uğraşıosun inş soru sormakla sana sıkıntı vermıyorumdur. çünkü ben epey bi soru sorarım 😀 son olarak ben .html e uzanti die birşey ekledim malum asp de 404 lu seolar için rastlanılan bi durum yanlız bu kod normade çalışıyor ama buraya ekleyınce çalışmadı bu kodu ben bu şekilde ekledim. Birde biliyorum fazla uzattım ama şimdi sitemap.xml i 404 den sitemap.asp ye yönlendirdiğim vebu dosyayı www.siteadi.com/sitemap.asp die googlea koydugumda hiç bir sorunum olmayacak değilmi?
End Function
'Declare variables
Dim strYear
Dim strMonth
Dim strDay
Dim rsCategory
Dim rsForums
Dim rsTopics
Dim strCategoryLastMod
Set rsforums = Server.CreateObject("adodb.RecordSet")
sql = ""
sql = sql & "SELECT id,baslik,aciklama,tarih,tip From haber WHERE baslik ORDER BY tarih ASC "
sql = sql & "Union All "
sql = sql & "SELECT id,baslik,aciklama,tarih,tip From makale WHERE baslik ORDER BY tarih ASC "
rsforums.open sql, baglan, 1, 3
Do While Not rsforums.eof
if rsforums("tip")="1" Then
Uzanti="makale"
ELseIf rsforums("tip")="2" Then
Uzanti="html"
Else
Uzanti="html"
ENd If
strCategoryLastMod = rsForums("tarih")
Response.Write(vbCrLf &"<url>" & _
vbCrLf & "<loc> http://www.siteadi.com /"& rsForums("id") &"-"& cevir(rsForums("baslik")) &"."& rsForums("uzanti") &"</loc>" & _
vbCrLf & "<lastmod>"& FormatDate(rsForums("tarih")) &"</lastmod>" & _
vbCrLf & "<changefreq>"& strForumChangeFreq &"</changefreq>" & _
vbCrLf & "<priority>"& strForumPriority &"</priority>" & _
"</url>")
' List topics
rsForums.Movenext
Loop
%>
</urlset>
-------------------------------------------------------------------------------------------------------------------------
ÇALIŞAN KOD;
<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xs d">
<%
Response.Buffer = True
Response.ContentType = "text/xml"
Set baglan = Server.CreateObject("ADODB.Connection")
baglan.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("veritabani.mdb")
Function cevir(data)
data = Replace (data ,"http://www.youtube.com/watch?v=","",1,-1,1)
data = Replace (data ,"ı","i",1,-1,1)
data = Replace (data ,"ğ","g",1,-1,1)
data = Replace (data ,"ü","u",1,-1,1)
data = Replace (data ,"ş","s",1,-1,1)
data = Replace (data ,"ö","o",1,-1,1)
data = Replace (data ,"ç","c",1,-1,1)
data = Replace (data ,"I","i",1,-1,1)
data = Replace (data ,"Ğ","g",1,-1,1)
data = Replace (data ,"Ü","u",1,-1,1)
data = Replace (data ,"Ş","s",1,-1,1)
data = Replace (data ,"İ","i",1,-1,1)
data = Replace (data ,"Ç","c",1,-1,1)
data = Replace (data ,"Ö","o",1,-1,1)
data = Replace (data ," ","-",1,-1,1)
data = Replace (data ,">","",1,-1,1)
data = Replace (data ,"<","",1,-1,1)
data = Replace (data ,"*","",1,-1,1)
data = Replace (data ,"%","",1,-1,1)
data = Replace (data ,"'","",1,-1,1)
data = Replace (data ,"/","",1,-1,1)
data = Replace (data ,"\","",1,-1,1)
data = Replace (data ,".","",1,-1,1)
data = Replace (data ,"","",1,-1,1)
data = Replace (data,",","")
data = Replace (data,"?","")
data = Replace (data,"[","")
data = Replace (data,"]","")
data = Replace (data,"!","")
data = Replace (data,"(","")
data = Replace (data,")","")
data = Replace (data,":","")
data = Replace (data ,"`","")
data = Replace (data ,"=","")
data = Replace (data ,"&","")
data = Replace (data ,"%","")
data = Replace (data ,"#","")
data = Replace (data ,"And","")
data = Replace (data ,Chr(34),"")
data = Replace (data ,Chr(39),"")
cevir=data
End Function
' ---------- Start Configuration --------
'
' Valid change frequency values: always, hourly, daily, weekly, monthly, yearly, never
Const strCategoryChangeFreq = "weekly" 'Change frequency of category pages
Const strCategoryPriority = "0.8" 'Priority of category pages
Const strForumChangeFreq = "weekly" 'Change frequency of forums pages
Const strForumPriority = "0.6" 'Priority of forum pages
Const strTopicChangeFreq = "daily" 'Change frequency of topic pages
Const strTopicPriority = "0.4" 'Priority of topic pages
'
' ---------- End Configuration ----------
Function FormatDate(byVal strDate)
If strDate = "" OR IsDate(strDate) = False Then Exit Function
strYear = Year(strDate)
strMonth = Month(strDate)
strDay = Day(strDate)
If Len(strMonth) < 2 Then strMonth = "0"& strMonth
If Len(strDay) < 2 Then strDay = "0"& strDay
' Output: YYYY-MM-DD
FormatDate = strYear &"-"& strMonth &"-"& strDay
End Function
'Declare variables
Dim strYear
Dim strMonth
Dim strDay
Dim rsCategory
Dim rsForums
Dim rsTopics
Dim strCategoryLastMod
Set rsforums = Server.CreateObject("adodb.RecordSet")
sql = ""
sql = sql & "SELECT id,baslik,aciklama,tarih From haber WHERE baslik ORDER BY tarih ASC "
sql = sql & "Union All "
sql = sql & "SELECT id,baslik,aciklama,tarih From makale WHERE baslik ORDER BY tarih ASC "
rsforums.open sql, baglan, 1, 3
Do While Not rsForums.Eof
strCategoryLastMod = rsForums("tarih")
Response.Write(vbCrLf &"<url>" & _
vbCrLf & "<loc> http://www.siteadi.com /"& rsForums("id") &"-"& cevir(rsForums("baslik")) &".html</loc>" & _
vbCrLf & "<lastmod>"& FormatDate(rsForums("tarih")) &"</lastmod>" & _
vbCrLf & "<changefreq>"& strForumChangeFreq &"</changefreq>" & _
vbCrLf & "<priority>"& strForumPriority &"</priority>" & _
"</url>")
' List topics
rsForums.Movenext
Loop
%>
</urlset>
Sizin sorunlarınızı çözerken bende birşeyler öğrenmiş bilgimi tazelemiş oluyorum.
Sorunu tam anlamadım ama anladığım kadarına cevap vereyim.
404.asp seosu yapığında sitemap.xml url sini sitemap.asp dosyasına yönlendirdiğinde sorun çıkmaz. Ben daha once bu şekilde seo yaptım gayetde iyi çalıtış. Google a ister sitemap.xml olarak ekle ister sitemap.asp olarak ekle. Bu uzantı google için pek önemli değil. Önemli olan xml deki içeriğin google'ın anlayacağı şekilde seo etmen olacaktır. Eğer sql den dataları doğru birşekilde çekip düzgün bir sayfa oluşuyorsa yayınlama aşamasına geçebilirisin.
açıklaman için çok teşekkür ederim aklımdaki soru işaretleri gitti. üstde verdiğim çalışan kod dediğim union la tablosu birleştirilmiş sorunsuz çalışan bir sitemap kodu. üste verdiğim kodda yeni karşılaştıgım bir sorun ben sitem de 404 deki linklerim şöle haber lerin linklerinin sonuna .html geliyor makalelerin sonuna .makale geliyor. bu yaptıgımız kodda hepsının sonuna .html geliyor o yüzden makaleden çekilenler problem verecektir. bende bu altda verdiğim koddaki gibi ek yaptım tip özelliği ekledim bu normal bir asp sayfasında çalışıyor ama burda çalıştıramadım.
End Function
'Declare variables
Dim strYear
Dim strMonth
Dim strDay
Dim rsCategory
Dim rsForums
Dim rsTopics
Dim strCategoryLastMod
Set rsforums = Server.CreateObject("adodb.RecordSet")
sql = ""
sql = sql & "SELECT id,baslik,aciklama,tarih,tip From haber WHERE baslik ORDER BY tarih ASC "
sql = sql & "Union All "
sql = sql & "SELECT id,baslik,aciklama,tarih,tip From makale WHERE baslik ORDER BY tarih ASC "
rsforums.open sql, baglan, 1, 3
Do While Not rsforums.eof
if rsforums("tip")="1" Then
Uzanti="makale"
ELseIf rsforums("tip")="2" Then
Uzanti="html"
Else
Uzanti="html"
ENd If
strCategoryLastMod = rsForums("tarih")
Response.Write(vbCrLf &"<url>" & _
vbCrLf & "<loc> http://www.siteadi.com /"& rsForums("id") &"-"& cevir(rsForums("baslik")) &"."& rsForums("uzanti") &"</loc>" & _
vbCrLf & "<lastmod>"& FormatDate(rsForums("tarih")) &"</lastmod>" & _
vbCrLf & "<changefreq>"& strForumChangeFreq &"</changefreq>" & _
vbCrLf & "<priority>"& strForumPriority &"</priority>" & _
"</url>")
' List topics
rsForums.Movenext
Loop
%>
</urlset>
if rsforums("tip")="1" Then
Uzanti="makale"
ELseIf rsforums("tip")="2" Then
Uzanti="html"
Else
Uzanti="html"
ENd If
sanırım kodun bu kısmında sorun var. rsforums("tip") şeklindeki bir veri çekmeyi 2 kez tekrarlaman asp de sorun yapacaktır. Niye böyle bir sorun yapar bilmiyorum ama ben çok rastladım. heralde programcılığın kuralına uymuyor. bu değeri bir nesneye bağlayalım.
' Do While Not rsforums.eof den hemen sonra aşağıdaki gibi yapmanı tavsiye ederim.
forum_tip = rsforums("tip")
if forum_tip ="1" Then
Uzanti="makale"
ELseIf forum_tip ="2" Then
Uzanti="html"
Else
Uzanti="html"
ENd If
'buraya aradaki kodları yaz.
forum_tip = ""
uzanti = ""
'forum tip ve Uzanti nesnesini boşatıyorm. Bunu NULL değeri vererek de boşaltabilirsin. Niye bunu yaptım dersen diğer kayda geçtiği vakit bir önceki değeri
yazabiliyor. Özellikle uzantida bu sorunu yaşayabilirsin. Mutlaka bu tür işlemlerde nesneleri boşalt veya kapat. Bu şekilde id hatası verdiğindede kodlarımızdaki
'hatanın kaynağını anlayabiliyoruz.
rsForums.Movenext
Loop
' bu deşilde kodların devam etsin.
teşekkürler hocam yardımınla bu problemımıde çözmüş oldun. çok saol
Merhaba,
Ben teşekkür ederim faydalı olabildiysem ne ala.
İyi günler.