<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tankado.com &#187; PHP</title>
	<atom:link href="http://www.tankado.com/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tankado.com</link>
	<description>&#34;Bilgi özgür kalsın&#34;</description>
	<lastBuildDate>Tue, 07 Sep 2010 12:26:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Metinden Anahtar Kelime (keyword) Üretme</title>
		<link>http://www.tankado.com/metinden-anahtar-kelime-keyword-elde-etme-uretme-keyword-generator/</link>
		<comments>http://www.tankado.com/metinden-anahtar-kelime-keyword-elde-etme-uretme-keyword-generator/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 23:30:49 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[abahtar kelime]]></category>
		<category><![CDATA[anahtar kelime üretme]]></category>
		<category><![CDATA[keyword]]></category>
		<category><![CDATA[keyword meta]]></category>
		<category><![CDATA[keyword üretme]]></category>
		<category><![CDATA[meta tag]]></category>

		<guid isPermaLink="false">http://www.tankado.com/?p=1937</guid>
		<description><![CDATA[Aşağıdaki get_keywords fonksiyonu verilen metinde ençok geçen kelimeleri bulup sonucu meta keyword olarak geri döndürüyor. İkinci parametreye verilen değer kaç keyword&#8217;ün geriye döndürüleceğini belirliyor. &#60;?php function filter( $item ) { if (strlen($item) &#60;= 3) return false; return true; } function strcount( $item ) { GLOBAL $content; return Array(substr_count($content, $item), $item); } function html2txt($document){ $search = [...]


Benzer yazılar: <ol><li><a href='http://www.tankado.com/read-clipboard-set-clipboard/' rel='bookmark' title='Permanent Link: Read Clipboard &amp; Set Clipboard'>Read Clipboard &amp; Set Clipboard</a><li>Javascript ile&nbsp;panoya metin kopyalamak ve panodaki metni almak i&ccedil;in kullanılabilecek...</li></li>
<li><a href='http://www.tankado.com/cazibeli-php-swf-web-grafikleri/' rel='bookmark' title='Permanent Link: Cazibeli PHP/SWF web grafikleri'>Cazibeli PHP/SWF web grafikleri</a><li>PHP/SWF Charts, PHP kullanarak dinamik veri kaynağından basitçe, güçlü ve etkileyici grafikler...</li></li>
<li><a href='http://www.tankado.com/get_string_between-yki-ifadenin-arasyndaki-ifadeyi-getirmek/' rel='bookmark' title='Permanent Link: get_string_between: İki ifadenin arasındaki ifadeyi getirmek'>get_string_between: İki ifadenin arasındaki ifadeyi getirmek</a><li>Aşağıdaki basit PHP fonksiyonu iki ifade arasında yer alan başka...</li></li>
<li><a href='http://www.tankado.com/yndir-tubytak-ii-bilgi-teknolojileri-guvenlik-konferansy-sunulary/' rel='bookmark' title='Permanent Link: İndir: TÜBİTAK II. Bilgi Teknolojileri Güvenlik Konferansı Sunuları'>İndir: TÜBİTAK II. Bilgi Teknolojileri Güvenlik Konferansı Sunuları</a><li>I. Gün BT Güvenlik Trendleri Bilgi Savaşları Katmanlı Güvenliğe Uygulamalı...</li></li>
<li><a href='http://www.tankado.com/wordpress-erisim-izni-hatasini-gidermek/' rel='bookmark' title='Permanent Link: WordPress erişim izni hatasını gidermek'>WordPress erişim izni hatasını gidermek</a><li>&#8220;Bu sayfaya erişmek için yeterli izniniz yok&#8221; veya ingilizce &#8220;You...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Aşağıdaki <strong>get_keywords</strong> fonksiyonu verilen metinde ençok geçen kelimeleri bulup sonucu meta keyword olarak geri döndürüyor. İkinci parametreye verilen değer kaç keyword&#8217;ün geriye döndürüleceğini belirliyor.</p>
<pre class="brush: php;">
&lt;?php
	function filter( $item )
	{
		if (strlen($item) &lt;= 3)
			return false;
		return true;
	}

	function strcount( $item )
	{
		GLOBAL $content;
		return Array(substr_count($content, $item), $item);
	}

	function html2txt($document){
		$search = array('@&lt;script[^&gt;]*?&gt;.*?&lt;/script&gt;@si',  // Strip out javascript
					   '@&lt;[\/\!]*?[^&lt;&gt;]*?&gt;@si',            // Strip out HTML tags
					   '@&lt;style[^&gt;]*?&gt;.*?&lt;/style&gt;@siU',    // Strip style tags properly
					   '@&lt;![\s\S]*?--[ \t\n\r]*&gt;@'         // Strip multi-line comments including CDATA
		);
		$text = preg_replace($search, '', $document);
		return $text;
	} 

	/**
	 * Remove HTML tags, including invisible text such as style and
	 * script code, and embedded objects.  Add line breaks around
	 * block-level tags to prevent word joining after tag removal.
	 */
	function strip_html_tags( $text )
	{
		$text = preg_replace(
			array(
			  // Remove invisible content
				'@&lt;head[^&gt;]*?&gt;.*?&lt;/head&gt;@siu',
				'@&lt;style[^&gt;]*?&gt;.*?&lt;/style&gt;@siu',
				'@&lt;script[^&gt;]*?.*?&lt;/script&gt;@siu',
				'@&lt;object[^&gt;]*?.*?&lt;/object&gt;@siu',
				'@&lt;embed[^&gt;]*?.*?&lt;/embed&gt;@siu',
				'@&lt;applet[^&gt;]*?.*?&lt;/applet&gt;@siu',
				'@&lt;noframes[^&gt;]*?.*?&lt;/noframes&gt;@siu',
				'@&lt;noscript[^&gt;]*?.*?&lt;/noscript&gt;@siu',
				'@&lt;noembed[^&gt;]*?.*?&lt;/noembed&gt;@siu',
			  // Add line breaks before and after blocks
				'@&lt;/?((address)|(blockquote)|(center)|(del))@iu',
				'@&lt;/?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))@iu',
				'@&lt;/?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))@iu',
				'@&lt;/?((table)|(th)|(td)|(caption))@iu',
				'@&lt;/?((form)|(button)|(fieldset)|(legend)|(input))@iu',
				'@&lt;/?((label)|(select)|(optgroup)|(option)|(textarea))@iu',
				'@&lt;/?((frameset)|(frame)|(iframe))@iu',
			),
			array(
				' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
				&quot;\n\$0&quot;, &quot;\n\$0&quot;, &quot;\n\$0&quot;, &quot;\n\$0&quot;, &quot;\n\$0&quot;, &quot;\n\$0&quot;,
				&quot;\n\$0&quot;, &quot;\n\$0&quot;,
			),
			$text );
		return strip_tags( $text );
	}	

	function get_keywords($content, $count)
	{
		$content = strip_html_tags($content);
		$content = html_entity_decode($content);
		$arr = str_word_count( $content, 1);
		$arr = array_filter($arr, 'filter');
		$arr = array_unique($arr);
		$arr = array_map('strcount', $arr);
		arsort($arr);
		foreach($arr as $item)
		{
			if ($i &lt; $count)
			$ret_arr[] = $item[1];
			$i++;
		}
		return implode(',', $ret_arr);
	}

	$content = file_get_contents('http://www.tankado.com/');
	echo get_keywords($content, 5);
?&gt;
</pre>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/read-clipboard-set-clipboard/' rel='bookmark' title='Permanent Link: Read Clipboard &amp; Set Clipboard'>Read Clipboard &amp; Set Clipboard</a><li>Javascript ile&nbsp;panoya metin kopyalamak ve panodaki metni almak i&ccedil;in kullanılabilecek...</li></li>
<li><a href='http://www.tankado.com/cazibeli-php-swf-web-grafikleri/' rel='bookmark' title='Permanent Link: Cazibeli PHP/SWF web grafikleri'>Cazibeli PHP/SWF web grafikleri</a><li>PHP/SWF Charts, PHP kullanarak dinamik veri kaynağından basitçe, güçlü ve etkileyici grafikler...</li></li>
<li><a href='http://www.tankado.com/get_string_between-yki-ifadenin-arasyndaki-ifadeyi-getirmek/' rel='bookmark' title='Permanent Link: get_string_between: İki ifadenin arasındaki ifadeyi getirmek'>get_string_between: İki ifadenin arasındaki ifadeyi getirmek</a><li>Aşağıdaki basit PHP fonksiyonu iki ifade arasında yer alan başka...</li></li>
<li><a href='http://www.tankado.com/yndir-tubytak-ii-bilgi-teknolojileri-guvenlik-konferansy-sunulary/' rel='bookmark' title='Permanent Link: İndir: TÜBİTAK II. Bilgi Teknolojileri Güvenlik Konferansı Sunuları'>İndir: TÜBİTAK II. Bilgi Teknolojileri Güvenlik Konferansı Sunuları</a><li>I. Gün BT Güvenlik Trendleri Bilgi Savaşları Katmanlı Güvenliğe Uygulamalı...</li></li>
<li><a href='http://www.tankado.com/wordpress-erisim-izni-hatasini-gidermek/' rel='bookmark' title='Permanent Link: WordPress erişim izni hatasını gidermek'>WordPress erişim izni hatasını gidermek</a><li>&#8220;Bu sayfaya erişmek için yeterli izniniz yok&#8221; veya ingilizce &#8220;You...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/metinden-anahtar-kelime-keyword-elde-etme-uretme-keyword-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP için Güvenlik Kontrol Listesi</title>
		<link>http://www.tankado.com/cheatsheet-php-guvenlik-kontrol-listesi/</link>
		<comments>http://www.tankado.com/cheatsheet-php-guvenlik-kontrol-listesi/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 07:16:29 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[cheatsheet]]></category>
		<category><![CDATA[php cheatsheet]]></category>
		<category><![CDATA[php de güvenlik için yapılması gereken ayarlar nelerdir?]]></category>
		<category><![CDATA[php de güvenlik kontrol listesi nedir?]]></category>
		<category><![CDATA[php de uygulama hazırlarken nelere dikkat edilmeli?]]></category>
		<category><![CDATA[php güvenliği nasıl sağlanır?]]></category>
		<category><![CDATA[php güvenlik kontrol listesi]]></category>

		<guid isPermaLink="false">http://www.tankado.com/?p=1894</guid>
		<description><![CDATA[sk89q.com daha önce burada yayınladığı php güvenlik kontrol listesinin yazdırılabilir bir sürümünü PDF cheatsheet olarak yayınlamış. Sitede daha önce de bazı cheaatsheet&#8216;ler yayınlamıştım. Benzer yazılar: NetSec güvenlik bülteni ve e-posta listesiLifeoverip sitesi ismi gibi hayatını ip tabanlı teknolojilerden kazanan insanların... iDefense&#8217;den güvenlik araçlarıiDefense güvenlik ve güvenlik zayıflıklarını tespit konularında çalışmalar yapan bir... Eset&#8217;den Yeni Güvenlik [...]


Benzer yazılar: <ol><li><a href='http://www.tankado.com/netsec-guvenlik-bulteni-ve-e-posta-listesi/' rel='bookmark' title='Permanent Link: NetSec güvenlik bülteni ve e-posta listesi'>NetSec güvenlik bülteni ve e-posta listesi</a><li>Lifeoverip sitesi ismi gibi hayatını ip tabanlı teknolojilerden kazanan insanların...</li></li>
<li><a href='http://www.tankado.com/idefenseden-guvenlik-araclari/' rel='bookmark' title='Permanent Link: iDefense&#8217;den güvenlik araçları'>iDefense&#8217;den güvenlik araçları</a><li>iDefense güvenlik ve güvenlik zayıflıklarını tespit konularında çalışmalar yapan bir...</li></li>
<li><a href='http://www.tankado.com/eset-den-yeni-guvenlik-tarayycysy-sysinspector/' rel='bookmark' title='Permanent Link: Eset&#8217;den Yeni Güvenlik Tarayıcısı: SysInspector'>Eset&#8217;den Yeni Güvenlik Tarayıcısı: SysInspector</a><li>Nod32 Antivürüsünün üreticisi ESET&#8217;in yni güvenlik tarayıcısı SysInspector ücretsiz olarak...</li></li>
<li><a href='http://www.tankado.com/en-iyi-guvenlik-duvary-comodo-firewall-pro/' rel='bookmark' title='Permanent Link: En iyi güvenlik duvarı: Comodo Firewall Pro'>En iyi güvenlik duvarı: Comodo Firewall Pro</a><li>Buradaki incelemeye göre en iyi kişisel güvenlik duvarı yazılımı olarak...</li></li>
<li><a href='http://www.tankado.com/uncaught-exception-xmlhttprequestopen-methodunun-cagrylmasy-icin-gerekli-izniniz-yok/' rel='bookmark' title='Permanent Link: uncaught exception: XMLHttpRequest.open methodunun çağrılması için gerekli izniniz yok.'>uncaught exception: XMLHttpRequest.open methodunun çağrılması için gerekli izniniz yok.</a><li> Gece vakti aşırı korumacı bir tarayıcıyla başım dertte. Firefox...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sk89q.com/" target="_blank">sk89q.com</a> daha önce <a href="http://www.sk89q.com/2009/08/definitive-php-security-checklist/" target="_blank">burada</a> yayınladığı php güvenlik kontrol listesinin yazdırılabilir bir sürümünü PDF cheatsheet olarak yayınlamış. Sitede daha önce de <a href="http://www.tankado.com/php-mysql-javascript-css-cheat-sheets/" target="_blank">bazı cheaatsheet</a>&#8216;ler yayınlamıştım.</p>
<div class='download2'><a href="http://www.tankado.com/dosyalar/phpsec_cheatsheet.pdf" id='anchor'><u>PHP Güvenlik Kontrol Listesi (ingilizce)</u></a><p id='hit'> <b>174.29 kB</b>&nbsp;<b>39</b> kez indirildi.&nbsp;&nbsp;</p><p id='desc'></p></div>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/netsec-guvenlik-bulteni-ve-e-posta-listesi/' rel='bookmark' title='Permanent Link: NetSec güvenlik bülteni ve e-posta listesi'>NetSec güvenlik bülteni ve e-posta listesi</a><li>Lifeoverip sitesi ismi gibi hayatını ip tabanlı teknolojilerden kazanan insanların...</li></li>
<li><a href='http://www.tankado.com/idefenseden-guvenlik-araclari/' rel='bookmark' title='Permanent Link: iDefense&#8217;den güvenlik araçları'>iDefense&#8217;den güvenlik araçları</a><li>iDefense güvenlik ve güvenlik zayıflıklarını tespit konularında çalışmalar yapan bir...</li></li>
<li><a href='http://www.tankado.com/eset-den-yeni-guvenlik-tarayycysy-sysinspector/' rel='bookmark' title='Permanent Link: Eset&#8217;den Yeni Güvenlik Tarayıcısı: SysInspector'>Eset&#8217;den Yeni Güvenlik Tarayıcısı: SysInspector</a><li>Nod32 Antivürüsünün üreticisi ESET&#8217;in yni güvenlik tarayıcısı SysInspector ücretsiz olarak...</li></li>
<li><a href='http://www.tankado.com/en-iyi-guvenlik-duvary-comodo-firewall-pro/' rel='bookmark' title='Permanent Link: En iyi güvenlik duvarı: Comodo Firewall Pro'>En iyi güvenlik duvarı: Comodo Firewall Pro</a><li>Buradaki incelemeye göre en iyi kişisel güvenlik duvarı yazılımı olarak...</li></li>
<li><a href='http://www.tankado.com/uncaught-exception-xmlhttprequestopen-methodunun-cagrylmasy-icin-gerekli-izniniz-yok/' rel='bookmark' title='Permanent Link: uncaught exception: XMLHttpRequest.open methodunun çağrılması için gerekli izniniz yok.'>uncaught exception: XMLHttpRequest.open methodunun çağrılması için gerekli izniniz yok.</a><li> Gece vakti aşırı korumacı bir tarayıcıyla başım dertte. Firefox...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/cheatsheet-php-guvenlik-kontrol-listesi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E-Dergi: phpdergi</title>
		<link>http://www.tankado.com/e-dergi-phpdergi/</link>
		<comments>http://www.tankado.com/e-dergi-phpdergi/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 06:05:51 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[E-Dergiler]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[e-dergi]]></category>
		<category><![CDATA[e-dergi phpedergi]]></category>
		<category><![CDATA[php dergi]]></category>
		<category><![CDATA[phpdergi]]></category>

		<guid isPermaLink="false">http://www.tankado.com/?p=1857</guid>
		<description><![CDATA[phpdergi okuyucularına web uygulamaları geliştirirken yardımcı olmayı hedefliyor. Sadece PHP değil, web uygulaması geliştirirken ihtiyaç duyduğunuz birçok alanda yazılar bulabileceksiniz dergide. JavaScript’ten sistem yönetimine, web sunucu kurulumundan CSS’e kadar hem basit hem ileri seviye birçok yazı okuyacaksınız dergide. Elinizin altında internet adı verilen hemen her şeyi bulabileceğiniz bir kaynak var. Derginin farkı ise hiçbir yerde [...]


Benzer yazılar: <ol><li><a href='http://www.tankado.com/ozgurluk-icin-e-dergi/' rel='bookmark' title='Permanent Link: E-Dergi: Özgürlük için e-dergi'>E-Dergi: Özgürlük için e-dergi</a><li>Özgürlükİçin topluluğu özgür yazılım ve ulusal işletim sistemimiz Pardus&#8217;un yaygınlaşması...</li></li>
<li><a href='http://www.tankado.com/e-dergi-pardus-edergi-org/' rel='bookmark' title='Permanent Link: E-dergi: Pardus-eDergi.org'>E-dergi: Pardus-eDergi.org</a><li>Pardus-eDergi.org adresinden yayın yapan Pardus-Linux.org eDergi, Pardus Kullanıcıları Derneğinin düzenli...</li></li>
<li><a href='http://www.tankado.com/e-dergi-enixma-36-sayi-cikti/' rel='bookmark' title='Permanent Link: E-Dergi: Enixma 36. sayı çıktı'>E-Dergi: Enixma 36. sayı çıktı</a><li>Enixma, e-derginin 36. sayısı hazır ve indirebilirsiniz. Bu sayıda yer...</li></li>
<li><a href='http://www.tankado.com/e-dergi-enixma-39-sayi-cikti/' rel='bookmark' title='Permanent Link: E-Dergi: Enixma 39. sayı çıktı'>E-Dergi: Enixma 39. sayı çıktı</a><li>Enixma, e-derginin 39. sayısı hazır ve indirebilirsiniz. Bu sayıda yer...</li></li>
<li><a href='http://www.tankado.com/e-dergi-sudo/' rel='bookmark' title='Permanent Link: E-dergi: SUDO'>E-dergi: SUDO</a><li>SUDO, Ubuntu Türkiye dergi tayfası tarafından hazırlanan ve her ay...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tankado.com/wp-content/uploads/2010/08/phpdergilogo-150x60.gif"><img class="alignleft size-full wp-image-1858" title="phpdergilogo-150x60" src="http://www.tankado.com/wp-content/uploads/2010/08/phpdergilogo-150x60.gif" alt="dergiler E Dergi: phpdergi" width="150" height="60" /></a><a href="http://www.phpdergi.com/" target="_blank">phpdergi</a> okuyucularına web uygulamaları geliştirirken yardımcı olmayı hedefliyor. Sadece PHP değil, web uygulaması geliştirirken ihtiyaç duyduğunuz birçok alanda yazılar bulabileceksiniz dergide. JavaScript’ten sistem yönetimine, web sunucu kurulumundan CSS’e kadar hem basit hem ileri seviye birçok yazı okuyacaksınız dergide.</p>
<p>Elinizin altında internet adı verilen hemen her şeyi bulabileceğiniz bir kaynak var. Derginin farkı ise hiçbir yerde olmayan konular ya da fikirler içermesi olacak. Özellikle yukarıda belirttiğimiz gibi deneyimlerle kazanılan bilgiler, ipuçları ve web uygulamalarının güvenliği üzerine yazılara sık sık rastlayacaksınız.</p>
<p><a href="http://www.phpdergi.com/" target="_blank">http://www.phpdergi.com/</a></p>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/ozgurluk-icin-e-dergi/' rel='bookmark' title='Permanent Link: E-Dergi: Özgürlük için e-dergi'>E-Dergi: Özgürlük için e-dergi</a><li>Özgürlükİçin topluluğu özgür yazılım ve ulusal işletim sistemimiz Pardus&#8217;un yaygınlaşması...</li></li>
<li><a href='http://www.tankado.com/e-dergi-pardus-edergi-org/' rel='bookmark' title='Permanent Link: E-dergi: Pardus-eDergi.org'>E-dergi: Pardus-eDergi.org</a><li>Pardus-eDergi.org adresinden yayın yapan Pardus-Linux.org eDergi, Pardus Kullanıcıları Derneğinin düzenli...</li></li>
<li><a href='http://www.tankado.com/e-dergi-enixma-36-sayi-cikti/' rel='bookmark' title='Permanent Link: E-Dergi: Enixma 36. sayı çıktı'>E-Dergi: Enixma 36. sayı çıktı</a><li>Enixma, e-derginin 36. sayısı hazır ve indirebilirsiniz. Bu sayıda yer...</li></li>
<li><a href='http://www.tankado.com/e-dergi-enixma-39-sayi-cikti/' rel='bookmark' title='Permanent Link: E-Dergi: Enixma 39. sayı çıktı'>E-Dergi: Enixma 39. sayı çıktı</a><li>Enixma, e-derginin 39. sayısı hazır ve indirebilirsiniz. Bu sayıda yer...</li></li>
<li><a href='http://www.tankado.com/e-dergi-sudo/' rel='bookmark' title='Permanent Link: E-dergi: SUDO'>E-dergi: SUDO</a><li>SUDO, Ubuntu Türkiye dergi tayfası tarafından hazırlanan ve her ay...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/e-dergi-phpdergi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP ile TC Kimlik Numarasını Doğrulamak</title>
		<link>http://www.tankado.com/php-ile-tc-kimlik-numarasini-dogrulamak/</link>
		<comments>http://www.tankado.com/php-ile-tc-kimlik-numarasini-dogrulamak/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 03:22:45 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[mernis]]></category>
		<category><![CDATA[PHP ile tc kimlik numarası nasıl doğrulanır?]]></category>
		<category><![CDATA[tc kimlik]]></category>
		<category><![CDATA[tckn]]></category>
		<category><![CDATA[tcvn]]></category>
		<category><![CDATA[validating tc kimlik]]></category>

		<guid isPermaLink="false">http://www.tankado.com/?p=1789</guid>
		<description><![CDATA[Kullanıcıdan web form aracılığıyla bazı bilgiler almak gerektiğinde bilgileri doğrulama yoluna gideriz. TC kimlik numarasının formulize edilidğini daha önce söylemiştim. TC Kimlik numarasının son 2 hanesi ilk 9 hanesini doğrulamakta kullanılan bir tür güvenlik kodudur. Aşağıda güvenlik kodunu üreterek TC kimlik numarasını yazım yanlışlıklarına karşı doğrulayan is_valid_tckn() adında bir PHP fonksiyonu yer alıyor. Ayrıca C# [...]


Benzer yazılar: <ol><li><a href='http://www.tankado.com/ulusal-kimlik-veritabani-mernis-calindi/' rel='bookmark' title='Permanent Link: Ulusal Kimlik Veritabanı (Mernis) Çalındı'>Ulusal Kimlik Veritabanı (Mernis) Çalındı</a><li>70 Milyon kişinin adres ve telefon bilgilerinin de yer aldığı...</li></li>
<li><a href='http://www.tankado.com/tc-kimlik-algoritma-formul/' rel='bookmark' title='Permanent Link: TC Kimlik Formülasyon Açığı'>TC Kimlik Formülasyon Açığı</a><li>Kimlik Bilgileriniz Güvende Mi Acaba ? Ara sıra kontrol ettiğim,...</li></li>
<li><a href='http://www.tankado.com/arac-sigorta-kasko-tramer-tckimlik-police/' rel='bookmark' title='Permanent Link: Araç Sahipleri TRAMER&#8217;i biliyor mu?'>Araç Sahipleri TRAMER&#8217;i biliyor mu?</a><li>TRAMER, Trafik Sigortaları Bilgi Merkezinin kısa adı. www.tramer.org.tr adresinden ulaşabileceğiniz...</li></li>
<li><a href='http://www.tankado.com/getthreadcount/' rel='bookmark' title='Permanent Link: How to Gets Thread Count in a Process'>How to Gets Thread Count in a Process</a><li>Herhangi bir prosesin (işlem) bünyesinde bulunan thread (kanal) sayısını almak...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Kullanıcıdan web form aracılığıyla bazı bilgiler almak gerektiğinde bilgileri doğrulama yoluna gideriz. TC kimlik numarasının<a href="http://www.tankado.com/tc-kimlik-algoritma-formul/" target="_blank"> formulize</a> edilidğini daha önce söylemiştim. TC Kimlik numarasının son 2 hanesi ilk 9 hanesini doğrulamakta kullanılan bir tür güvenlik kodudur. Aşağıda güvenlik kodunu üreterek TC kimlik numarasını yazım yanlışlıklarına karşı doğrulayan <strong>is_valid_tckn()</strong> adında bir PHP fonksiyonu yer alıyor. Ayrıca C# ve VB fonksiyonlarını da sayfanın devamında bulabilirsiniz.</p>
<p><strong>PHP TC Kimlik Numarası Doğrulama Fonksiyonu</strong></p>
<pre class="brush: php;">
# Coded by Tankado @ tankado.com
function is_valid_tckn( $tckn )
{
	$x = $tckn;
	$valid1=((7*($x[0]+$x[2]+$x[4]+$x[6]+$x[8])-($x[1]+$x[3]+$x[5]+$x[7]))%10)==$x[9];
	$valid2=(($x[0]+$x[1]+$x[2]+$x[3]+$x[4]+$x[5]+$x[6]+$x[7]+$x[8]+$x[9])%10)==$x[10];
	return $valid1 &amp;&amp; $valid2;
}
</pre>
<p><span id="more-1789"></span><br />
<strong>C# TC Kimlik Numarası Doğrulama Fonksiyonu</strong></p>
<pre class="brush: cpp;">
public static bool TcDogrulaV2(string tcKimlikNo)
{
    bool returnvalue = false;
    if (tcKimlikNo.Length == 11)
    {
        Int64 ATCNO, BTCNO, TcNo;
        long C1,C2,C3, C4, C5,C6,C7,C8, C9,Q1,Q2;

        TcNo = Int64.Parse(tcKimlikNo);

        ATCNO = TcNo / 100;
        BTCNO = TcNo / 100;

         C1 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C2 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C3 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C4 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C5 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C6 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C7 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C8 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         C9 = ATCNO % 10;  ATCNO = ATCNO / 10 ;
         Q1 = ((10-((((C1+C3+C5+C7+C9)*3)+(C2+C4+C6+C8))%10))%10);
         Q2 = ((10-(((((C2+C4+C6+C8)+Q1)*3)+(C1+C3+C5+C7+C9))%10))%10);

         returnvalue = ((BTCNO * 100)+(Q1 * 10)+Q2 == TcNo);
    }
    return returnvalue;
}
</pre>
<p><strong>VB TC Kimlik Numarası Doğrulama Fonksiyonu</strong></p>
<pre class="brush: vb;">
Public Shared Function TcDogrulaV2(ByVal tcKimlikNo As String) As Boolean
     Dim returnvalue As Boolean = False
     If (tcKimlikNo.Length &lt;&gt; 11) Then
         Return returnvalue
     End If
     Dim TcNo As Long = Long.Parse(tcKimlikNo)
     Dim ATCNO As Long = (TcNo / 100)
     Dim BTCNO As Long = (TcNo / 100)
     Dim C1 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C2 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C3 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C4 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C5 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C6 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C7 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C8 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim C9 As Long = (ATCNO Mod 10)
     ATCNO = (ATCNO / 10)
     Dim Q1 As Long =((10-(((((((C1+C3)+C5)+C7)+C9)*3)+(((C2+C4)+C6)+C8))Mod 10))Mod 10)
     Dim Q2 As Long =((10-(((((((C2+C4)+C6)+C8)+Q1)*3)+((((C1+C3)+C5)+C7)+C9))Mod 10))Mod 10)
     Return ((((BTCNO * 100) + (Q1 * 10)) + Q2) = TcNo)
End Function
</pre>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/ulusal-kimlik-veritabani-mernis-calindi/' rel='bookmark' title='Permanent Link: Ulusal Kimlik Veritabanı (Mernis) Çalındı'>Ulusal Kimlik Veritabanı (Mernis) Çalındı</a><li>70 Milyon kişinin adres ve telefon bilgilerinin de yer aldığı...</li></li>
<li><a href='http://www.tankado.com/tc-kimlik-algoritma-formul/' rel='bookmark' title='Permanent Link: TC Kimlik Formülasyon Açığı'>TC Kimlik Formülasyon Açığı</a><li>Kimlik Bilgileriniz Güvende Mi Acaba ? Ara sıra kontrol ettiğim,...</li></li>
<li><a href='http://www.tankado.com/arac-sigorta-kasko-tramer-tckimlik-police/' rel='bookmark' title='Permanent Link: Araç Sahipleri TRAMER&#8217;i biliyor mu?'>Araç Sahipleri TRAMER&#8217;i biliyor mu?</a><li>TRAMER, Trafik Sigortaları Bilgi Merkezinin kısa adı. www.tramer.org.tr adresinden ulaşabileceğiniz...</li></li>
<li><a href='http://www.tankado.com/getthreadcount/' rel='bookmark' title='Permanent Link: How to Gets Thread Count in a Process'>How to Gets Thread Count in a Process</a><li>Herhangi bir prosesin (işlem) bünyesinde bulunan thread (kanal) sayısını almak...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/php-ile-tc-kimlik-numarasini-dogrulamak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Aslında CGI Antremanı Yapmalıyız</title>
		<link>http://www.tankado.com/php-cgi-performan/</link>
		<comments>http://www.tankado.com/php-cgi-performan/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 15:07:59 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Tasarım]]></category>
		<category><![CDATA[apache cgi]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[cgi modülü]]></category>
		<category><![CDATA[cgi performansı]]></category>
		<category><![CDATA[mod-cgi]]></category>
		<category><![CDATA[mod-php]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php cgi]]></category>
		<category><![CDATA[php modülü]]></category>
		<category><![CDATA[php performansı]]></category>
		<category><![CDATA[phyton]]></category>

		<guid isPermaLink="false">http://www.tankado.com/?p=1545</guid>
		<description><![CDATA[LKD&#8216;nin Linux-programlama listesinde &#8220;Neden Cannot modify header information &#8211; headers already sent by&#8221; hatası alıyorum sorulduktan sonra, Sn. Barış Çuhadır&#8217;ın cevaben verdiği bilgiler işin özünü yansıtması açısından çok güzeldi. Paylaşmak istedim. &#8220;CGI programları istenilen programlama dili ile yazılabilir. Örneğin ben şu anda C ile kendi cgi kütüphanemi oluşturmaktayım. C ile yazılan bir cgi programı, ayrı [...]


Benzer yazılar: <ol><li><a href='http://www.tankado.com/popucheck-v104/' rel='bookmark' title='Permanent Link: PopuCheck v1.0.4'>PopuCheck v1.0.4</a><li>PopuCheck yenilendi. Yeni sürümdeki bazı yenilikler şöyle: Multithread yapısı baştan...</li></li>
<li><a href='http://www.tankado.com/yndir-flow-chart-visual-programming-language-turkce/' rel='bookmark' title='Permanent Link: İndir: Flow Chart Visual Programming Language [Türkçe]'>İndir: Flow Chart Visual Programming Language [Türkçe]</a><li>Programlama öğretiminde kullanılan Flow Chart Visual Programming Language adlı programı...</li></li>
<li><a href='http://www.tankado.com/linuxda-port-yonlendirme-nasil-yapilir/' rel='bookmark' title='Permanent Link: Linux&#8217;da Port Yönlendirme Nasıl Yapılır?'>Linux&#8217;da Port Yönlendirme Nasıl Yapılır?</a><li>LKD&#8217;nin sunucu listesinde sunucudaki bir portun internet ortamındaki başka bir...</li></li>
<li><a href='http://www.tankado.com/lamp-wamp-mamp-gelitirme-paketleri/' rel='bookmark' title='Permanent Link: LAMP, WAMP, MAMP geliştirme paketleri'>LAMP, WAMP, MAMP geliştirme paketleri</a><li>Dinamik web siteleri geliştirenlerin işine yarayacağını d&uuml;ş&uuml;nd&uuml;ğ&uuml;m bazı yazılımlardan haber...</li></li>
<li><a href='http://www.tankado.com/cannot-delete-folder-it-is-being/' rel='bookmark' title='Permanent Link: Cannot delete folder: It is being&#8230;'>Cannot delete folder: It is being&#8230;</a><li>Bir dosya veya dizini silmeye yada adını değitirmeye kalktığınızda başımıza...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lkd.org.tr/" target="_blank">LKD</a>&#8216;nin <a href="http://liste.linux.org.tr/pipermail/linux-programlama/" target="_blank">Linux-programlama listesinde</a> &#8220;<strong>Neden <em>Cannot modify header information &#8211; headers already sent by</em></strong>&#8221; hatası alıyorum sorulduktan sonra, Sn. Barış Çuhadır&#8217;ın cevaben verdiği bilgiler işin özünü yansıtması açısından çok güzeldi. Paylaşmak istedim.</p>
<p>&#8220;<em>CGI programları istenilen programlama dili ile yazılabilir. Örneğin ben şu anda C ile kendi cgi kütüphanemi oluşturmaktayım. C ile yazılan bir cgi programı, ayrı bir işlem olarak yaratılmayıp apache cgi modülü ile kullanıldığında, ortalama bir masaüstü bilgisayarda bile saniyede ortalama 800-1200 talebe yanıt verebiliyor.</em></p>
<p><em>Hele ki yazdığınız program işlemciyi yoğun olarak kullanan bir program ise, ör. C ile yazılmış, apache üstünde mod-cgi ile çalışan bir cgi programı yine apache üstünde mod-php ile çalışan aynı programdan 5-10 kat daha hızlı çalışmaktadır.<br />
 <span id="more-1545"></span></em><em><br />
 Türkçe cgi kitabı var mı yok mu bilmiyorum, varsa bile bir iki tanedir. Apache&#8217;nin belgelerinden, internet üstünde google&#8217;dan uygun sözcüklerle aranırsa iyi belgeler bulunabilir.</em><br />
 <strong><br />
 Ör:</strong></p>
<p><strong> </strong> CGI Specification -&gt;  <a href="http://www.ietf.org/rfc/rfc3875" target="_blank">http://www.ietf.org/rfc/rfc3875</a> <br />
 <a href="http://web.bilkent.edu.tr/WWW/hoohoo/cgi/overview.html" target="_blank">http://web.bilkent.edu.tr/WWW/hoohoo/cgi/overview.html</a></p>
<p><em><br />
 Tabi perl,php ve diğer web için kullanılan programlama dillerinin gelişmesiyle, bazı şeyler çok kolay yapılır hale geldi, php,python gibi inanılmaz yetkinlikte kütüphaneleri olan diller, olayı aldı, çok farklı yerlere götürdü.</em><em> </em></p>
<p><em>Ancak iyi bir web programcısının, arkada ne tür işlerin döndüğünüde iyi bilmesi gerekir diye düşünüyorum. Ör. Php standart input&#8217;dan girdileri, yada trayıcının gönderdiği kurabiyeleri okuyarak, form dan gelen bilgileri geliştiriciyi hiç uğraştırmadan global request değişkenine atar, varsayılan olarak gerekli ise &#8220;\&#8221; ile karakter kaçınımlarını yapar. Oysa ben aynı işleri yapsın diye tam 12 ayrı işlev yazdım. Ör. Python&#8217;un kendi cgi modülünde bu işleri yapan işlevlerde mevcut.</em></p>
<p><em>Dolayısıyla yeni başlayan arkadaşları bir yana bırakırsak, işe cgi ile başlamış bir web programcısı <strong>&#8220;Cannot modify headers, headers already sent nedir abicim?</strong>&#8221; yada &#8220;<strong>PHP&#8217;de outputun başlayıp başlamadığının kontrolü</strong>&#8221; gibi sorular sormaz, çünkü çıktıyı programcının kendisinin başlattığını bilir.</em> &#8220;</p>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/popucheck-v104/' rel='bookmark' title='Permanent Link: PopuCheck v1.0.4'>PopuCheck v1.0.4</a><li>PopuCheck yenilendi. Yeni sürümdeki bazı yenilikler şöyle: Multithread yapısı baştan...</li></li>
<li><a href='http://www.tankado.com/yndir-flow-chart-visual-programming-language-turkce/' rel='bookmark' title='Permanent Link: İndir: Flow Chart Visual Programming Language [Türkçe]'>İndir: Flow Chart Visual Programming Language [Türkçe]</a><li>Programlama öğretiminde kullanılan Flow Chart Visual Programming Language adlı programı...</li></li>
<li><a href='http://www.tankado.com/linuxda-port-yonlendirme-nasil-yapilir/' rel='bookmark' title='Permanent Link: Linux&#8217;da Port Yönlendirme Nasıl Yapılır?'>Linux&#8217;da Port Yönlendirme Nasıl Yapılır?</a><li>LKD&#8217;nin sunucu listesinde sunucudaki bir portun internet ortamındaki başka bir...</li></li>
<li><a href='http://www.tankado.com/lamp-wamp-mamp-gelitirme-paketleri/' rel='bookmark' title='Permanent Link: LAMP, WAMP, MAMP geliştirme paketleri'>LAMP, WAMP, MAMP geliştirme paketleri</a><li>Dinamik web siteleri geliştirenlerin işine yarayacağını d&uuml;ş&uuml;nd&uuml;ğ&uuml;m bazı yazılımlardan haber...</li></li>
<li><a href='http://www.tankado.com/cannot-delete-folder-it-is-being/' rel='bookmark' title='Permanent Link: Cannot delete folder: It is being&#8230;'>Cannot delete folder: It is being&#8230;</a><li>Bir dosya veya dizini silmeye yada adını değitirmeye kalktığınızda başımıza...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/php-cgi-performan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delphi for PHP&#8217;de PageControl nesnesi sorunu</title>
		<link>http://www.tankado.com/delphi-for-phpde-pagecontrol-nesnesi-sorunu/</link>
		<comments>http://www.tankado.com/delphi-for-phpde-pagecontrol-nesnesi-sorunu/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 15:06:02 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[d4php]]></category>
		<category><![CDATA[d4php objects]]></category>
		<category><![CDATA[d4php samples]]></category>
		<category><![CDATA[delphi for php]]></category>
		<category><![CDATA[deployment wizard]]></category>
		<category><![CDATA[pagecontrol]]></category>

		<guid isPermaLink="false">http://www.tankado.com/delphi-for-phpde-pagecontrol-nesnesi-sorunu/</guid>
		<description><![CDATA[Sıradaki ilk projemi Delphi for PHP (D4PHP) ile yapmaya karar vermiştim. Daha önce de söz ettiğim bu RAD&#8216;ı geliştiriciler arasında sevenlerin sayısı çok. Hem bu düşünceye özgür iradem ile hak vermek hem de fazla bilgi göz çıkartmaz düşüncesiyle D4PHP&#8217;nin 2.1.0 sürümünü kurup kurcalamaya başladım. İnternetteki eğitim videolarını ve d4php&#8217;nin samples klasöründeki örnekleri görünce işlerin nekadar [...]


Benzer yazılar: <ol><li><a href='http://www.tankado.com/notepad-turkce-karakter-sorunu/' rel='bookmark' title='Permanent Link: Notepad++ Türkçe Karakter Sorunu'>Notepad++ Türkçe Karakter Sorunu</a><li>Yine benzer bir Windows 7 sorunu. Notepad++ Windows&#8217;un Not Defteri...</li></li>
<li><a href='http://www.tankado.com/wordpresse-dosya-yukleyememe-sorunu/' rel='bookmark' title='Permanent Link: WordPress&#8217;e Dosya Yükleyememe Sorunu'>WordPress&#8217;e Dosya Yükleyememe Sorunu</a><li>Herhangi bir şekilde wordpress&#8217;e dosya yükleyemiyorsanız bunun birçok nedeni olabilir....</li></li>
<li><a href='http://www.tankado.com/delphi-invalid-argument-to-date-encode-hatasyny-gidermek/' rel='bookmark' title='Permanent Link: Delphi: &quot;Invalid argument to date encode&quot; hatasını gidermek'>Delphi: &quot;Invalid argument to date encode&quot; hatasını gidermek</a><li>TIdHttp içinde aniden peydahlanan bu sorun kodun ele aldığı tarih...</li></li>
<li><a href='http://www.tankado.com/windows-7-ekran-koruyucu-sorunu/' rel='bookmark' title='Permanent Link: Windows 7 Ekran Koruyucu Sorunu'>Windows 7 Ekran Koruyucu Sorunu</a><li>Diğer Windows&#8217;larda olduğu gibi Windows 7&#8216;de de ekran koruyucu ayarlarında...</li></li>
<li><a href='http://www.tankado.com/delphi-7-yardim-windows-7-winhlp32/' rel='bookmark' title='Permanent Link: Delphi 7 Yardımı Windows 7&#8242;de de çalışsın'>Delphi 7 Yardımı Windows 7&#8242;de de çalışsın</a><li>Windows 7 üzerine Delphi 7 kurduysanız F1 tuşu ile çağrılan...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.tankado.com/wp-content/uploads/2009/09/sm_phphello.png" alt="php Delphi for PHPde PageControl nesnesi sorunu" width="320" height="240" title="Delphi for PHPde PageControl nesnesi sorunu photo" /></p>
<p>Sıradaki ilk projemi <a title="http://www.embarcadero.com/products/delphi-for-php" href="http://www.embarcadero.com/products/delphi-for-php">Delphi for PHP</a> (D4PHP) ile yapmaya karar vermiştim. Daha önce de <a title="http://www.tankado.com/delphi-2007-for-php/" href="http://www.tankado.com/delphi-2007-for-php/">söz ettiğim</a> bu <a title="http://en.wikipedia.org/wiki/Rapid_application_development" href="http://en.wikipedia.org/wiki/Rapid_application_development">RAD</a>&#8216;ı geliştiriciler arasında sevenlerin sayısı çok. Hem bu düşünceye özgür iradem ile hak vermek hem de fazla bilgi göz çıkartmaz düşüncesiyle D4PHP&#8217;nin 2.1.0 sürümünü kurup kurcalamaya başladım.</p>
<p>İnternetteki <a title="http://video.google.com/videosearch?q=delphi+for+php&amp;emb=0&amp;aq=f#" href="http://video.google.com/videosearch?q=delphi+for+php&amp;emb=0&amp;aq=f#">eğitim videolarını</a> ve d4php&#8217;nin <a title="http://edn.embarcadero.com/article/38212" href="http://edn.embarcadero.com/article/38212" target="_blank">samples</a> klasöründeki örnekleri görünce işlerin nekadar kolaylaştığını anlayabiliyorsunuz fakat grafik ve flash yoğunluklu site tasarımlarında d4php ile nasıl entegre çalışılabilir, kod yapısına nasıl müdahale edilir gibi soru işaretleri de hafiften beyninizde belirmeye başlıyor. Macromedia&#8217;nın sunduğu studio ortamı kadar konfor yaşayabilirmiyiz yoksa d4php daha farklı projeler için mi daha uygun olur emin değilim.</p>
<p>Yalnız d4php ile advanced nesneler ve ajax&#8217;ı kullanarak yerel uyglama (native application) kıvamında, web tabanlı projeleri rahatlıkla ve kısa sürelerde hazırlayabilirsiniz. Zaten böyle bir proje yapacaksanız kesinlikle d4php kullanmanızı öneririm. Henuz d4php deneyimim az ve şimdilik düşüncelerim böyle.</p>
<p><span id="more-1299"></span></p>
<p>Gelelim konu başlığına&#8230;</p>
<p><a href="http://www.tankado.com/wp-content/uploads/2009/09/d4php_page_control.PNG"><img class="aligncenter size-full wp-image-1303" title="d4php_page_control" src="http://www.tankado.com/wp-content/uploads/2009/09/d4php_page_control.PNG" alt="php Delphi for PHPde PageControl nesnesi sorunu" width="432" height="293" /></a></p>
<p>Yaşadığım sorun d4php&#8217;nin <a title="http://www.qadram.com/vcl4php/docwiki/index.php/Developer%27s_Guide_::_Using_PageControl" href="http://www.qadram.com/vcl4php/docwiki/index.php/Developer's_Guide_::_Using_PageControl" target="_blank">PageControl</a> (advanced groupbox&#8217;da yer alıyor) nesnesi ile ilgiliydi. Samples klasöründeki PageControl projesini rahatlıkla browse edebilirken, kendi oluşturduğum projelerde nedense PageControl nesnesi gözükmüyordu. Daha da kötü olan ise bu durum ile ilgili ne php ne de javascript hatası görüntülenmemesiydi. Aslında bu durumu DOM ağacında yer almayan advanced ve additional grubu nesnelerinin çoğunda yaşıyordum. Sezgilerim bana sorunun basit bir include hatasından kaynaklandığını söylüyordu ama aksine ortada include hatası felan yoktu. Sorunu çözdüm sonunda ama biraz sancılı oldu.</p>
<p>Sorunun şartlarını daha belirgin ortaya koyabilmek için birkaç deneme yaptıktan sonra aşağıdaki sonuçlara ulaştım.</p>
<ul>
<li>Projenizi <strong>Belgelerim</strong> klasöründe oluşturulan &#8220;<strong>Delphi for PHP Projects</strong>&#8221; klasörüne kaydettiğinizde bahsettiğim sorunu yaşamıyorsunuz.</li>
<li>Projenizi <strong>C:</strong> bölümünün kök dizini altında bir klasöre kaydettiğinizde sorun yaşamıyorsunuz.</li>
<li>Projenizi bir önceki maddedekine benzer olarak <strong>D:</strong> ye kaydettiğinizde sorun yaşıyorsunuz.</li>
<li>Projenizi kaydettiğiniz klasörün patikasında (path) <strong>Türkçe karakter</strong> (<em>ö,ç,ş,ğ,ü</em>) yer alıyorsa sorun yaşıyorsunuz.</li>
<li><strong>Tools</strong> menüsü altında &#8220;<strong>Deployment Wizard</strong>&#8220;ı kullanarak gerekli kütüphaneleri proje klasörünüze export ettiğinizde sorun yaşamıyorsunuz.</li>
</ul>
<p>Sorunu çözerken d4php için çok fazla destek bulamadığımı söylemek istiyorum. İnternetteki forumlarda ve bloglarda da çok fazla kaynak ve yardımcı olacak insan bulamıyorsunuz ama pes etmiyoruz tabiki öğrenmeye ve tırmalamaya devam ediyoruz.</p>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/notepad-turkce-karakter-sorunu/' rel='bookmark' title='Permanent Link: Notepad++ Türkçe Karakter Sorunu'>Notepad++ Türkçe Karakter Sorunu</a><li>Yine benzer bir Windows 7 sorunu. Notepad++ Windows&#8217;un Not Defteri...</li></li>
<li><a href='http://www.tankado.com/wordpresse-dosya-yukleyememe-sorunu/' rel='bookmark' title='Permanent Link: WordPress&#8217;e Dosya Yükleyememe Sorunu'>WordPress&#8217;e Dosya Yükleyememe Sorunu</a><li>Herhangi bir şekilde wordpress&#8217;e dosya yükleyemiyorsanız bunun birçok nedeni olabilir....</li></li>
<li><a href='http://www.tankado.com/delphi-invalid-argument-to-date-encode-hatasyny-gidermek/' rel='bookmark' title='Permanent Link: Delphi: &quot;Invalid argument to date encode&quot; hatasını gidermek'>Delphi: &quot;Invalid argument to date encode&quot; hatasını gidermek</a><li>TIdHttp içinde aniden peydahlanan bu sorun kodun ele aldığı tarih...</li></li>
<li><a href='http://www.tankado.com/windows-7-ekran-koruyucu-sorunu/' rel='bookmark' title='Permanent Link: Windows 7 Ekran Koruyucu Sorunu'>Windows 7 Ekran Koruyucu Sorunu</a><li>Diğer Windows&#8217;larda olduğu gibi Windows 7&#8216;de de ekran koruyucu ayarlarında...</li></li>
<li><a href='http://www.tankado.com/delphi-7-yardim-windows-7-winhlp32/' rel='bookmark' title='Permanent Link: Delphi 7 Yardımı Windows 7&#8242;de de çalışsın'>Delphi 7 Yardımı Windows 7&#8242;de de çalışsın</a><li>Windows 7 üzerine Delphi 7 kurduysanız F1 tuşu ile çağrılan...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/delphi-for-phpde-pagecontrol-nesnesi-sorunu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>e-Okul PHP Script&#8217;i ve Delphi Programı</title>
		<link>http://www.tankado.com/e-okul-php-scripti-ve-delphi-programi/</link>
		<comments>http://www.tankado.com/e-okul-php-scripti-ve-delphi-programi/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 15:59:27 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projeler]]></category>
		<category><![CDATA[delphi yazılımı]]></category>
		<category><![CDATA[e-okul]]></category>
		<category><![CDATA[e-okul otomatik güncelleyici]]></category>
		<category><![CDATA[eokul]]></category>
		<category><![CDATA[eokul delphi]]></category>
		<category><![CDATA[eokul php script]]></category>

		<guid isPermaLink="false">http://www.tankado.com/e-okul-php-scripti-ve-delphi-programi</guid>
		<description><![CDATA[Daha önce PHP&#8217;de yazdığım yarım kalmış bir e-okul projesinden bahsetmiş ve kodlarını paylaşmıştım. Paylaşımın delphi ayağına ait programı henuz bulabildim. Onuda buradan paylaşacağım. Program kısca; Bilsa Karma programının mdb biçimindeki veritabanlarından not ve devamsızlık bilgilerini alarak script&#8217;in kullanabileceği MySQL veribanına aktarıyor. Program temel görevleri yerine getiriyor fakat üzerinden bir hayli zaman geçtiği için eksiklikleri/hataları nelerdi [...]


Benzer yazılar: <ol><li><a href='http://www.tankado.com/yarym-kalmy-bir-php-projesi-e-okul/' rel='bookmark' title='Permanent Link: Yarım kalmış bir PHP projesi: e-Okul'>Yarım kalmış bir PHP projesi: e-Okul</a><li>e-Okul, muazzam sayıda bit(irile)memiş projenin yer aldığı kod arşivimden bir e-devlet atraksiyonu. 2004 yılında...</li></li>
<li><a href='http://www.tankado.com/calyanlar-icin-vergi-iade-bildirimi-programy/' rel='bookmark' title='Permanent Link: Çalışanlar için vergi iade programı'>Çalışanlar için vergi iade programı</a><li>Her yıl &ccedil;alışanların vergi iadesi almak i&ccedil;in doldurduğu matbu formu...</li></li>
<li><a href='http://www.tankado.com/delphi-network-traffic-monitor/' rel='bookmark' title='Permanent Link: Delphi: Network Traffic Monitor'>Delphi: Network Traffic Monitor</a><li>Network Traffic Monitor (NTM) yerel bilgisayardaki ağ bağdaştırıcılarının trafiğini miktarını anlık olarak...</li></li>
<li><a href='http://www.tankado.com/yazym-turkceletirme-programy/' rel='bookmark' title='Permanent Link: Yazım Türkçeleştirme Programı'>Yazım Türkçeleştirme Programı</a><li>Pek çok kişi çeşitli sebeplerle, Türkçe yazı yazarken Türkçe karakterleri...</li></li>
<li><a href='http://www.tankado.com/eydsl-kota-bilgilendirme-programy/' rel='bookmark' title='Permanent Link: EyDSL: Kota bilgilendirme programı'>EyDSL: Kota bilgilendirme programı</a><li>Ey DSL! kotalı ADSL kullanıcılarının anlık kota kullanımlarını g&ouml;steren bir...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Daha önce PHP&#8217;de yazdığım <a title="http://www.tankado.com/yarym-kalmy-bir-php-projesi-e-okul" href="http://www.tankado.com/yarym-kalmy-bir-php-projesi-e-okul" target="http://www.tankado.com/yarym-kalmy-bir-php-projesi-e-okul">yarım kalmış bir e-okul projesinden</a> bahsetmiş ve kodlarını paylaşmıştım. Paylaşımın delphi ayağına ait programı henuz bulabildim. Onuda buradan paylaşacağım. Program kısca; <strong>Bilsa Karma</strong> programının <strong>mdb</strong> biçimindeki veritabanlarından not ve devamsızlık bilgilerini alarak script&#8217;in kullanabileceği MySQL veribanına aktarıyor. Program temel görevleri yerine getiriyor fakat üzerinden bir hayli zaman geçtiği için eksiklikleri/hataları nelerdi konusunu hatırlayamıyorum.</p>
<div class='download1'><a href="http://www.tankado.com/dosyalar/e-Okul-G%C3%BCncelleyici.zip" id='anchor'><u>e-Okul Güncelleyici Program</u></a><p id='hit'> <b>1.33 MB</b>&nbsp;<b>252</b> kez indirildi.&nbsp;&nbsp;</p><p id='desc'>Bilsa Karma programının mdb biçimindeki veritabanlarından öğrencilerin not ve devamsızlık bilgilerini okuyarak script'e aktaran (MySQL veritabanına) program.</p></div>
<p>Programı derleyip çalıştırmayı deneyecekler için;</p>
<ol>
<li>Ana form üzerinde Ayarlar düğmesinden script&#8217;in bulunduğu URL&#8217;yi yazın</li>
<li>Kullanıcı adı olarak script&#8217;in config.php dosyasındaki DBUpdateUsername ve DBUpdatePassword değerlerini kullanın.</li>
<li>Data dizinine okul veritabanlarının saklandığı &#8220;1&#8243;,&#8221;2&#8243;.. ismindeki klasörler ile OGRSIFRE.MDB ve STARTUP.MDB isimli veritabanlarını kopyalayın veya Gözat düğmesi ile Karma&#8217;nın yüklü olduğu ana dizini gösterin.</li>
</ol>
<p><span id="more-1230"></span></p>
<p><br class="spacer_" /></p>
<p><img src="http://www.tankado.com/wp-content/uploads/2009/08/1.JPG" alt="delphi e Okul PHP Scripti ve Delphi Programı" width="562" height="485" title="e Okul PHP Scripti ve Delphi Programı photo" /></p>
<p>e-Okul güncelleyici giriş ekranı</p>
<p><img src="http://www.tankado.com/wp-content/uploads/2009/08/2.JPG" alt="delphi e Okul PHP Scripti ve Delphi Programı" width="562" height="485" title="e Okul PHP Scripti ve Delphi Programı photo" /> <br />
 e-Okul güncelleyici tablo seçim ekranı</p>
<p><img src="http://www.tankado.com/wp-content/uploads/2009/08/3.JPG" alt="delphi e Okul PHP Scripti ve Delphi Programı" width="562" height="485" title="e Okul PHP Scripti ve Delphi Programı photo" /> <br />
 e-Okul güncelleyici gönderim durum ekranı</p>
<p><img src="http://www.tankado.com/wp-content/uploads/2009/08/eokul_bilgilerim.JPG" alt="delphi e Okul PHP Scripti ve Delphi Programı" width="557" height="352" title="e Okul PHP Scripti ve Delphi Programı photo" /></p>
<p><img src="http://www.tankado.com/wp-content/uploads/2009/08/eokul_derslerim.JPG" alt="delphi e Okul PHP Scripti ve Delphi Programı" width="561" height="356" title="e Okul PHP Scripti ve Delphi Programı photo" /></p>
<p><img src="http://www.tankado.com/wp-content/uploads/2009/08/eokul_devamsizlik.JPG" alt="delphi e Okul PHP Scripti ve Delphi Programı" width="561" height="380" title="e Okul PHP Scripti ve Delphi Programı photo" /></p>
<p><img src="http://www.tankado.com/wp-content/uploads/2009/08/eokul_notlarim.JPG" alt="delphi e Okul PHP Scripti ve Delphi Programı" width="562" height="376" title="e Okul PHP Scripti ve Delphi Programı photo" /></p>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/yarym-kalmy-bir-php-projesi-e-okul/' rel='bookmark' title='Permanent Link: Yarım kalmış bir PHP projesi: e-Okul'>Yarım kalmış bir PHP projesi: e-Okul</a><li>e-Okul, muazzam sayıda bit(irile)memiş projenin yer aldığı kod arşivimden bir e-devlet atraksiyonu. 2004 yılında...</li></li>
<li><a href='http://www.tankado.com/calyanlar-icin-vergi-iade-bildirimi-programy/' rel='bookmark' title='Permanent Link: Çalışanlar için vergi iade programı'>Çalışanlar için vergi iade programı</a><li>Her yıl &ccedil;alışanların vergi iadesi almak i&ccedil;in doldurduğu matbu formu...</li></li>
<li><a href='http://www.tankado.com/delphi-network-traffic-monitor/' rel='bookmark' title='Permanent Link: Delphi: Network Traffic Monitor'>Delphi: Network Traffic Monitor</a><li>Network Traffic Monitor (NTM) yerel bilgisayardaki ağ bağdaştırıcılarının trafiğini miktarını anlık olarak...</li></li>
<li><a href='http://www.tankado.com/yazym-turkceletirme-programy/' rel='bookmark' title='Permanent Link: Yazım Türkçeleştirme Programı'>Yazım Türkçeleştirme Programı</a><li>Pek çok kişi çeşitli sebeplerle, Türkçe yazı yazarken Türkçe karakterleri...</li></li>
<li><a href='http://www.tankado.com/eydsl-kota-bilgilendirme-programy/' rel='bookmark' title='Permanent Link: EyDSL: Kota bilgilendirme programı'>EyDSL: Kota bilgilendirme programı</a><li>Ey DSL! kotalı ADSL kullanıcılarının anlık kota kullanımlarını g&ouml;steren bir...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/e-okul-php-scripti-ve-delphi-programi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tinyMy: small mysql console</title>
		<link>http://www.tankado.com/tinymy-small-mysql-console/</link>
		<comments>http://www.tankado.com/tinymy-small-mysql-console/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 01:17:04 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Veritabanı]]></category>
		<category><![CDATA[mysql console]]></category>
		<category><![CDATA[php mysql console]]></category>
		<category><![CDATA[tinyMy]]></category>

		<guid isPermaLink="false">http://www.tankado.com/tinymy-small-mysql-console</guid>
		<description><![CDATA[tinyMy, MySQL veritabanlarını yönetmek için hazırlanmış küçük bir PHP betiğidir. tinyMy tek bir PHP dosyasından oluşan çok küçük ve basit bir betikdir. Genellikle web üzerinden MySQL veritabanlarını yönetmek için phpMyAdmin kullanılsada bazı durumlarda phpMyAdmin biraz fazla gelebilmekte. phpMyAdmin birçok özelliği bünyesinde barındırıyor, çok fazla dosyadan oluşuyor ve bazen bu dosyaların boyutu ve kodların çokluğu sunucu [...]


Benzer yazılar: <ol><li><a href='http://www.tankado.com/mysql-tablo-int/' rel='bookmark' title='Permanent Link: MySQL tablo yapılarında sayısal değerlerin yanındaki uzunluk ne işe yarıyor'>MySQL tablo yapılarında sayısal değerlerin yanındaki uzunluk ne işe yarıyor</a><li>MySQL tablo yapılarına baktığımızda tinyint(4) gibi değerler görüyoruz. Ya da...</li></li>
<li><a href='http://www.tankado.com/mysql-insert-delayed/' rel='bookmark' title='Permanent Link: MySQL: INSERT DELAYED'>MySQL: INSERT DELAYED</a><li>MySQL&#8217;in birdiğer güzel özelliği de Insert delayed. Burada yazdığına göre;...</li></li>
<li><a href='http://www.tankado.com/mysql-ile-bir-tablonun-kopyasini-uretmek/' rel='bookmark' title='Permanent Link: MySQL ile bir tablonun kopyasını üretmek'>MySQL ile bir tablonun kopyasını üretmek</a><li>Bir MySQL tablosunun üzerinde denemeler yapmadan önce onu yedeklemelisiniz. Yedek...</li></li>
<li><a href='http://www.tankado.com/php-mysql-javascript-css-cheat-sheets/' rel='bookmark' title='Permanent Link: PHP, MySQL, Javascript, CSS Cheat Sheets'>PHP, MySQL, Javascript, CSS Cheat Sheets</a><li>Cheat Sheet dediği şey belli bir konuyla alakalı &ccedil;ok sık...</li></li>
<li><a href='http://www.tankado.com/the-terminal-server-has-exceeded-the-maximum-number-of-allowed-connections/' rel='bookmark' title='Permanent Link: The terminal server has exceeded the maximum number of allowed connections'>The terminal server has exceeded the maximum number of allowed connections</a><li>Sunucunuza bağlanmaya (RDP) çalıştığınızda bu uyarı mesajını alıyorsanız, sunucunuzun bağlantı...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://spicausis.lv/tinymy/" target="_blank">tinyMy</a>, MySQL veritabanlarını yönetmek için hazırlanmış küçük bir PHP betiğidir. tinyMy tek bir PHP dosyasından oluşan çok küçük ve basit bir betikdir.</p>
<p>Genellikle web üzerinden MySQL veritabanlarını yönetmek için <a href="http://www.phpmyadmin.net/home_page/index.php">phpMyAdmin</a> kullanılsada bazı durumlarda phpMyAdmin biraz fazla gelebilmekte. phpMyAdmin birçok özelliği bünyesinde barındırıyor, çok fazla dosyadan oluşuyor ve bazen bu dosyaların boyutu ve kodların çokluğu sunucu başarımı açısından sorun teşkil edebiliyor. Ayrıca dial-up gibi düşük bir bağlantı söz konusu olduğunda biraz konfor kaybı olabiliyor. Çok fazla beklentiniz yoksa tinyMy size göre.</p>
<p>tinyMy ile veritabanındaki tabloların içeriğini ve yapısını görebilir, SQL çalıştırabilir ayrıca tablolarınızı dump edebilirsiniz. <a href="http://spicausis.lv/tinymy/">tinyMy</a> betiğini buradan indirebilirsiniz.</p>
<p xmlns="" class="zoundry_raven_tags">  <!-- Tag links generated by Zoundry Raven. Do not manually edit. http://www.zoundryraven.com -->  <span class="ztags"><span class="ztagspace">Technorati</span> : <a href="http://www.technorati.com/tag/mysql+console" class="ztag" rel="tag">mysql console</a>, <a href="http://www.technorati.com/tag/php+mysql+console" class="ztag" rel="tag">php mysql console</a>, <a href="http://www.technorati.com/tag/tinyMy" class="ztag" rel="tag">tinyMy</a></span>  <br/> <span class="ztags"><span class="ztagspace">Del.icio.us</span> : <a href="http://del.icio.us/tag/mysql%20console" class="ztag" rel="tag">mysql console</a>, <a href="http://del.icio.us/tag/php%20mysql%20console" class="ztag" rel="tag">php mysql console</a>, <a href="http://del.icio.us/tag/tinyMy" class="ztag" rel="tag">tinyMy</a></span>  <br/> <span class="ztags"><span class="ztagspace">Zooomr</span> : <a href="http://www.zooomr.com/search/photos/?q=mysql%20console" class="ztag" rel="tag">mysql console</a>, <a href="http://www.zooomr.com/search/photos/?q=php%20mysql%20console" class="ztag" rel="tag">php mysql console</a>, <a href="http://www.zooomr.com/search/photos/?q=tinyMy" class="ztag" rel="tag">tinyMy</a></span>  <br/> <span class="ztags"><span class="ztagspace">Flickr</span> : <a href="http://www.flickr.com/photos/tags/mysql%20console" class="ztag" rel="tag">mysql console</a>, <a href="http://www.flickr.com/photos/tags/php%20mysql%20console" class="ztag" rel="tag">php mysql console</a>, <a href="http://www.flickr.com/photos/tags/tinyMy" class="ztag" rel="tag">tinyMy</a></span> </p>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/mysql-tablo-int/' rel='bookmark' title='Permanent Link: MySQL tablo yapılarında sayısal değerlerin yanındaki uzunluk ne işe yarıyor'>MySQL tablo yapılarında sayısal değerlerin yanındaki uzunluk ne işe yarıyor</a><li>MySQL tablo yapılarına baktığımızda tinyint(4) gibi değerler görüyoruz. Ya da...</li></li>
<li><a href='http://www.tankado.com/mysql-insert-delayed/' rel='bookmark' title='Permanent Link: MySQL: INSERT DELAYED'>MySQL: INSERT DELAYED</a><li>MySQL&#8217;in birdiğer güzel özelliği de Insert delayed. Burada yazdığına göre;...</li></li>
<li><a href='http://www.tankado.com/mysql-ile-bir-tablonun-kopyasini-uretmek/' rel='bookmark' title='Permanent Link: MySQL ile bir tablonun kopyasını üretmek'>MySQL ile bir tablonun kopyasını üretmek</a><li>Bir MySQL tablosunun üzerinde denemeler yapmadan önce onu yedeklemelisiniz. Yedek...</li></li>
<li><a href='http://www.tankado.com/php-mysql-javascript-css-cheat-sheets/' rel='bookmark' title='Permanent Link: PHP, MySQL, Javascript, CSS Cheat Sheets'>PHP, MySQL, Javascript, CSS Cheat Sheets</a><li>Cheat Sheet dediği şey belli bir konuyla alakalı &ccedil;ok sık...</li></li>
<li><a href='http://www.tankado.com/the-terminal-server-has-exceeded-the-maximum-number-of-allowed-connections/' rel='bookmark' title='Permanent Link: The terminal server has exceeded the maximum number of allowed connections'>The terminal server has exceeded the maximum number of allowed connections</a><li>Sunucunuza bağlanmaya (RDP) çalıştığınızda bu uyarı mesajını alıyorsanız, sunucunuzun bağlantı...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/tinymy-small-mysql-console/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress ile 404 hatalarını tespit etmek</title>
		<link>http://www.tankado.com/wordpress-icin-404-sayfa-bulunamadi-hatalarini-yakalamak-raporlamak/</link>
		<comments>http://www.tankado.com/wordpress-icin-404-sayfa-bulunamadi-hatalarini-yakalamak-raporlamak/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 03:16:34 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[wordpress 404 hatalarını eposta adresine rapor etmek]]></category>
		<category><![CDATA[wordpress 404 hatalarını tespit etmek]]></category>
		<category><![CDATA[wordpress 404 not found]]></category>

		<guid isPermaLink="false">http://www.tankado.com/?p=964</guid>
		<description><![CDATA[Benim gibi dotclear&#8216;dan wordpress&#8217;e göç etmiş bir blogcu iseniz yeni sitenizdeki bazı URL adreslerinin 404 hatası vermemesi neredeyse mümkün değil. Arama motorlarının indekslemiş olduğu URL adresleri sitenizde karşılık bulmuyorsa başınız biraz dertte demektir. Arama motorları bu adresleri periyodik olarak ziyaret ettikleri için sürekli 404 hataları ile karşılaşacakdır. 404&#8242;lerin ele geçirdiği bir site arama motorlarının gözünde değer [...]


Benzer yazılar: <ol><li><a href='http://www.tankado.com/turkce-wordpress/' rel='bookmark' title='Permanent Link: WordPress Nasıl Türkçeleştirilir'>WordPress Nasıl Türkçeleştirilir</a><li>WordPress.org&#8217;dan ilgilizip zip dosyasını indirip kurulum yaptığınızda wordpress ingilizce olarak...</li></li>
<li><a href='http://www.tankado.com/projedeki-formlary-tespit-etmek/' rel='bookmark' title='Permanent Link: Projedeki formları tespit etmek'>Projedeki formları tespit etmek</a><li>Program projede yer alan formları &ccedil;alışma anında&nbsp;tespit etmek ve onlara...</li></li>
<li><a href='http://www.tankado.com/wordpress-options-permalink-403-forbidden-hatasi/' rel='bookmark' title='Permanent Link: WordPress options-permalink 403 Forbidden Hatası'>WordPress options-permalink 403 Forbidden Hatası</a><li>Windows sunucularda karşılaştığım bu hata .htaccess dosyasından kaynaklanıyor. Eğer internette...</li></li>
<li><a href='http://www.tankado.com/wordpress-erisim-izni-hatasini-gidermek/' rel='bookmark' title='Permanent Link: WordPress erişim izni hatasını gidermek'>WordPress erişim izni hatasını gidermek</a><li>&#8220;Bu sayfaya erişmek için yeterli izniniz yok&#8221; veya ingilizce &#8220;You...</li></li>
<li><a href='http://www.tankado.com/adsense-optimized-wordpress-themes/' rel='bookmark' title='Permanent Link: Adsense Optimized WordPress Themes'>Adsense Optimized WordPress Themes</a><li>Adsense getirisinde reklamların türü, rengi ve yerleşimi önemli bir fark...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Benim gibi <a href="http://dotclear.org/" target="_blank">dotclear</a>&#8216;dan wordpress&#8217;e göç etmiş bir blogcu iseniz yeni sitenizdeki bazı URL adreslerinin <a href="http://tr.wikipedia.org/wiki/HTTP_404" target="_blank">404 hatası </a>vermemesi neredeyse mümkün değil. Arama motorlarının indekslemiş olduğu URL adresleri sitenizde karşılık bulmuyorsa başınız biraz dertte demektir. Arama motorları bu adresleri periyodik olarak ziyaret ettikleri için sürekli 404 hataları ile karşılaşacakdır. 404&#8242;lerin ele geçirdiği bir site arama motorlarının gözünde değer kaybeder.</p>
<p>WordPress altyapısını kullanan sitenizin derinliklerindeki geçersiz URL adresleri haberiniz olmayan birçok 404 hatasını üretmektedir. Şahsen uzunca bir süre farkında olmadığım ve aslında kolayca tespit de edilemeyecek bu durumu düzeltmek biraz zamanımı aldı doğrusu. Bu sorunu gidermek çin aşağıdaki PHP kodlarını yazdım.</p>
<p>Kodları wordpress temanıza ekleyerek siz de kullanabilirsiniz. Kodlar sitenizde var olmayan bir adres talep edildiğinde, ilgili adresi ve isteğin kimden geldiği gibi bilgileri eposta adresinize göndererek raporlayacaktır. Bundan sonra iş gelen raporlara göre kırık bağlantıları onarmaya geliyor.  Bir hafta içerisinde posta kutumda 2000&#8242;e yakın rapor birikti.<span id="more-964"></span></p>
<p>Genel olarak kırık bağlantılar ile ilgili karşılaştığım sorunlar, arama motorlarında kayıtlı eski formatlı bağlantıları saymazsak; dosya adı ile çağrı yapılan dosya adının büyük/küçük harf duyarlılığından dolayı farklılık göstermesinden kaynaklanan geçersiz bağlantılar (örneğin FancyZoom.js ismi ile sunucuda kayıtlı bir dosyayı &#8216;fancyzoom.js&#8217; ismiyle çağırırsanız linux sunucu bu dosyayı bulamaz), birşekilde arşivden silinmiş çok sayıda resim dosyası ve az sayıda arşiv dosyası tespit ettim.Ayrıca eski biçimli kırık bağlantıları da fark edip <strong>functions.php</strong> içine yerleştirdiğim yönlendirme kodları ile yeni adreslerine yönlenmelerini sağladım.</p>
<p>Kodları kullanmak için, aşağıdaki kodu tema dizininizde yeralan <strong>404.php</strong> isimli dosyanin içerisine ekleyin ve kaydedin. Eğer tema dizininizde <strong>404.php</strong> isminde bir dosya yok ise masaüstünüzde <strong>404.php</strong> isimde bir dosya oluşturarak aşağıdaki kodları içerisine yapıştırın ve FTP&#8217;deki tema dizininize yükleyin.</p>
<p><br class="spacer_" /></p>
<p>
<pre class="brush: php;">
&lt;?php
	# ------------------------------------------------------------
	# Disclamier about 404 page reporting codes
	#
	# TUR: 404 hatalarının eposta adresinize raporlanmasını
	# istemiyorsanız lütfen aşağıdaki 'CODE BEGIN' ve 'CODE END'
	# etiketleri arasındaki kod satırlarını kapatın veya silin.
	#
	# ENG: If you dont want to report brokent links please,
	# comment codes or delete lines between 'CODE BEGIN'
	# and 'CODE END' labels.
	#
	# ------------------------------------------------------------

	# *********************
	# CODE BEGIN
	# *********************

	function currentPageURL() {
		$pageURL = 'http';
		if ($_SERVER[&quot;HTTPS&quot;] == &quot;on&quot;) {$pageURL .= &quot;s&quot;;}
			$pageURL .= &quot;://&quot;;
		if ($_SERVER[&quot;SERVER_PORT&quot;] != &quot;80&quot;) {
			$pageURL .= $_SERVER[&quot;SERVER_NAME&quot;].&quot;:&quot;.$_SERVER[&quot;SERVER_PORT&quot;].$_SERVER[&quot;REQUEST_URI&quot;];
		} else {
			$pageURL .= $_SERVER[&quot;SERVER_NAME&quot;].$_SERVER[&quot;REQUEST_URI&quot;];
		}
		return $pageURL;
	}

	// mail header
	$site = parse_url(get_bloginfo('url'), PHP_URL_HOST);
	$from = 'noreply@'.str_replace('www.', '', $site);
	$admin_email = get_bloginfo('admin_email');
	$headers = &quot;MIME-Version: 1.0\nFrom: $from &lt;$from&gt; \nContent-Type: text/html; charset=\&quot;&quot;.get_option('blog_charset').&quot;\&quot;\n&quot;;

	// mail body
	$tm = time();
	$mail_body = &quot;Dikkat (Warning): Sayfa bulunamadı (&lt;b&gt;404 detected&lt;/b&gt;)&lt;br&gt;&lt;br&gt;&quot;;
	$mail_body .= &quot;BUGGY_URL: &lt;b&gt;&quot;. currentPageURL() .&quot;&lt;/b&gt;&lt;br&gt;&lt;br&gt;&quot;;
	$mail_body .= &quot;TIMESTAMP: &quot; . date('l jS \of F Y h:i:s A', $tm) . &quot;, Timestamp=&quot;. $tm . &quot;&lt;br&gt;&quot;;
	$mail_body .= &quot;REMOTE_ADDR: &quot;. $_SERVER['REMOTE_ADDR'] . &quot;&lt;br&gt;&quot;;
	$mail_body .= &quot;REMOTE_HOST: &quot;. $_SERVER['REMOTE_HOST'] . &quot;&lt;br&gt;&quot;;
	$mail_body .= &quot;HTTP_REFERER: &quot;. $_SERVER['HTTP_REFERER'] . &quot;&lt;br&gt;&quot;;
	$mail_body .= &quot;HTTP_USER_AGENT: &quot;. $_SERVER['HTTP_USER_AGENT'];

	wp_mail( $admin_email, &quot;{{$site}} 404 Detected&quot;, $mail_body, $headers);

	# *********************
	# CODE END
	# *********************
?&gt;
&lt;?php get_header(); ?&gt;
&lt;div id=&quot;main&quot;&gt;
	&lt;div id=&quot;content&quot;&gt;
		&lt;center&gt;
		&lt;h2 class=&quot;center&quot; style=&quot;background-color: #FFFFE0; display: inline; padding: 10px; border: 1px solid #FFCCCC; width:500px&quot;&gt;
			Üzgünüm &lt;span style=&quot;color: #CC0000&quot;&gt;404&lt;/span&gt; - &lt;strong&gt;Sayfa Bulunamadı&lt;/strong&gt;
		&lt;/h2&gt;
		&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;p&gt;
		Değerli ziyaretçimiz, site yöneticisi bu durum hakkında haberdar edilmiştir.&lt;br&gt;&lt;br&gt; Eğer adresin doğruluğundan emin iseniz bir süre sonra tekrar ziyaret ediniz.&lt;/p&gt;
		&lt;/center&gt;
	&lt;/div&gt;
	&lt;div id=&quot;sidebar&quot;&gt;
	&lt;?php get_sidebar(); ?&gt;
	&lt;/div&gt;
&lt;/div&gt;
&lt;div class='c'&gt;&lt;/div&gt;
&lt;?php get_footer(); ?&gt;
</pre>
</p>
<p><br class="spacer_" /></p>
<p>Kod ile ilgili biraz daha teknik bilgi vermek istiyorum. Kodda yer alan curPageURL() fonksiyonu ziyaretçinin istek yaptığı URL&#8217;yi tespit etmeyi sağlıyor.</p>
<p><strong>get_bloginfo(&#8216;admin_email&#8217;)</strong> fonksiyonu ile WordPress&#8217;de kayıtlı site yöneticisinin e-posta adresi getiriliyor. (Eğer hiç rapor almıyorsanız ki bu pek mümkün değil, <em>[en iyi ihtimalle /favicon.ico dosyanız yoksa bile birçok 404 durumu oluşur]</em> muhtemelen <strong>WordPress->Ayarlar</strong> sayfanıza girdiğiniz yönetici e-posta adresiniz farklıdır.</p>
<p>PHP&#8217;nin <strong>$_SERVER</strong> isimli ön tanımlı dizi değişkeni ile ziyaretçinin kırık sayfamıza hangi adresten geldiği (HTTP_REFERER), IP adresi ve kullandığı tarayıcının ismi alınarak bir rapor haline getiriliyor.</p>
<p>Son olarak <strong>wp_mail</strong> isimli WordPress fonksiyonu ile raporun gönderilme işlemi gerçekleşiyor.</p>
<p>WordPress kırık bir adresle karşılaştığında tema dizininde yer alması gereken <strong>404.php</strong> isimli dosyayı otomatik olarak çalıştırır. Ben kodlarda ziyaretçiye gösterilmesi için kendime göre bir 404 hata mesaj ekranı oluşturdum, siz burayı kendinize göre değiştirebilirsiniz. <strong>get_header()</strong>, <strong>get_sidebar()</strong> ve <strong>get_footer()</strong> fonksiyonları WordPress&#8217;in HTML sayfa içeriğimizi oluşturması için gereken komutlar.</p>
<p>Umarım faydalı olur.</p>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/turkce-wordpress/' rel='bookmark' title='Permanent Link: WordPress Nasıl Türkçeleştirilir'>WordPress Nasıl Türkçeleştirilir</a><li>WordPress.org&#8217;dan ilgilizip zip dosyasını indirip kurulum yaptığınızda wordpress ingilizce olarak...</li></li>
<li><a href='http://www.tankado.com/projedeki-formlary-tespit-etmek/' rel='bookmark' title='Permanent Link: Projedeki formları tespit etmek'>Projedeki formları tespit etmek</a><li>Program projede yer alan formları &ccedil;alışma anında&nbsp;tespit etmek ve onlara...</li></li>
<li><a href='http://www.tankado.com/wordpress-options-permalink-403-forbidden-hatasi/' rel='bookmark' title='Permanent Link: WordPress options-permalink 403 Forbidden Hatası'>WordPress options-permalink 403 Forbidden Hatası</a><li>Windows sunucularda karşılaştığım bu hata .htaccess dosyasından kaynaklanıyor. Eğer internette...</li></li>
<li><a href='http://www.tankado.com/wordpress-erisim-izni-hatasini-gidermek/' rel='bookmark' title='Permanent Link: WordPress erişim izni hatasını gidermek'>WordPress erişim izni hatasını gidermek</a><li>&#8220;Bu sayfaya erişmek için yeterli izniniz yok&#8221; veya ingilizce &#8220;You...</li></li>
<li><a href='http://www.tankado.com/adsense-optimized-wordpress-themes/' rel='bookmark' title='Permanent Link: Adsense Optimized WordPress Themes'>Adsense Optimized WordPress Themes</a><li>Adsense getirisinde reklamların türü, rengi ve yerleşimi önemli bir fark...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/wordpress-icin-404-sayfa-bulunamadi-hatalarini-yakalamak-raporlamak/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Summer of Code: PHP-Based Docbook renderer</title>
		<link>http://www.tankado.com/google-summer-of-code-php-based-docbook-renderer/</link>
		<comments>http://www.tankado.com/google-summer-of-code-php-based-docbook-renderer/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 20:28:24 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[Açık Kaynak]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[İndirme]]></category>

		<guid isPermaLink="false">http://tank2/?p=252</guid>
		<description><![CDATA[Burada PhD adındaki,  Docbook formatlı dökümanları chm ve pdf gibi daha taşınabilir ve yaygın formatlara çeviren bir proje yer alıyor. Şimdiden PHP için oldukça kapsamlı bir başvuru klavuzu chm formatına çevrilmiş ve indirilmeye hazır. PHP programcılarının mutlaka elinin altında hazır olması gereken bir klavuz. Siteden indirirken sorun olursa buradan da indirebilirsiniz. Benzer yazılar: Eğitici Bilgisayar [...]


Benzer yazılar: <ol><li><a href='http://www.tankado.com/eitici-bilgisayar-formator-oretmen-adayy-secme-synavy-sorulary/' rel='bookmark' title='Permanent Link: Eğitici Bilgisayar Formatör Öğretmen Adayı Seçme Sınavı Soruları'>Eğitici Bilgisayar Formatör Öğretmen Adayı Seçme Sınavı Soruları</a><li>17 Haziran 2006 tarihinde Ankara&#8217;da EğiTek (Milli Eğtiim Bakanlığı Eğitim...</li></li>
<li><a href='http://www.tankado.com/modern-css-based-html-forms/' rel='bookmark' title='Permanent Link: Modern CSS Based HTML Forms'>Modern CSS Based HTML Forms</a><li>/www.smashingmagazine.com adresinde aşağıda örneklerini görebielceğiniz oldukça modern CSS formlar ve...</li></li>
<li><a href='http://www.tankado.com/google-trends/' rel='bookmark' title='Permanent Link: Google Trends'>Google Trends</a><li>Google Trends internette en&ccedil;ok aranan ve heberlerde en&ccedil;ok ge&ccedil;en anahtar...</li></li>
<li><a href='http://www.tankado.com/pad-portable-application-description/' rel='bookmark' title='Permanent Link: PAD: Portable Application Description'>PAD: Portable Application Description</a><li>PAD (Portable Application Description), ADP (Association of Shareware Professionals) tarafından...</li></li>
<li><a href='http://www.tankado.com/google-kullanyyoruz-ama-ne-icin/' rel='bookmark' title='Permanent Link: Google kullanıyoruz, ama ne için.'>Google kullanıyoruz, ama ne için.</a><li>2005&#8242;de&nbsp;google&#8217;da&nbsp;en fazla&nbsp;aranan kelimeler. Yurdum internet kullanıcılarının profilini g&ouml;rmek i&ccedil;in iyi...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://loudi-soc.blogspot.com/">Burada</a> PhD adındaki,  <strong>Docbook </strong>formatlı dökümanları <strong>chm </strong>ve <strong>pdf </strong>gibi daha taşınabilir ve yaygın formatlara çeviren bir proje yer alıyor. <strong>Şimdiden PHP için oldukça kapsamlı bir başvuru klavuzu chm formatına çevrilmiş ve indirilmeye hazır</strong>. PHP programcılarının mutlaka elinin altında hazır olması gereken bir klavuz. Siteden indirirken sorun olursa <a href="http://rapidshare.com/files/120634386/php_manual_en.chm.html">buradan </a>da indirebilirsiniz.</p>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/eitici-bilgisayar-formator-oretmen-adayy-secme-synavy-sorulary/' rel='bookmark' title='Permanent Link: Eğitici Bilgisayar Formatör Öğretmen Adayı Seçme Sınavı Soruları'>Eğitici Bilgisayar Formatör Öğretmen Adayı Seçme Sınavı Soruları</a><li>17 Haziran 2006 tarihinde Ankara&#8217;da EğiTek (Milli Eğtiim Bakanlığı Eğitim...</li></li>
<li><a href='http://www.tankado.com/modern-css-based-html-forms/' rel='bookmark' title='Permanent Link: Modern CSS Based HTML Forms'>Modern CSS Based HTML Forms</a><li>/www.smashingmagazine.com adresinde aşağıda örneklerini görebielceğiniz oldukça modern CSS formlar ve...</li></li>
<li><a href='http://www.tankado.com/google-trends/' rel='bookmark' title='Permanent Link: Google Trends'>Google Trends</a><li>Google Trends internette en&ccedil;ok aranan ve heberlerde en&ccedil;ok ge&ccedil;en anahtar...</li></li>
<li><a href='http://www.tankado.com/pad-portable-application-description/' rel='bookmark' title='Permanent Link: PAD: Portable Application Description'>PAD: Portable Application Description</a><li>PAD (Portable Application Description), ADP (Association of Shareware Professionals) tarafından...</li></li>
<li><a href='http://www.tankado.com/google-kullanyyoruz-ama-ne-icin/' rel='bookmark' title='Permanent Link: Google kullanıyoruz, ama ne için.'>Google kullanıyoruz, ama ne için.</a><li>2005&#8242;de&nbsp;google&#8217;da&nbsp;en fazla&nbsp;aranan kelimeler. Yurdum internet kullanıcılarının profilini g&ouml;rmek i&ccedil;in iyi...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/google-summer-of-code-php-based-docbook-renderer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>max_user_connections hatası almak için güzel bir yol söyleyebilirim</title>
		<link>http://www.tankado.com/max_user_connections-hatasy-almak-icin-guzel-bir-yol-soyleyebilirim/</link>
		<comments>http://www.tankado.com/max_user_connections-hatasy-almak-icin-guzel-bir-yol-soyleyebilirim/#comments</comments>
		<pubDate>Tue, 20 May 2008 13:58:42 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tank2/?p=251</guid>
		<description><![CDATA[PHP kodlarken veritabanı sorgularında kolaylık sağlasın diye SQL c&#252;mlemizi alıp sorgu sonucunu d&#246;nd&#252;ren <strong>execSQL</strong>, <strong>execQuery </strong>vs gibi fonksiyonlar tanımlayıp kullanırız.&#160; B&#246;ylece her seferinde sunucu bağlantısı ve veritabanı se&#231;imi ile uğraşmaktan kurtulmuş oluruz. Tabi kurallara uyan tertipli her programcı gibi fonksiyonun sonunda da <strong>mysql_close</strong> ile a&#231;tığımız bağlantıyı sonlandırmayı unutmayız. Aslında bazen unutmalıyız. Peki neden?


Benzer yazılar: <ol><li><a href='http://www.tankado.com/sql-icin-ayrylmy-kelime-kontrolu/' rel='bookmark' title='Permanent Link: SQL için ayrılmış kelime kontrolü'>SQL için ayrılmış kelime kontrolü</a><li>SQL dili her nekadar bir standartta olsa da MySQL, Oracle...</li></li>
<li><a href='http://www.tankado.com/web-sayfasynyn-ekran-goruntusunu-kaydetmek/' rel='bookmark' title='Permanent Link: Delphi ile web sayfasının ekran görüntüsünü almak'>Delphi ile web sayfasının ekran görüntüsünü almak</a><li>About.com bir&ccedil;ok konuda olduğu gibi Delphi'de yazılım geliştirme konularıyla ilgili...</li></li>
<li><a href='http://www.tankado.com/delphi-canvas-does-not-allow-drawing-multi-thread-safe/' rel='bookmark' title='Permanent Link: Delphi: Canvas does not allow drawing Hatası'>Delphi: Canvas does not allow drawing Hatası</a><li>&#8220;Canvas does not allow drawing&#8221; hatası tuval çizime izin vermiyor...</li></li>
<li><a href='http://www.tankado.com/microsoft-access-permissions-explorer/' rel='bookmark' title='Permanent Link: Microsoft Access Permissions Explorer'>Microsoft Access Permissions Explorer</a><li>PermExpl, Microsoft Access veritabanı (mdb) gibi Microsoft Jet veritabanını motorunu...</li></li>
<li><a href='http://www.tankado.com/wordpress-options-permalink-403-forbidden-hatasi/' rel='bookmark' title='Permanent Link: WordPress options-permalink 403 Forbidden Hatası'>WordPress options-permalink 403 Forbidden Hatası</a><li>Windows sunucularda karşılaştığım bu hata .htaccess dosyasından kaynaklanıyor. Eğer internette...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>PHP kodlarken veritabanı sorgularında kolaylık sağlasın diye SQL cümlemizi alıp sorgu sonucunu döndüren <strong>execSQL</strong>, <strong>execQuery </strong>vs gibi fonksiyonlar tanımlayıp kullanırız.  Böylece her seferinde sunucu bağlantısı ve veritabanı seçimi ile uğraşmaktan kurtulmuş oluruz. Tabi kurallara uyan tertipli her programcı gibi fonksiyonun sonunda da <strong>mysql_close</strong> ile açtığımız bağlantıyı sonlandırmayı unutmayız. Aslında bazen unutmalıyız. Peki neden?<br />
<span id="more-251"></span><br />
Benim kullandığım kod şuna benziyor:<br />
<span style="font-family: Courier New;"><strong><br />
function </strong>execSQL($sql) {<br />
<strong>include</strong>(&#8216;config.php&#8217;);<br />
$conn = <strong>mysql_connect</strong>($DB_HOST, $DB_USERNAME, $DB_PASSWORD);<br />
$db_selected = <strong>mysql_select_db</strong>($DB_DATABASE_NAME, $conn);<br />
$result = <strong>mysql_query</strong>($sql, $conn);<br />
<strong>mysql_close</strong>($conn);<br />
<strong>return </strong>$result;<br />
}</span></p>
<p><span style="font-family: Courier New;"><span style="font-family: Arial;"><span style="font-family: Courier New;">B</span>unun gibi bir fonksiyonun kullanıldığı ve SQL sorgularının yoğun olarak çalıştırıldığı bir proje üzerinde çalışıyorsanız şöyle bir hata mesajıyla karşılaşmanız fazla uzun sürmez:</span></span></p>
<p><span style="font-family: Courier New;"><span style="color: #ff0000;"> User kullanici_adi has already more than &#8216;max_user_connections&#8217; active connections</span></span></p>
<p><span style="font-family: Courier New;"> <span style="font-family: Arial;">Bu mesajda veritananına PHP&#8217;nin &#8216;<strong><span style="font-family: Courier New;">max_user_connections</span></strong>&#8216; ayarı ile belirlenenden daha fazla sayıda bağlantı açıldığı belirtiliyor.</span></span></p>
<p><span style="font-family: Courier New;"><span style="font-family: Arial;"> Benim örneğimde bazı yoğun sayfalar 100&#8242;ün üzerinde farklı sorgu çalıştırdığından kısa süreler içinde veritabanı sunucusuna onbillerce bağlantı açılıp kapatılıyordu. Sorun aslında PHP&#8217;nin ve  <strong>mysql_connect</strong> fonksiyonunun yeni bağlantı açma davranışını bilmemekten geçiyor.</span></span></p>
<p><span style="font-family: Courier New;"><span style="font-family: Arial;"><a href="http://tr2.php.net/manual/en/function.mysql-connect.php">PHP</a>&#8216;nin sayfasında da belirtildiği üzere <strong>mysql_connect </strong>daha önceden aynı argümanlarla (<span style="font-family: Courier New;">hostname, username</span>) açılmış bir bağlantı varsa yeni bir bağlantı oluşturmayarak mevcut olanı kullanıyor. Ancak siz özellikle mysql_close ile bağlantıyı kapatmışsanız mutlaka sunucuya yeni bir bağlantı kuruyor.</span></span></p>
<p><span style="font-family: Courier New;"><span style="font-family: Arial;">Bağlantıları kapatmamak ilk bakışta iyi bir davranış olarak gözükmese de PHP&#8217;de bunun dez avantaj oluşturacağı durumlar pek fazla değil. <a href="http://tr2.php.net/manual/en/function.mysql-connect.php">Burada </a>yazdığına göre bir PHP script&#8217;inin çalışması bittiğinde tüm açılmış bağlantılar zaten otomatik olarak kapatılıp yok ediliyor.</span></span></p>
<p><span style="font-family: Courier New;"><span style="font-family: Arial;">Sorgu çalıştırmanın dışında icra süresi uzun olan kodlarınız varsa <strong>mysql_close</strong> ile kapatmak iyi bir fikir. <span style="color: #3366ff;"><strong>Ama bunun dışında mysql_close kullanmayı pek önermiyorum. </strong></span></span></span></p>
<p><span style="font-family: Courier New;"><span style="font-family: Arial;"><span style="font-family: Courier New;"><strong>mysql_close</strong></span> kullanıp kullanmamayı anlık ortalama sayfa isteği ve kodlarda kullandığınız sorgu cümleleri ile <strong>max_user_connections</strong> arasında kuracağınız bir ilişkiyle belirleyebilirsiniz.</span></span></p>
<p><span style="font-family: Courier New;"><span style="font-family: Arial;"><strong>Yazan: </strong>Tankado<br />
</span> </span></p>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/sql-icin-ayrylmy-kelime-kontrolu/' rel='bookmark' title='Permanent Link: SQL için ayrılmış kelime kontrolü'>SQL için ayrılmış kelime kontrolü</a><li>SQL dili her nekadar bir standartta olsa da MySQL, Oracle...</li></li>
<li><a href='http://www.tankado.com/web-sayfasynyn-ekran-goruntusunu-kaydetmek/' rel='bookmark' title='Permanent Link: Delphi ile web sayfasının ekran görüntüsünü almak'>Delphi ile web sayfasının ekran görüntüsünü almak</a><li>About.com bir&ccedil;ok konuda olduğu gibi Delphi'de yazılım geliştirme konularıyla ilgili...</li></li>
<li><a href='http://www.tankado.com/delphi-canvas-does-not-allow-drawing-multi-thread-safe/' rel='bookmark' title='Permanent Link: Delphi: Canvas does not allow drawing Hatası'>Delphi: Canvas does not allow drawing Hatası</a><li>&#8220;Canvas does not allow drawing&#8221; hatası tuval çizime izin vermiyor...</li></li>
<li><a href='http://www.tankado.com/microsoft-access-permissions-explorer/' rel='bookmark' title='Permanent Link: Microsoft Access Permissions Explorer'>Microsoft Access Permissions Explorer</a><li>PermExpl, Microsoft Access veritabanı (mdb) gibi Microsoft Jet veritabanını motorunu...</li></li>
<li><a href='http://www.tankado.com/wordpress-options-permalink-403-forbidden-hatasi/' rel='bookmark' title='Permanent Link: WordPress options-permalink 403 Forbidden Hatası'>WordPress options-permalink 403 Forbidden Hatası</a><li>Windows sunucularda karşılaştığım bu hata .htaccess dosyasından kaynaklanıyor. Eğer internette...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/max_user_connections-hatasy-almak-icin-guzel-bir-yol-soyleyebilirim/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP ile garantili mail göndermek</title>
		<link>http://www.tankado.com/php-ile-gercekten-mail-gondermek/</link>
		<comments>http://www.tankado.com/php-ile-gercekten-mail-gondermek/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 20:40:01 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tank2/?p=250</guid>
		<description><![CDATA[PHP'nin resmi sayfasında mail komutunun kullanımı hakkında şu bilgiler yer alıyor:<br /><br />Kullanımı:<br /><br /><font face="Courier New">bool <strong>mail&#160; </strong>( string $to&#160; , string $subject&#160; , string $message&#160; [, string $additional_headers&#160; [, string $additional_parameters&#160; ]] )</font><em><br /></em><br />Mail komutunda kullanılması zorunlu parametreler:<br />
 <ul>     <li><font face="Courier New"><strong>$to</strong></font>: PHP ile mail g&#246;ndereceğiniz kişinin adresi. Tipi string'dir.</li>     <li><font face="Courier New"><strong>$subject</strong>:</font> Mail'in konusu. Tipi string'dir.</li>     <li><font face="Courier New"><strong>$message</strong><strong>: </strong></font>G&#246;ndermek istediğiniz mail'in i&#231;eriği. Tipi string'dir. </li> </ul> <br /><strong>Not: </strong>String tipine T&#252;rk&#231;e'mizde bazen <em>katar</em> bazen de karakter dizgesi adı verilmektedir.<br /><br />D&#246;rd&#252;nc&#252; ve beşinci parametrelerin kullanılması zorunlu olmamakla birlikte g&#246;revlerini kısaca s&#246;yle a&#231;ıklayabiliriz.<br /><br />
 <ul>     <li><font face="Courier New"><strong>$additional_headers</strong></font>: Bu kısımda, g&#246;nderen adresi, karbon kopya (CC) adresi ve gizli karbon kopya (BCC) adresi gibi adresler belirtilebilir. CC adresi, g&#246;nderilen mailin bir kopyasının da (karbon kopya) başka bir adrese g&#246;nderilmesini sağlar. CC alıcısı gelen mail'in başlık bilgilerinden mail'in asıl alıcısının kim olduğunu g&#246;rebilir.&#160; BCC, CC ye benzemekle birlikte, tek farkı, asıl alıcı ile CC alıcısının mail'in bir kopyasının da BCC adresine g&#246;nderildiğini bilememesidir. Mail sunucusu başlık bilgilerine bu adresi dahil etmez. Bu kısımın da veri tipi String'dir.</li>     <li><font face="Courier New"><strong>$additional_parameters</strong></font>: SendMail yazılımına parametre yollamak i&#231;in kullanılıyormuş. Ayrıntısını şimdilik bilemeyeceğim.<br /></li> </ul>


Benzer yazılar: <ol><li><a href='http://www.tankado.com/get_string_between-yki-ifadenin-arasyndaki-ifadeyi-getirmek/' rel='bookmark' title='Permanent Link: get_string_between: İki ifadenin arasındaki ifadeyi getirmek'>get_string_between: İki ifadenin arasındaki ifadeyi getirmek</a><li>Aşağıdaki basit PHP fonksiyonu iki ifade arasında yer alan başka...</li></li>
<li><a href='http://www.tankado.com/delphi-ile-html-etiketlerini-ayyklamak/' rel='bookmark' title='Permanent Link: Delphi ile HTML etiketlerini ayıklamak'>Delphi ile HTML etiketlerini ayıklamak</a><li>Bir kaynak koddan HTML&nbsp;etiketlerini ayıklamak i&ccedil;in bu fonksiyon kullanılabilir....</li></li>
<li><a href='http://www.tankado.com/komut-satyry-e-posta-gonderici/' rel='bookmark' title='Permanent Link: Komut Satırı E-posta Gönderici'>Komut Satırı E-posta Gönderici</a><li>Ecnebi dostlarımız ve google i&ccedil;in diğer adıyla command line mail...</li></li>
<li><a href='http://www.tankado.com/ajax-generic-form-parser/' rel='bookmark' title='Permanent Link: AJAX generic form parser'>AJAX generic form parser</a><li>Burada esasında AJAX'lı uygulamalarda zamandan ve koddan tasarruf sağlasın diye...</li></li>
<li><a href='http://www.tankado.com/php-ile-tc-kimlik-numarasini-dogrulamak/' rel='bookmark' title='Permanent Link: PHP ile TC Kimlik Numarasını Doğrulamak'>PHP ile TC Kimlik Numarasını Doğrulamak</a><li>Kullanıcıdan web form aracılığıyla bazı bilgiler almak gerektiğinde bilgileri doğrulama...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>PHP&#8217;nin resmi sayfasında mail komutunun kullanımı hakkında şu bilgiler yer alıyor:</p>
<p>Kullanımı:</p>
<p><span style="font-family: Courier New;">bool <strong>mail </strong>( string $to  , string $subject  , string $message  [, string $additional_headers  [, string $additional_parameters  ]] )</span><em><br />
 </em><br />
 Mail komutunda kullanılması zorunlu parametreler:</p>
<ul>
<li><span style="font-family: Courier New;"><strong>$to</strong></span>: PHP ile mail göndereceğiniz kişinin adresi. Tipi string&#8217;dir.</li>
<li><span style="font-family: Courier New;"><strong>$subject</strong>:</span> Mail&#8217;in konusu. Tipi string&#8217;dir.</li>
<li><span style="font-family: Courier New;"><strong>$message</strong><strong>: </strong></span>Göndermek istediğiniz mail&#8217;in içeriği. Tipi string&#8217;dir.</li>
</ul>
<p><strong>Not: </strong>String tipine Türkçe&#8217;mizde bazen <em>katar</em> bazen de karakter dizgesi adı verilmektedir.</p>
<p>Dördüncü ve beşinci parametrelerin kullanılması zorunlu olmamakla birlikte görevlerini kısaca söyle açıklayabiliriz.</p>
<ul>
<li><span style="font-family: Courier New;"><strong>$additional_headers</strong></span>: Bu kısımda, gönderen adresi, karbon kopya (CC) adresi ve gizli karbon kopya (BCC) adresi gibi adresler belirtilebilir. CC adresi, gönderilen mailin bir kopyasının da (karbon kopya) başka bir adrese gönderilmesini sağlar. CC alıcısı gelen mail&#8217;in başlık bilgilerinden mail&#8217;in asıl alıcısının kim olduğunu görebilir.  BCC, CC ye benzemekle birlikte, tek farkı, asıl alıcı ile CC alıcısının mail&#8217;in bir kopyasının da BCC adresine gönderildiğini bilememesidir. Mail sunucusu başlık bilgilerine bu adresi dahil etmez. Bu kısımın da veri tipi String&#8217;dir.</li>
<li><span style="font-family: Courier New;"><strong>$additional_parameters</strong></span>: SendMail yazılımına parametre yollamak için kullanılıyormuş. Ayrıntısını şimdilik bilemeyeceğim.</li>
</ul>
<p><span id="more-250"></span><br />
 En basit şekliyle mail komutunun kullanımı şu şekilde:</p>
<p><span style="font-family: Courier New;"><strong>mail</strong>(&#8216;ensei@tankado.com&#8217;, &#8216;Merhaba dostum&#8217;, &#8216;Beraber, 22 şubatta Recep İvediği izleyeceğiz degil mi?&#8217;);</span></p>
<p><span style="color: #000080;">http://tr2.php.net/manual/en/function.mail.php (<em>PHP nin resmi sayfası</em>)</span></p>
<p>HTML içerikli mail ve gönderilen mail&#8217;e dosya ekleme ile ilgili örnekler PHP.net&#8217;in yukarıdaki adresteki sayfasında var.</p>
<p><span style="color: #ff6600;"><span style="text-decoration: underline;"><strong>mail() komutuna ait örnek kodlar yüksek ihtimalle sunucunuzda çalışmayacak</strong></span></span>. Üzgünüm. Çalışmamasının sebebi paylaşımlı sunucunuzun güvenlik ayarlarının buna izin vermemesi. İzin verseydi mail spamcıları bayram ederdi, değilmi. Çünkü basitçe bir döngü ile çok sayıda mail göndermek mümkün olabilirdi. Ek olarak <strong>SendMail </strong>yazılımına da bu şekilde kolayca yük bindirmek, sunucunun IP adresini antispamlarin kara listesine aldirmak kolay olurdu. Bunun olması, aynı sunucuda binlerce domain&#8217;in barındırıldığı paylaşımlı (Shared) hostinglerde,  birçok siteyi olumsuz etkilerdi.</p>
<p><strong>Not</strong>: Sunucunuzun antispam kara listesinde olup olmadığını <span style="color: #0000ff;"><span style="text-decoration: underline;">dnsstuff.com</span></span> adresindeki &#8220;Spam Database Lookup&#8221; formundan sorgulayabiliyorsunuz.</p>
<p>PHP ile gönderdiğiniz Mail&#8217;lerin karşıya ulaşmamasının bir başka nedeni de, mail&#8217;in geldiği IP adresi ile gönderen adresin <span style="color: #ff6600;"><strong>alan adinin uyusmamasi.</strong></span></p>
<p>Ornegin; mail&#8217;i gönderen php scripti <strong>194.27.18.27</strong> IP adresli bilgisayarda calisiyor olsun. Gönderen  adresi (<em>from</em>) &#8216;ensei@tankado.com&#8217;, karşı tarafın adresi de (<em>to</em>) &#8216;tankado@<strong>yahoo.com</strong>&#8216; olsun. Yahoo bir DNS sorgusu calistirarak<strong> tankado.com</strong>&#8216;un IP adresinin 194.27.18.27 olmadigini yani gelen mail&#8217;in gerçekten de tankado.com sunucusundan gönderilmediğini kolayca anlayabilecektir. Sonuçta Yahoo bu mesajı ya bulk&#8217;a atar veya geri dönderir. (Eğer sender adres belirtmişse mesaj bu adrese geri gelir)<em> </em></p>
<p><em> </em><strong>Not</strong>: alıcısına ulaşmayan e-posta&#8217;lar sahibine geri gönderilir. Tıpkı gerçek mektuplarda olduğu gibi elektronik mektuplarda da işleyiş bu şekildedir. Yeterki doğru bir gönder adresi olsun.</p>
<p>Sadede gelirsem, php mail&#8217;lerinin gecerli bir mail hesabi uzerinden gönderilmesi en sağlıklı yöntemdir. Sunucuda gecerli bir adres kullanmakta yetmez o adresin sahibi olduğunu sunucuya kanıtlamanız gerekir. Bunu da kullandığınız mail adresinin parolası ile sunucuda mail gönderim (<strong>smtp</strong>) oturumu açarak yapabilirsiniz. Aksi durumda sunucuda host edilen herhangi bir domain&#8217;e ait mail adresini de kullanabilecektiniz. Ama yüksek ihtimalle sunucunuzun konfigürasyonu buna izin vermiyor.</p>
<p>Aslında size garantili olarak mail gönderebilmek için aşağıdakiler gerekli ve yeterli.</p>
<ol>
<li>Herhangi bir <strong>SMTP </strong>mailer script&#8217;i.</li>
<li>Bir eposta hesabi ve parolası.(ensei@tankado.com, parola: vn7360nv736)</li>
<li>Epostamızın kayıtlı olduğu sunucunun IP adresi. (ping tankado.com)</li>
</ol>
<p><strong><br />
 Bazı SMTP Mailer scriptleri:</strong></p>
<ol>
<li><span style="color: #0000ff;">http://xpertmailer.sourceforge.net/ </span>(<em>SSL desteği ile Gmail hesaplarınızı da kullanabilirsiniz)</em></li>
<li><span style="color: #0000ff;">http://sourceforge.net/projects/phpmailer</span> (<em>SSL desteği ile Gmail hesaplarınızı da kullanabilirsiniz</em>)</li>
<li><span style="color: #0000ff;">http://mohanjith.net/SMTPMailer/</span></li>
<li><span style="color: #0000ff;">http://email.about.com/od/emailprogrammingtips/qt/et073006.htm</span> (<em>PEAR Mail gerektirir</em>)</li>
<li><span style="color: #0000ff;">http://www.swiftmailer.org/</span></li>
</ol>
<p><br class="spacer_" /></p>
<p>Aşağıdaki örnekte <a title="PHPMailer" href="http://phpmailer.worxware.com/"><strong>phpmailer</strong></a>&#8216;i kullandım. Gerekli adres ve parola bilgilerini değiştirerek siz de kullanabilirsiniz. Bu script hosting&#8217;imizin mail sunucusuna bağlanıyor, mail ve parolamızla giriş yapıyor ve $to adresine mesajımızın gönderilmesini söylüyor.<span class="Code"></p>
<pre>
</pre>
<pre class="brush: php;">
require 'class.phpmailer.php';
require 'class.pop3.php';
$pop = new POP3();
$pop-&gt;Authorise('pop.tankado.com', 110, 30, 'ensei@tankadocom', 'vn736Onv736′, 1);
$mail = new PHPMailer();
$mail-&gt;IsSMTP();
$mail-&gt;SMTPDebug = 2;
$mail-&gt;IsHTML(false);
$mail-&gt;Host     = 'tankado.com';
$mail-&gt;From     = 'ensei@tankado.com';
$mail-&gt;FromName = 'Ensei Tankado';
$mail-&gt;CharSet = 'iso-8859-9';
$mail-&gt;Subject  =  'Merhaba dostum';
$mail-&gt;Body     =  'Beraber, 22 şubatta Recep İvediği izleyeceğiz degil mi?';
$mail-&gt;AddAddress('admin@nsa.gov', 'Mr. Big Brother');
if (!$mail-&gt;Send()) {
	echo $mail-&gt;ErrorInfo;
}
</pre>
<p><strong>Umarım yararlı olur. Sorularınız varsa TDK&#8217;nın kurallarına uygun olarak aşağıya yazabilirsiniz.</strong></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p></span></p>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/get_string_between-yki-ifadenin-arasyndaki-ifadeyi-getirmek/' rel='bookmark' title='Permanent Link: get_string_between: İki ifadenin arasındaki ifadeyi getirmek'>get_string_between: İki ifadenin arasındaki ifadeyi getirmek</a><li>Aşağıdaki basit PHP fonksiyonu iki ifade arasında yer alan başka...</li></li>
<li><a href='http://www.tankado.com/delphi-ile-html-etiketlerini-ayyklamak/' rel='bookmark' title='Permanent Link: Delphi ile HTML etiketlerini ayıklamak'>Delphi ile HTML etiketlerini ayıklamak</a><li>Bir kaynak koddan HTML&nbsp;etiketlerini ayıklamak i&ccedil;in bu fonksiyon kullanılabilir....</li></li>
<li><a href='http://www.tankado.com/komut-satyry-e-posta-gonderici/' rel='bookmark' title='Permanent Link: Komut Satırı E-posta Gönderici'>Komut Satırı E-posta Gönderici</a><li>Ecnebi dostlarımız ve google i&ccedil;in diğer adıyla command line mail...</li></li>
<li><a href='http://www.tankado.com/ajax-generic-form-parser/' rel='bookmark' title='Permanent Link: AJAX generic form parser'>AJAX generic form parser</a><li>Burada esasında AJAX'lı uygulamalarda zamandan ve koddan tasarruf sağlasın diye...</li></li>
<li><a href='http://www.tankado.com/php-ile-tc-kimlik-numarasini-dogrulamak/' rel='bookmark' title='Permanent Link: PHP ile TC Kimlik Numarasını Doğrulamak'>PHP ile TC Kimlik Numarasını Doğrulamak</a><li>Kullanıcıdan web form aracılığıyla bazı bilgiler almak gerektiğinde bilgileri doğrulama...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/php-ile-gercekten-mail-gondermek/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Script çalışırken çıktı vermek</title>
		<link>http://www.tankado.com/script-calyyrken-cykty-vermek/</link>
		<comments>http://www.tankado.com/script-calyyrken-cykty-vermek/#comments</comments>
		<pubDate>Mon, 10 Sep 2007 20:23:36 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tank2/?p=248</guid>
		<description><![CDATA[Bir PHP script&#8217;inin çıktısı script&#8217;in çalışması tamamlandıktan sonra gönderilir. Scrip çalışmaya devam ederken sayfada/ekranda bir çıktı gözükmez. Script&#8217;in oluşturduğu tüm çıktılar Output Buffer (ob) adı verilen tamponda tutulur. Programcı isterse bu tamponu ob_ fonksiyonlarıyla kontrol edebilir. Tampondaki içeriği istenildiği anda çıktı vermek için için ob_flush() komutu kullanılabilir. ob_flush cağrıldığında o ana kadar çıktı tamponuna biriktirilen tüm içerik tarayıcıya bir header yardımıyla gönderilir [...]


Benzer yazılar: <ol><li><a href='http://www.tankado.com/bash-scriptlerinde-renkli-cikti-kullanmak/' rel='bookmark' title='Permanent Link: Bash scriptlerinde renkli çıktı kullanmak'>Bash scriptlerinde renkli çıktı kullanmak</a><li>Bash script&#8217;lerinizin ekran çıktılarını renklendirmek için tput programını kullanabilirsiniz.  Konsolda...</li></li>
<li><a href='http://www.tankado.com/enixma-34-sayi-cikti/' rel='bookmark' title='Permanent Link: Enixma 34. Sayı Çıktı'>Enixma 34. Sayı Çıktı</a><li>Enixmanın Temmuz sayısı çıktı, linux ve açık kaynak ile ilgili...</li></li>
<li><a href='http://www.tankado.com/e-dergi-enixma-36-sayi-cikti/' rel='bookmark' title='Permanent Link: E-Dergi: Enixma 36. sayı çıktı'>E-Dergi: Enixma 36. sayı çıktı</a><li>Enixma, e-derginin 36. sayısı hazır ve indirebilirsiniz. Bu sayıda yer...</li></li>
<li><a href='http://www.tankado.com/e-dergi-enixma-39-sayi-cikti/' rel='bookmark' title='Permanent Link: E-Dergi: Enixma 39. sayı çıktı'>E-Dergi: Enixma 39. sayı çıktı</a><li>Enixma, e-derginin 39. sayısı hazır ve indirebilirsiniz. Bu sayıda yer...</li></li>
<li><a href='http://www.tankado.com/e-dergi-web-guvenligi-dergisi-cikti/' rel='bookmark' title='Permanent Link: E-Dergi: Web Güvenliği dergisi çıktı'>E-Dergi: Web Güvenliği dergisi çıktı</a><li>Web güvenliği topluluğunun ağustos ayından itibaren çıkartmaya başladığı E-dergi nin...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Bir PHP script&#8217;inin çıktısı script&#8217;in çalışması tamamlandıktan sonra gönderilir. Scrip çalışmaya devam ederken sayfada/ekranda bir çıktı gözükmez. Script&#8217;in oluşturduğu tüm çıktılar <strong>Output Buffer</strong> (ob) adı verilen tamponda tutulur. Programcı isterse bu tamponu <strong>ob_</strong> fonksiyonlarıyla kontrol edebilir. Tampondaki içeriği istenildiği anda çıktı vermek için için <strong><a href="http://tr2.php.net/manual/en/function.ob-flush.php" target="_blank">ob_flush</a></strong>() komutu kullanılabilir. <strong>ob_flush</strong> cağrıldığında o ana kadar çıktı tamponuna biriktirilen tüm içerik tarayıcıya bir header yardımıyla gönderilir ve görüntülenmiş olur.</p>
<p>Çıktının zamanlamasını ayarlayarak göze hoş gözüken sayfa yüklemeleri elde edilebilir. Yine <strong>ob_flush</strong> ile uzun bir işlemi yerine getiren script&#8217;in, kullanıcıyı  o anda yağtığı iş hakkında bilgilendirmesi için faydalıdır. Gerektiğinde bu özellik kullanılırsa ziyaretçinin sayfa izleme kalitesi artacaktır.</p>
<p>Aşağıdaki kodda  <strong>ob_imlicit_flush</strong> komutunun kullanımına örnek yer alıyor. Bu komut çıktı tamponunu devre dışı bırakır ve echo gibi her çıktı komutunun ardından çıktının anında tarayıcıya gönderilmesini sağlar. Aşağıdaki kodun çalışan halini <a href="http://www.tankado.com/ContentFiles/File/PHP/script_calisirken_cikti_vermek.php" target="_blank">buraya</a> tıklayarak izleyebilirsiniz.</p>
<p>Dikkat edilmesi gereken bir nokta, ob_flush komutundan hemen sonra <a href="http://tr2.php.net/manual/en/function.flush.php" target="_blank">flush</a>() komutunun da kullanılması gerektiğidir.</p>
<pre class="brush: php;">
&lt;?php
ob_implicit_flush(true);
for($i=0; $i&lt;8; $i++)
{
  echo &quot;&lt;span style='width:8px; height:8px; background:blue'&gt;&lt;/span&gt;&amp;nbsp;&quot;;
  for($k = 0; $k &lt; 10000; $k++)  echo ' ';
}
?&gt;
</pre>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/bash-scriptlerinde-renkli-cikti-kullanmak/' rel='bookmark' title='Permanent Link: Bash scriptlerinde renkli çıktı kullanmak'>Bash scriptlerinde renkli çıktı kullanmak</a><li>Bash script&#8217;lerinizin ekran çıktılarını renklendirmek için tput programını kullanabilirsiniz.  Konsolda...</li></li>
<li><a href='http://www.tankado.com/enixma-34-sayi-cikti/' rel='bookmark' title='Permanent Link: Enixma 34. Sayı Çıktı'>Enixma 34. Sayı Çıktı</a><li>Enixmanın Temmuz sayısı çıktı, linux ve açık kaynak ile ilgili...</li></li>
<li><a href='http://www.tankado.com/e-dergi-enixma-36-sayi-cikti/' rel='bookmark' title='Permanent Link: E-Dergi: Enixma 36. sayı çıktı'>E-Dergi: Enixma 36. sayı çıktı</a><li>Enixma, e-derginin 36. sayısı hazır ve indirebilirsiniz. Bu sayıda yer...</li></li>
<li><a href='http://www.tankado.com/e-dergi-enixma-39-sayi-cikti/' rel='bookmark' title='Permanent Link: E-Dergi: Enixma 39. sayı çıktı'>E-Dergi: Enixma 39. sayı çıktı</a><li>Enixma, e-derginin 39. sayısı hazır ve indirebilirsiniz. Bu sayıda yer...</li></li>
<li><a href='http://www.tankado.com/e-dergi-web-guvenligi-dergisi-cikti/' rel='bookmark' title='Permanent Link: E-Dergi: Web Güvenliği dergisi çıktı'>E-Dergi: Web Güvenliği dergisi çıktı</a><li>Web güvenliği topluluğunun ağustos ayından itibaren çıkartmaya başladığı E-dergi nin...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/script-calyyrken-cykty-vermek/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PhpSecInfo</title>
		<link>http://www.tankado.com/phpsecinfo/</link>
		<comments>http://www.tankado.com/phpsecinfo/#comments</comments>
		<pubDate>Wed, 27 Jun 2007 17:48:04 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[Güvenlik]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tank2/?p=247</guid>
		<description><![CDATA[PhpSecInfo, phpinfo() fonksiyonuna benzer şekilde sunucudaki PHP ortamının güvenliğini analiz ediyor ve güvenliği artırıcı önerilerde bulunuyor. PHP Güvenliği Konsorsiyumunun bir projesi olan PhpSecInfo &#8220;New Free BSD&#8221; lisansı ile dağıtılıyor. Benzer yazılar: iDefense&#8217;den güvenlik araçlarıiDefense güvenlik ve güvenlik zayıflıklarını tespit konularında çalışmalar yapan bir... wpacracker ile Şifre kırmak 20 dakika!Yeni bir teknoloji üzerine kurulan şifre kırma [...]


Benzer yazılar: <ol><li><a href='http://www.tankado.com/idefenseden-guvenlik-araclari/' rel='bookmark' title='Permanent Link: iDefense&#8217;den güvenlik araçları'>iDefense&#8217;den güvenlik araçları</a><li>iDefense güvenlik ve güvenlik zayıflıklarını tespit konularında çalışmalar yapan bir...</li></li>
<li><a href='http://www.tankado.com/wpacracker-ile-sifre-kirmak-20-dakika/' rel='bookmark' title='Permanent Link: wpacracker ile Şifre kırmak 20 dakika!'>wpacracker ile Şifre kırmak 20 dakika!</a><li>Yeni bir teknoloji üzerine kurulan şifre kırma aracı ile kablosuz...</li></li>
<li><a href='http://www.tankado.com/fccu-gnu-linux-forensic-boot-cd/' rel='bookmark' title='Permanent Link: FCCU GNU/Linux Forensic Boot CD'>FCCU GNU/Linux Forensic Boot CD</a><li>Lnx4n6 (Linux Forensics) Belçika Federal Bilgisayar Suçları Birimi (FCCU) tarafından...</li></li>
<li><a href='http://www.tankado.com/windows-icin-bedava-ftp-istemcileri/' rel='bookmark' title='Permanent Link: Windows için Bedava FTP İstemcileri'>Windows için Bedava FTP İstemcileri</a><li>FTP (File Transfer Protocol), Dosya Aktarım İletişim Kuralı ağ üzerinde...</li></li>
<li><a href='http://www.tankado.com/endian-firewall/' rel='bookmark' title='Permanent Link: Endian Firewall'>Endian Firewall</a><li>EFW (Endian Firewall) adından da anlaşılacağı üzere tam donanımlı, linux...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<table style="width: 473px; height: 227px;" border="0" cellspacing="1" cellpadding="1" width="473">
<tbody>
<tr>
<td><img class="img_dotted" src="http://phpsec.org/images/th_psi_ss1.png" alt="guvenlik PhpSecInfo"  title="PhpSecInfo photo" /> <img class="img_dotted" src="http://phpsec.org/images/th_psi_ss2.png" alt="guvenlik PhpSecInfo"  title="PhpSecInfo photo" /></td>
</tr>
<tr>
<td><a href="http://phpsec.org/projects/phpsecinfo/" target="_blank">PhpSecInfo</a>, <span style="font-family: &quot;Courier New&quot;;">phpinfo()</span> fonksiyonuna benzer şekilde sunucudaki PHP ortamının güvenliğini analiz ediyor ve güvenliği artırıcı önerilerde bulunuyor. <a href="http://phpsec.org/" target="_blank">PHP Güvenliği Konsorsiyumunun</a> bir projesi olan PhpSecInfo &#8220;New Free BSD&#8221; lisansı ile dağıtılıyor.</td>
</tr>
</tbody>
</table>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/idefenseden-guvenlik-araclari/' rel='bookmark' title='Permanent Link: iDefense&#8217;den güvenlik araçları'>iDefense&#8217;den güvenlik araçları</a><li>iDefense güvenlik ve güvenlik zayıflıklarını tespit konularında çalışmalar yapan bir...</li></li>
<li><a href='http://www.tankado.com/wpacracker-ile-sifre-kirmak-20-dakika/' rel='bookmark' title='Permanent Link: wpacracker ile Şifre kırmak 20 dakika!'>wpacracker ile Şifre kırmak 20 dakika!</a><li>Yeni bir teknoloji üzerine kurulan şifre kırma aracı ile kablosuz...</li></li>
<li><a href='http://www.tankado.com/fccu-gnu-linux-forensic-boot-cd/' rel='bookmark' title='Permanent Link: FCCU GNU/Linux Forensic Boot CD'>FCCU GNU/Linux Forensic Boot CD</a><li>Lnx4n6 (Linux Forensics) Belçika Federal Bilgisayar Suçları Birimi (FCCU) tarafından...</li></li>
<li><a href='http://www.tankado.com/windows-icin-bedava-ftp-istemcileri/' rel='bookmark' title='Permanent Link: Windows için Bedava FTP İstemcileri'>Windows için Bedava FTP İstemcileri</a><li>FTP (File Transfer Protocol), Dosya Aktarım İletişim Kuralı ağ üzerinde...</li></li>
<li><a href='http://www.tankado.com/endian-firewall/' rel='bookmark' title='Permanent Link: Endian Firewall'>Endian Firewall</a><li>EFW (Endian Firewall) adından da anlaşılacağı üzere tam donanımlı, linux...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/phpsecinfo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Echo ve Print arasındaki farklar</title>
		<link>http://www.tankado.com/echo-ve-print-arasyndaki-farklar/</link>
		<comments>http://www.tankado.com/echo-ve-print-arasyndaki-farklar/#comments</comments>
		<pubDate>Mon, 02 Apr 2007 15:16:23 +0000</pubDate>
		<dc:creator>Özgür Koca</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tank2/?p=246</guid>
		<description><![CDATA[<p>Echo, Print'e g&#246;re işlemciyi daha verimli kullanır. Aşağıda &#246;rnek <font face="Courier New"><strong>echo</strong></font> ve <font face="Courier New"><strong>print</strong></font>'in 100.000 kez parametresiz &#231;alıştırılması sırasında&#160;ge&#231;en s&#252;relerin &#246;l&#231;&#252;m&#252;n&#252;&#160;g&#246;steriyor.</p> <p><font face="Courier New" color="#808080">&#160;Echoing 100000 of nothing<br />&#160;Execution time is 0.037015199661255 seconds.</font></p> <p><font face="Courier New" color="#808080">&#160;Printing 100000 of nothing<br />&#160;Execution time is 0.040477991104126 seconds.</font></p>


Benzer yazılar: <ol><li><a href='http://www.tankado.com/get_string_between-yki-ifadenin-arasyndaki-ifadeyi-getirmek/' rel='bookmark' title='Permanent Link: get_string_between: İki ifadenin arasındaki ifadeyi getirmek'>get_string_between: İki ifadenin arasındaki ifadeyi getirmek</a><li>Aşağıdaki basit PHP fonksiyonu iki ifade arasında yer alan başka...</li></li>
<li><a href='http://www.tankado.com/ddr1-ddr2-ddr3-farklar/' rel='bookmark' title='Permanent Link: DDR1, DDR2 ve DDR3 Arasındaki Farklar Neler'>DDR1, DDR2 ve DDR3 Arasındaki Farklar Neler</a><li>Yeni bir bilgisayar satın aldığınızda değişik kapasitelerde birçok RAM seçeneği...</li></li>
<li><a href='http://www.tankado.com/echo-mirage-is-a-generic-network-proxy/' rel='bookmark' title='Permanent Link: Echo Mirage is a generic network proxy'>Echo Mirage is a generic network proxy</a><li>Echo mirage genel amaçlı bir ağ proxy&#8217;si. DLL injeksiyon ve...</li></li>
<li><a href='http://www.tankado.com/delphi-ile-html-etiketlerini-ayyklamak/' rel='bookmark' title='Permanent Link: Delphi ile HTML etiketlerini ayıklamak'>Delphi ile HTML etiketlerini ayıklamak</a><li>Bir kaynak koddan HTML&nbsp;etiketlerini ayıklamak i&ccedil;in bu fonksiyon kullanılabilir....</li></li>
<li><a href='http://www.tankado.com/extract-urls-in-text-data-with-javascript/' rel='bookmark' title='Permanent Link: Extract URLs in text data with Javascript'>Extract URLs in text data with Javascript</a><li>Daha önce sitede duyurduğum bağlantı (link) arşivi projesi için hazırladığım...</li></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Echo, Print&#8217;e göre işlemciyi daha verimli kullanır. Aşağıda örnek <span style="font-family: &quot;Courier New&quot;;"><strong>echo</strong></span> ve <span style="font-family: &quot;Courier New&quot;;"><strong>print</strong></span>&#8216;in 100.000 kez parametresiz çalıştırılması sırasında geçen sürelerin ölçümünü gösteriyor.</p>
<p><span style="font-family: &quot;Courier New&quot;; color: #808080;"> Echoing 100000 of nothing<br />
Execution time is 0.037015199661255 seconds.</span></p>
<p><span style="font-family: &quot;Courier New&quot;; color: #808080;"> Printing 100000 of nothing<br />
Execution time is 0.040477991104126 seconds.</span></p>
<p><span id="more-246"></span></p>
<table style="width: 475px; height: 93px;" border="1" cellspacing="1" cellpadding="1" width="475">
<tbody>
<tr>
<td></td>
<td>
<p align="center"><span style="font-family: &quot;Courier New&quot;;"><strong>echo</strong></span></p>
</td>
<td><span style="font-family: &quot;Courier New&quot;;"><strong>print</strong></span></td>
</tr>
<tr>
<td>
<p align="center"><strong>Yazılımı</strong></p>
</td>
<td><span style="font-family: &quot;Courier New&quot;;">echo (strint arg1 [,string argn...])</span></td>
<td><span style="font-family: &quot;Courier New&quot;;">print (string arg)</span></td>
</tr>
<tr>
<td>
<p align="center"><strong>Döndürdüğü<br />
değer</strong></td>
<td>Yok</td>
<td>1 (Her zaman)</td>
</tr>
</tbody>
</table>
<ol>
<li>Print bir fonksiyon gibi çalışarak geriye işlemin başarı durumunu boolean veritipinde bir değer olarak döndürür. Bu yönüyle print altyapısı echo&#8217;ya göre biraz daha karışıktır ve bu da icra süresine olumsuz etki eder.<br />
<strong>örnek:<br />
</strong><span style="font-family: &quot;Courier New&quot;;"> $durum = print &#8220;Merhaba dünya!&#8221;;<br />
</span></li>
<li>Echo bir fonksiyon gibi çalışmaz ve geriye bir değer döndürmez. Bu özelliğiyle Print&#8217;e göre bir miktar daha hızlıdır.</li>
<li>Echo ile virgülle ayrılmış birden fazla ifadeyi yazdırmak, <span style="font-family: &quot;Courier New&quot;;">&#8220;.&#8221;</span> katar birleştirme işleci ile birleştirerek yazdırmaktan daha hızlıdır. Print virgülle ayırarak yazmayı desteklemez.<br />
<strong>örnek:<br />
</strong><span style="font-family: &quot;Courier New&quot;;"> echo $Merhaba, $Dunya;<br />
</span>ifadesi<br />
<span style="font-family: &quot;Courier New&quot;;"> echo $Merhaba.$Dunya;</span><br />
ifadesine göre daha çabuk icra görür.</li>
</ol>
<p><strong>Kaynaklar:</strong><br />
<a href="http://www.dvessel.com/node/85">http://www.dvessel.com/node/85</a><br />
<a href="http://www.phpdiary.org/articles/echo-vs-print/">http://www.phpdiary.org/articles/echo-vs-print/</a><br />
<a href="http://www.crazy-media.se/echo-vs-print/">http://www.crazy-media.se/echo-vs-print/</a></p>


<p>Benzer yazılar: <ol><li><a href='http://www.tankado.com/get_string_between-yki-ifadenin-arasyndaki-ifadeyi-getirmek/' rel='bookmark' title='Permanent Link: get_string_between: İki ifadenin arasındaki ifadeyi getirmek'>get_string_between: İki ifadenin arasındaki ifadeyi getirmek</a><li>Aşağıdaki basit PHP fonksiyonu iki ifade arasında yer alan başka...</li></li>
<li><a href='http://www.tankado.com/ddr1-ddr2-ddr3-farklar/' rel='bookmark' title='Permanent Link: DDR1, DDR2 ve DDR3 Arasındaki Farklar Neler'>DDR1, DDR2 ve DDR3 Arasındaki Farklar Neler</a><li>Yeni bir bilgisayar satın aldığınızda değişik kapasitelerde birçok RAM seçeneği...</li></li>
<li><a href='http://www.tankado.com/echo-mirage-is-a-generic-network-proxy/' rel='bookmark' title='Permanent Link: Echo Mirage is a generic network proxy'>Echo Mirage is a generic network proxy</a><li>Echo mirage genel amaçlı bir ağ proxy&#8217;si. DLL injeksiyon ve...</li></li>
<li><a href='http://www.tankado.com/delphi-ile-html-etiketlerini-ayyklamak/' rel='bookmark' title='Permanent Link: Delphi ile HTML etiketlerini ayıklamak'>Delphi ile HTML etiketlerini ayıklamak</a><li>Bir kaynak koddan HTML&nbsp;etiketlerini ayıklamak i&ccedil;in bu fonksiyon kullanılabilir....</li></li>
<li><a href='http://www.tankado.com/extract-urls-in-text-data-with-javascript/' rel='bookmark' title='Permanent Link: Extract URLs in text data with Javascript'>Extract URLs in text data with Javascript</a><li>Daha önce sitede duyurduğum bağlantı (link) arşivi projesi için hazırladığım...</li></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.tankado.com/echo-ve-print-arasyndaki-farklar/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
