• 16-03-2010, 00:58:20
    #19
    Temcit pilavı gibi hatırlatayım arkadaşlar, benim sorunum hâlâ devam ediyor.
    Lütfen bir avuç kod
  • 16-03-2010, 01:26:53
    #20
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşım sorunun nedeni linklerde kullandığın & kartakteri ,xml çıktı da bunun yerine & kullanmalısın.
    Yani ekrana dökmeden önce Şu kısmı:

    <?php 
    $xml_ciktisi .= "\n<url>\n<loc>http://www.siteadi.com/devami.php?id=$id</loc>\n
        <lastmod>$zaman</lastmod>\n
        <changefreq>hourly</changefreq>\n
        <priority>0.50</priority>\n</url>"; 
     ?>
    <?php 
    $link = 'http://www.siteadi.com/devami.php?id='.$id;
    $link = str_replace('&','&amp;',$link);
    
    $xml_ciktisi .= "\n<url>\n<loc>$link</loc>\n
        <lastmod>$zaman</lastmod>\n
        <changefreq>hourly</changefreq>\n
        <priority>0.50</priority>\n</url>"; 
     ?>
    yaparsan sorun hallolur. Tabii bunun dışında
     >,<,",'
    karakterlerini de escape halleriyle değişmelisin.
  • 16-03-2010, 02:30:52
    #21
    <loc>Resource id #3</loc> şeklinde bir şey yazdırıyor üst üste.

    Ama zaten konu uzadığı için biraz karışmış. Ben derdimi anlatabilmek için o kodları göstermiştim, asıl sorunlu olduğum kodlar onlar değil, şunlardır:

    Mantıksal olarak söyledikleriniz doğru olabilir. Buraya uygulamam lazım, ama konuyu tam olarak anlayamadım. & karakteri dışında bir sorun var mı?

    $xml_ciktisi .= "\n<url>\n<loc>http://www.siteadi.com</loc>\n<changefreq>daily</changefreq>\n<priority>1.00</priority>\n</url>";
        $result = @mysql_query("SELECT id, link, published FROM jos_menu WHERE published='1' ORDER BY id DESC");
        while (list($id, $link) = @mysql_fetch_row($result))
        {
        $xml_ciktisi .= "\n<url>\n<loc>http://www.siteadi.com/$link</loc>\n
    	<changefreq>weekly</changefreq>\n
    	<priority>0.50</priority>\n</url>";
        };
        echo $xml_ciktisi ."\n</urlset>";
  • 16-03-2010, 02:43:47
    #22
    <?php
    function zaman_yaz($zaman) {
    	$parca	= explode(" " ,$zaman);
    	$zaman	= $parca[0]."T".$parca[1]."+00:00";
    	return $zaman;
    }
    # header('Content-type: text/xml');
    include_once("veri_tabani.php");
    echo '<?xml version="1.0" encoding="ISO-8859-9" ?>';
    echo '<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">';
    echo '<url>';
    echo '<loc>http://www.siteadi.com/</loc>';
    echo '<changefreq>daily</changefreq>';
    echo '<priority>1.00</priority>';
    echo '</url>';
    ########################
    $sorgu	= mysql_query("SELECT id,title,created,sectionid FROM jos_content WHERE sectionid!='4' AND state='1' ORDER BY created DESC");
    while($veri = mysql_fetch_assoc($sorgu)) {
    	echo '<url>';
    	echo '<loc>'.urlencode('http://www.siteadi.com/devami.php?id='.$veri['id'].'').'</loc>';
    	echo '<lastmod>'.zaman_yaz($veri['created']).'</lastmod>';
    	echo '<changefreq>hourly</changefreq>';
    	echo '<priority>0.50</priority>';
    	echo '</url>';
    }
    ########################
    echo '</urlset>';
    ?>
    bu şekilde bi dene sayfanın kaynağını bizimle paylaş bakalım :\
  • 16-03-2010, 02:55:49
    #23
    Hocam dediğim gibi bu zaten çalışan sitemap.
    Peki madem elimde çalışan sitemap var, neden sizi uğraştırıyorum?
    Konu uzadığı için derdimi anlatmak için verdiğim kodlar ile sorunlu kodlar karıştı, o nedenle anlatamama sorunum var.

    Hocam, ben çalışan sitemap'ı editleyerek başka bir veri tabanına uyarladım.
    Ne var ki o veri tabanı ile çalışmadı. O veri tabanında zaten "link" diye bir etiket var, SELECT link FROM jos_menu demek yeterli yani. Yazdırırken de <loc>$link</loc> demek yeterli.

    Ne var ki yeterli olmuyor, bir tane linki yazdırıp duruyor.

    Bu anlatımdan sonra sorunlu sitemap kodlarını şuraya yapıştırıyorum:

    $xml_ciktisi .= "\n<url>\n<loc>http://www.siteadi.com</loc>\n<changefreq>daily</changefreq>\n<priority>1.00</priority>\n</url>";
        $result = @mysql_query("SELECT id, link, published FROM jos_menu WHERE published='1' ORDER BY id DESC");
        while (list($id, $link) = @mysql_fetch_row($result))
        {
        $xml_ciktisi .= "\n<url>\n<loc>http://www.siteadi.com/$link</loc>\n
        <changefreq>weekly</changefreq>\n
        <priority>0.50</priority>\n</url>";
        };
        echo $xml_ciktisi ."\n</urlset>";
  • 16-03-2010, 03:20:26
    #24
    kodları bununla değiştirip dener misin
    edit : metadige'nin dediği gibi replace de ekledim
    <?php
    include_once("veri_tabani.php");
    header('Content-type: text/xml'); 
    echo '<?xml version="1.0" encoding="ISO-8859-9"?>
    <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
    echo "\t<url>\n";
    echo "\t\t<loc>http://www.siteadi.com</loc>\n";
    echo "\t\t<changefreq>daily</changefreq>\n";
    echo "\t\t<priority>1.00</priority>\n";
    echo "\t</url>\n";
    $result = @mysql_query("SELECT id, link FROM jos_menu WHERE published='1' ORDER BY id DESC");
    while(list($id, $link) = mysql_fetch_row($result)) {
    	$link = str_replace('&','&amp;',$link);  
    	echo "\t<url>\n";
    	echo "\t\t<loc>http://www.siteadi.com/".$link."</loc>\n";
    	echo "\t\t<changefreq>weekly</changefreq>\n";
    	echo "\t\t<priority>0.50</priority>\n";
    	echo "\t</url>\n";
    }
    echo "</urlset>";  
    ?>
  • 16-03-2010, 03:25:41
    #25
    Arkadaşım bir önceki mesajımda nedenini söylemiştim, denemedin mi? Senin eklediğin linkin içinde ampersand olduğu için orada xml ayrıştırma hatası verir ve durur. Bunu döngüye sokmadan manuel olarak tek satır yazıp kontrol ederek de görebilirsin.

    $xml_ciktisi .= "\n<url>\n<loc>http://www.siteadi.com</loc>\n<changefreq>daily</changefreq>\n<priority>1.00</priority>\n</url>";
        $result = @mysql_query("SELECT id, link FROM jos_menu WHERE published='1' ORDER BY id DESC");
        while (list($id, $link) = @mysql_fetch_row($result))
        {
    
    /*
    //eğer ilk sayfada ki gibi kullanıyorsan:
    //bu şekilde de yapabilirsin
    $site_link = 'http://www.siteadi.com/'.$link.'&amp;Itemid='.$id;
    <loc>$site_link</loc>
    */    
    
        $link = str_replace('&','&amp;',$link); 
        $xml_ciktisi .= "\n<url>\n<loc>http://www.siteadi.com/$link</loc>\n
        <changefreq>weekly</changefreq>\n
        <priority>0.50</priority>\n</url>";
        };
        echo $xml_ciktisi ."\n</urlset>";
  • 16-03-2010, 03:38:38
    #26
    Sorunu tam bileğinden yakalamışsınız metadige hocam.
    Sorun böyle çözüldü.
    Çok teşekkür ediyorum.
    Saygılarımı sunuyorum.
    Rep durumum + durumuna geldiğinde +rep'inizi unutmayacağım.

    Not: Adsense hilesi yapan bir siteyi deşifre ettim diye bütün hileciler -rep vererek beni sıfıra indirmiş durumda
  • 16-03-2010, 04:04:04
    #27
    Rica ederim arkadaşım, çözüldüğüne sevindim.

    Rep vermene falan gerek yok, nihayetinde maksat, bir nebze de olsa bilgimiz dahilinde yardımcı olabilmek.