İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Veri tabanından veri çekerek sitemap hazırlama

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Bir site açtınız php ile kodladınız güzel bir site oldu. bilgileri veri tabanından çekiyor ve oldukça fazla sayfanız oluştu... artık tek amacınız google'da üst sıralara çıkmak.

Sıra siteye bir sitemap oluşturmaya geldi. Çünkü hepimiz artık çok iyi biliyoruz ki sitemap oluşturmanın büyük katkıları bulunmaktadır (Son zamanlarda tartışılır bir konudur). En sıkıcı ve zor olabilen bir andasınız. ya programları kullancaksınız ya da veritabanından bilgileri çekerek direk sitemap hazırlayacaksınız. Bu iş program ile oldukça zor bir iş olabilir. çünkü her site güncellemelerinde program ile uğraşacaksınız. Buda çok vakit kaybı olmakla birlikte kota olaylarında da sorun yaşatabilmektedir.

Herhalde en iyi yol veri tabanından bilgileri çekip sitemap oluşturmak. bir kere hazırlayacaksınız ve bir daha uğraşmayacaksınız... bu konuda pek fazla bilgiye sahip olmayan arkadaşlar için bir kod ile halletmelerine yardımcı olacağım...



Kod:
<?

include "config.php";

?>        

<?php                                        
                            
$xml_ciktisi="<?xml version=\"1.0\" encoding=\"windows-1254\"?><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\">\n";



$isimx=mysql_query("SELECT * FROM veritabanı_adı WHERE onay='e' ORDER BY id DESC");;

while($link = mysql_fetch_array($isimx))
{
$haber_id = $link["id"];
  $date = date("F d, 20y");

$xml_ciktisi .= "<url>
                          <loc>http://www.siteadi.com/yazi.php?yazi_id=$haber_id</loc>
                          <lastmod>$date</lastmod>
                              <changefreq>daily</changefreq>
                              <priority>0.5</priority>
                              </url>\n";
                      
};

$xml_ciktisi .= "</urlset>\n";

echo $xml_ciktisi;
        
?>

kullandığınız scripte göre yapılacaklar:

1. $isimx=mysql_query("SELECT * FROM veritabanı_adı WHERE onay='e' ORDER BY id DESC"); Gerekli yerleri kendinize göre düzenleyiniz...

2. config.php : Dosyası veri tabanı bağlantısının yapıldığı dosyanız olacak...

3." http://www.siteadi.com/yazi.php?yazi_id= " Sitenize göre değiştiriniz...

Eğer bu konu ile ilgili bir sorunuz varsa elimden geldiğince yanıtlayabilirm....

Çalışmalarınızda başarılr dilerim...

lütfen kimse alıntıdır demesin. Tamamen kendi çalışmamdır... Sadece iyinette yayınlamakta biraz geç kaldım :(
 

Hobichat

0
İyinet Üyesi
Katılım
26 Ekim 2006
Mesajlar
336
Reaction score
1
çok tşkler hocam saolun veri tabanından çekmeden yapma sansımız varmıdır yokmudur böle size ilğinç bir sorum olucak :)
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
çok tşkler hocam saolun veri tabanından çekmeden yapma sansımız varmıdır yokmudur böle size ilğinç bir sorum olucak :)

Güzel bir soru. Onu forumda araştırırsanız bazı sit4emap hazırlama programları var (exe). onların yardımı ile de yapabilrisiniz...
 

webyazilim

0
İyinet Üyesi
Katılım
12 Haziran 2006
Mesajlar
1,511
Reaction score
0
Konum
Kayseri
Bunun benzeri birşey yapmıştım. aktif oluşan tüm URL adreslerini php global değişkenlerle alıp site kendi URL listesinide her oluşan yeni URL de güncelliyor ve belirli sayılarda URL artışında sitemap dosyasını yeniden oluşturuyordu. düzgün bi sitemap xml çıktısı alamadım vazgeçmiştim. bununla onu bi bağlayım bakalım nasıl olucak :)
 

ResSam

0
İyinet Üyesi
Katılım
9 Ekim 2007
Mesajlar
177
Reaction score
0
Konum
sivaS
sitemap.xml bazen işe yaradığı kadar bazende ortalığı karıştırıyor sitemin birine google botu bayadır girmiyordu, sanırım bu forumda bi arkadaş yazmıştı "sitemapı uçurdum ordan google botu tekrar siteme girmeye başladı" diye. neyse belki dogrudur dedim sitemapı sildim 2 gün sonra bot siteye girdi :) bu konuya dikkat edin lütfen ;)
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Yukarıdaki yöntem denendiği zaman Google Sitemaps'da uyarılar veriyor. Bu da dosyanın php uzantılı olmasından kaynaklanıyor. Farklı bir yol uygulayarak da bu uyarıları ortadan kaldırabiliriz.

mantık şu olucak. Bir sitemap.php dosyamız olucak gene burada veriler çekilip sitemap.xml formatında bir dosya kaydedilecek... Yalnız bu yöntem de veri tabanınızı her güncellediğiniz de sitemap.php'yi çalıştırmanız gerekli ki yeni bilgilerde sitemap.xml dosyasına taşınsın...

sitemap.php içeriği:

PHP:
<?
include "ayar.php";
?>        

<?                                       
                            
$xml_ciktisi="<?xml version=\"1.0\" encoding=\"windows-1254\"?><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\">\n";

$isimx=mysql_query("SELECT * FROM yazilar ORDER BY id DESC");;

while($link = mysql_fetch_array($isimx))
{
$haber_id = $link["id"];
  $date = date("F d, Y");

$xml_ciktisi .= "<url>
                          <loc>http://www.siteadi.com/yazi.php?id=$yazi_id</loc>
                          <lastmod>$date</lastmod>
                              <changefreq>daily</changefreq>
                              <priority>0.5</priority>
                              </url>\n";
                      
};

$xml_ciktisi .= "</urlset>\n";        
?>


<?
// Alınan veriler aşağıda ismi geçen dosyaya kopyalanıyor
$raw = $xml_ciktisi;
$handle = fopen("sitemap.xml", "w");
fwrite($handle, $raw);
?>

Tabiki bu kodları aynen kullanırsanız çalışmayacaktır. kullanmış olduğunuz scripte göre ayarlamalarınızı yapmanız gerekiyor...
 

Breeze

0
İyinet Üyesi
Onaylı Üye
Katılım
17 Nisan 2007
Mesajlar
1,445
Reaction score
1
Konum
CTRL + W
Sağol yagmayok
Ben php uzantılı sitemap kullanıyorum sorun olmuyor
Ama illa xml uzantılı yapmak isterseniz php olarak hazırlayın sitemap'ınızı
Hosting'te sitemap.php'nin bulunduğu klasörün içinde .htaccess dosyasını oluşturun

.htaccess dosyasının içine
Kod:
rewriteRule ^sitemap.xml$            sitemap.php
kodunu yerleştirin.

Artık sitemap.xml diyince otomatik olarak sitemap.php okunur.
 

Permission

0
İyinet Üyesi
Katılım
11 Aralık 2004
Mesajlar
6,458
Reaction score
3
Konum
izmir
Sağol yagmayok
Ben php uzantılı sitemap kullanıyorum sorun olmuyor
Ama illa xml uzantılı yapmak isterseniz php olarak hazırlayın sitemap'ınızı
Hosting'te sitemap.php'nin bulunduğu klasörün içinde .htaccess dosyasını oluşturun

.htaccess dosyasının içine
Kod:
rewriteRule ^sitemap.xml$            sitemap.php
kodunu yerleştirin.

Artık sitemap.xml diyince otomatik olarak sitemap.php okunur.

işte bunu aspde denedim yapamadım aspde hata sayafsı ile denedim ama olmadı yada ben beceremedim
 

Breeze

0
İyinet Üyesi
Onaylı Üye
Katılım
17 Nisan 2007
Mesajlar
1,445
Reaction score
1
Konum
CTRL + W
işte bunu aspde denedim yapamadım aspde hata sayafsı ile denedim ama olmadı yada ben beceremedim

O verdiğim kod yalnız linux serverlar da çalışır, ek olarak eğer sitemap'ını hatasız oluşturduysan asp veya php uzantılı dosyalarıda google kabul ediyor
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst