• 25-02-2014, 22:50:07
    #1
    id
    kategori
    baslik
    seo (bu kısım bos )
    giris
    icerik
    kaynak
    resim
    video
    tarih
    saat
    manset
    gizle
    izlenme
    yorum

    sitemin veri tabanında bulunan kısımlar bu kısımlara göre haberlerim için nasıl bir sitemap yapmalıyım


    url yapısı yukardaki gibi.

    <?php
    ## Veritabanı bağlantısı yapalım.
    @mysql_select_db("local", mysql_connect("k.adi","sifre"));
    ## Xml olarak göstermek için girilen komut
    header("Content-Type: text/xml");
    ## Sitemap Bilgileri
    echo '<?xml version="1.0" encoding="UTF-8"?>';
    echo '
    <urlset
      xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
      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">
    ';
    
    ## Site Menüleri
    echo '
    	<url>
           <loc>http://ibrahimcevruk.com/</loc>
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>
           <changefreq>daily</changefreq>
           <priority>0.5000</priority>
    	</url>
    	  <url>
           <loc>http://ibrahimcevruk.com/hakkimda</loc>
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>
           <changefreq>daily</changefreq>
           <priority>0.8000</priority>
      </url>
      <url>
           <loc>http://ibrahimcevruk.com/iletisim</loc>
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>
           <changefreq>daily</changefreq>
           <priority>0.8000</priority>
      </url>
    ';
    
    ## Makaleleri Listele
    $haberler		= mysql_query("select * from haberler where durum='0' order by id DESC");
    	while($seoxml	= mysql_fetch_array($haberler)){
    	
    echo'
    	<url>
    	   <loc>http://konya.us/'haberler-".$seoxml["baslik"].'.html</loc>
    	   <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>
    	   <changefreq>daily</changefreq>
    	   <priority>0.5000</priority>
    	</url>
    ';
    }
    
    echo '</urlset>';
    ?>
  • 26-02-2014, 00:09:20
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @Asimavi; Hazırladığım uygulamayı kullanabilmen için PHP sürümün 5.3.3 ve üzeri olması gerekmektedir.

    * Composer kurulumu ve kullanımı hakkında bilgin yoksa şu konuyu okuyabilirsin.

    * Uygulamanın çalışan halini bu bağlantıdan indirebilirsin.

    composer.json;
    {
    	"minimum-stability": "dev",
    	"require": {
    		"imsaintx/utils": "dev-master",
    		"thepixeldeveloper/sitemap": "dev-master"
    	}
    }
    sitemap.php;
    <?php
    	# Kütüphanelerimizi yükleyelim.
    	require("vendor/autoload.php");
    	
    	# Tarih/Zaman'ı yerelleştirelim.
    	date_default_timezone_set("Europe/Istanbul");
    	
    	# Kütüphaneleri dahil edelim.
    	use \Tools\Utils;
    	use \Sitemap\Collection;
    	use \Sitemap\Sitemap\SitemapEntry;
    	
    	# Doküman tipini "text/xml" yapalım.
    	Utils::utf8_header("text/xml");
    	
    	# Veritabanı ayarları
    	
    	# MySQL host adresi
    	define("DB_HOST", "127.0.0.1");
    	
    	# MySQL portu (Varsayılan: 3306)
    	define("DB_PORT", 3306);
    	
    	# MySQL kullanıcı adı
    	define("DB_USER", "root");
    	
    	# MySQL şifresi
    	define("DB_PASS", "root");
    	
    	# MySQL veritabanı ismi
    	define("DB_NAME", "test");
    	
    	try
    	{
    		# PDO aracılığıyla MySQL veritabanımıza bağlanalım.
    		$PDO = new PDO(
    			sprintf("mysql:host=%s;port=%s;dbname=%s", DB_HOST, DB_PORT, DB_NAME),
    			DB_USER,
    			DB_PASS
    		);
    		
    		# Hata oluşturma modunu `Exception` olarak değiştirelim.
    		$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    		
    		# `test` veritabanımızdaki `news` tablomuzdaki içerikleri alalım.
    		$statement = $PDO->prepare("SELECT * FROM `news` ORDER BY `ID` DESC");
    		$statement->execute();
    		
    		# Öğeleri $items değişkenimize alalım.
    		$items = $statement->fetchAll(PDO::FETCH_ASSOC);
    		
    		# Sitemap'ı oluşturmaya başlayalım.
    		$collection = new Collection();
    		$collection->setFormatter(new \Sitemap\Formatter\XML\URLSet);
    		
    		$pages = array(
    			array(
    				"loc" => "http://saintx.net/",
    				"changefreq" => "daily",
    				"priority" => "0.500",
    				# Son modifikasyon zamanını son yayımlanan yazıya konumlandıralım.
    				"lastmod" => $items[0]["published_at"]
    			),
    			array(
    				"loc" => "http://saintx.net/hakkimda",
    				"changefreq" => "daily",
    				"priority" => "0.800",
    				# Son modifikasyon zamanını son yayımlanan yazıya konumlandıralım.
    				"lastmod" => $items[0]["published_at"]
    			),
    			array(
    				"loc" => "http://saintx.net/iletisim",
    				"changefreq" => "daily",
    				"priority" => "0.800",
    				# Son modifikasyon zamanını son yayımlanan yazıya konumlandıralım.
    				"lastmod" => $items[0]["published_at"]
    			)
    		);
    		
    		# Statik sayfalarımızı Sitemap'a dahil edelim.
    		foreach($pages as $page)
    		{
    			$item = new SitemapEntry();
    			$item->setLocation($page["loc"]);
    			$item->setChangeFreq($page["changefreq"]);
    			$item->setPriority($page["priority"]);
    			$item->setLastMod(date("c", $page["lastmod"]));
    			
    			$collection->addSitemap($item);
    		}
    		
    		# Yazılarımızı Sitemap'a dahil edelim.
    		foreach($items as $post)
    		{
    			$item = new SitemapEntry();
    			$item->setLocation("http://saintx.net/post/" . Utils::slugify($post["title"]) . ".html");
    			$item->setChangeFreq("daily");
    			$item->setPriority("0.500");
    			$item->setLastMod(date("c", $post["published_at"]));
    			
    			$collection->addSitemap($item);
    		}
    		
    		# Sitemap'ı ekrana yazdıralım.
    		exit($collection->output());
    	}
    	catch(PDOException $e)
    	{
    		# Bağlantı vb. hata varsa ekrana yazdıralım.
    		exit(iconv("ISO-8859-9", "UTF-8", $e->getMessage()));
    	}
    Anlamadığın veya takıldığın yerler olursa mesajına beni etiketleyerek sorunu yöneltirsen sevinirim.
  • 26-02-2014, 08:42:45
    #3
    Teşekkür Ederim Gerçekten Çok Açıklayıcı Bilgiler Vermişsiniz. Bir Deneme Yapayım Takıldığım Yerde Yardımınızı İsterim İnş. Yine.
  • 26-02-2014, 20:58:17
    #4
    Composer olarak yapamadım sitemap.php yi şu kodlarla yapmayı denedim ama hata alıyorum bu kodlardada
    <?php 
    ## Veritabanı bağlantısı yapalım. 
    @mysql_select_db("db_diririm", mysql_connect("db_dirim","db_sifre")); 
    ## Xml olarak göstermek için girilen komut 
    header("Content-Type: text/xml"); 
    ## Sitemap Bilgileri 
    echo '<?xml version="1.0" encoding="UTF-8"?>'; 
    echo ' 
    <urlset 
      xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 
      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"> 
    '; 
    
    ## Site Menüleri 
    echo ' 
        <url> 
           <loc>http://....us/</loc> 
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod> 
           <changefreq>daily</changefreq> 
           <priority>0.5000</priority> 
        </url> 
          <url> 
           <loc>http://www....us/haberler.html</loc> 
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod> 
           <changefreq>daily</changefreq> 
           <priority>0.8000</priority> 
      </url> 
      <url> 
           <loc>http://www......us/formlar.html</loc> 
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod> 
           <changefreq>daily</changefreq> 
           <priority>0.8000</priority> 
      </url> 
    '; 
    
    ## Makaleleri Listele 
    $haberler        = mysql_query("select * from haberler where durum='0' order by id DESC"); 
        while($seoxml    = mysql_fetch_array($haberler)){ 
         
    echo' 
        <url> 
           <loc>http://.....us/'haberler-".$seoxml["baslik"].'.html</loc> 
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod> 
           <changefreq>daily</changefreq> 
           <priority>0.5000</priority> 
        </url> 
    '; 
    } 
    
    echo '</urlset>'; 
    ?>
    aldığım hata [26-Feb-2014 19:29:42 Europe/Istanbul] PHP Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/sttkonya/public_html/sitemap.php on line 45

    hatayı çözmemde yardımcı olabilecek bir arkadaş var mı acaba ?
  • 26-02-2014, 21:04:34
    #5
    @Asimavi; şu şekilde deneyin.

    <?php  
    ## Veritabanı bağlantısı yapalım.  
    @mysql_select_db("db_diririm", mysql_connect("db_dirim","db_sifre"));  
    ## Xml olarak göstermek için girilen komut  
    header("Content-Type: text/xml");  
    ## Sitemap Bilgileri  
    echo '<?xml version="1.0" encoding="UTF-8"?>';  
    echo '  
    <urlset  
      xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"  
      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">  
    ';  
    
    ## Site Menüleri  
    echo '  
        <url>  
           <loc>http://konya.us/</loc>  
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>  
           <changefreq>daily</changefreq>  
           <priority>0.5000</priority>  
        </url>  
          <url>  
           <loc>http://www.konya.us/haberler.html</loc>  
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>  
           <changefreq>daily</changefreq>  
           <priority>0.8000</priority>  
      </url>  
      <url>  
           <loc>http://www.konya.us/formlar.html</loc>  
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>  
           <changefreq>daily</changefreq>  
           <priority>0.8000</priority>  
      </url>  
    ';  
    
    ## Makaleleri Listele  
    $haberler        = mysql_query("select * from haberler where durum='0' order by id DESC");  
        while($seoxml    = mysql_fetch_array($haberler)){  
          
    echo'  
        <url>  
           <loc>http://konya.us/haberler-'.$seoxml["baslik"].'.html</loc>  
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>  
           <changefreq>daily</changefreq>  
           <priority>0.5000</priority>  
        </url>  
    ';  
    }  
    
    echo '</urlset>';
  • 26-02-2014, 21:16:51
    #6
    saintx adlı üyeden alıntı: mesajı görüntüle
    @Asimavi; şu şekilde deneyin.

    <?php  
    ## Veritabanı bağlantısı yapalım.  
    @mysql_select_db("db_diririm", mysql_connect("db_dirim","db_sifre"));  
    ## Xml olarak göstermek için girilen komut  
    header("Content-Type: text/xml");  
    ## Sitemap Bilgileri  
    echo '<?xml version="1.0" encoding="UTF-8"?>';  
    echo '  
    <urlset  
      xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"  
      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">  
    ';  
    
    ## Site Menüleri  
    echo '  
        <url>  
           <loc>http://konya.us/</loc>  
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>  
           <changefreq>daily</changefreq>  
           <priority>0.5000</priority>  
        </url>  
          <url>  
           <loc>http://www.konya.us/haberler.html</loc>  
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>  
           <changefreq>daily</changefreq>  
           <priority>0.8000</priority>  
      </url>  
      <url>  
           <loc>http://www.konya.us/formlar.html</loc>  
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>  
           <changefreq>daily</changefreq>  
           <priority>0.8000</priority>  
      </url>  
    ';  
    
    ## Makaleleri Listele  
    $haberler        = mysql_query("select * from haberler where durum='0' order by id DESC");  
        while($seoxml    = mysql_fetch_array($haberler)){  
          
    echo'  
        <url>  
           <loc>http://konya.us/haberler-'.$seoxml["baslik"].'.html</loc>  
           <lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>  
           <changefreq>daily</changefreq>  
           <priority>0.5000</priority>  
        </url>  
    ';  
    }  
    
    echo '</urlset>';

    @@saintx şimdide şu şekilde bir hata alıyorum hocam

    [26-Feb-2014 21:14:19 Europe/Istanbul] PHP Warning: mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: Access denied for user 'sttkonya'@'localhost' (using password: NO) in /home/sttkonya/public_html/sitemap.php on line 40
    [26-Feb-2014 21:14:19 Europe/Istanbul] PHP Warning: mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: A link to the server could not be established in /home/sttkonya/public_html/sitemap.php on line 40
    [26-Feb-2014 21:14:19 Europe/Istanbul] PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/sttkonya/public_html/sitemap.php on line 41
  • 26-02-2014, 23:47:31
    #7
    @Asimavi; veritabanı bilgilerini doğru girdiğinize emin misiniz?
  • 27-02-2014, 08:43:16
    #8
    tşkler sorunu çözdüm hocam veri tabanı bilgilerinden kaynaklı bir sorunla birlikte sorgunun boş dönmesiyle alakalı bir hata yapmışım düzelttim şimdi tşkler yine ilginiz için.
  • 27-02-2014, 22:51:01
    #9
    @@saintx Çözdüm Demiştim Ama Hocam Bir Yerde Bir Hata Var Onu Nasıl Çözeceğim Hakkında Bir Fikir Verirseniz Sevinirim.

    Sitem ; <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />

    Veri Tabanım ; utf8_general_ci olarak kodlanmış

    Veri Tabanımdaki Değişken Bot Aracılığı İle Çekilmektedir. Seo Link Değişkeni ve Bu Değişkende Türkçe Karakter Hatası Alıyorum.

    Örnek Vermek Gerekirse ;
    $baslik değişkeni: Bakanlıktan Zayıflama Ürünleri Tebliği
    $seo değişkeni : bakanlktan-zayflama-urunleri-teblii

    Buda Sitemap.php ye şu şekilde yansımakta ;
    Sitemap

    Sitemin Kodlamasını UTF-8 Nasıl Geçiririm Veya Geçirmelimiyim Veya Bot Üzerindemi Değişikliğe Gitmeliyim Bir Kaç Konuda Fikir Verirseniz Birde Nasıl Yapmam Gerektiği Hususunda Yardımcı Olursanız Sevinirim. Bu İllet İş Beni Baya Bir Uğraştıracam Ama Bişeyler Öğrenmek Adınada Hoşuma Gitmeye Başladı Uğraşmak.
    Şimdiden Yardımlarınız İçin Teşekkürler.