<?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>Ersin KOÇ &#187; dikkat</title>
	<atom:link href="http://www.ersinkoc.com/etiket/dikkat/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ersinkoc.com</link>
	<description>bir yazılımcı blog açamaz mı?</description>
	<lastBuildDate>Sun, 24 Jul 2011 13:40:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP yazarken bunlara dikkat!</title>
		<link>http://www.ersinkoc.com/php-yazarken-bunlara-dikkat/</link>
		<comments>http://www.ersinkoc.com/php-yazarken-bunlara-dikkat/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 13:50:19 +0000</pubDate>
		<dc:creator>Ersin KOÇ</dc:creator>
				<category><![CDATA[Makaleler]]></category>
		<category><![CDATA[ders]]></category>
		<category><![CDATA[dikkat]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tüyo]]></category>

		<guid isPermaLink="false">http://www.ersinkoc.com/?p=121</guid>
		<description><![CDATA[PHP diline hakim olmaya karar verdiğimde öncelikle bu işin püf noktalarını da öğrenmem gerektiğine inanıp biraz araştırma yaptım. Aşağıda sizin de yapabileceğiniz hatalar ve doğru yöntemleri göreceksiniz. Gelen verileri aynen kullanıyorsanız hack için davetiye gönderiyorsunuzdur. Mesela aşağıdaki şekilde kullanım hatalıdır: &#60;? echo(&#8220;&#60;p&#62;Arama sonuçları: &#8221; . $_GET['arama'] . &#8220;.&#60;/p&#62;&#8221;); ?&#62; htmlspecialchars kullanmak iyidir ancak yeterli değildir: [...]]]></description>
			<content:encoded><![CDATA[<p>PHP diline hakim olmaya karar verdiğimde öncelikle bu işin püf noktalarını da öğrenmem gerektiğine inanıp biraz araştırma yaptım. Aşağıda sizin de yapabileceğiniz hatalar ve doğru yöntemleri göreceksiniz.</p>
<p>Gelen verileri aynen kullanıyorsanız hack için davetiye gönderiyorsunuzdur.</p>
<p>Mesela aşağıdaki şekilde kullanım hatalıdır:</p>
<p>&lt;?<br />
echo(&#8220;&lt;p&gt;Arama sonuçları: &#8221; .<br />
$_GET['arama'] . &#8220;.&lt;/p&gt;&#8221;);<br />
?&gt;</p>
<p>htmlspecialchars kullanmak iyidir ancak yeterli değildir:</p>
<p>&lt;?<br />
echo(&#8220;&lt;p&gt;Arama sonuçları: &#8221; .<br />
htmlspecialchars($_GET['arama']) . &#8220;.&lt;/p&gt;&#8221;);<br />
?&gt;</p>
<p>&#8220;arama&#8221; diye bir query&#8217;nin olup olmadığına bakar, &lt;?php ile başlar ve bağlama operatörü olarak &#8220;.&#8221; kullanmak yerine ENT_QUOTES argümanı kullanılarak aşağıdaki şekilde bir kullanım en ideal olandır :</p>
<p>&lt;?php<br />
if (isset($_GET['query']))<br />
{<br />
echo &#8216;&lt;p&gt;Arama sonuçları: &#8216;, htmlspecialchars($_GET['arama'], ENT_QUOTES), &#8216;.&lt;/p&gt;&#8217;;<br />
}<br />
?&gt;</p>
<p>Bir başka sorun ise for döngüleri içerisinde count komuturla array boyutunu almak. Her dönüşte tekrar tekrar aynı değeri aldırmak istemeyiz değil mi?</p>
<p>$deneme = array(&#8220;bir&#8221;,&#8221;iki&#8221;,&#8221;üç&#8221;);<br />
for (i==0;i&lt;count($deneme);$i++){<br />
// &#8230;<br />
}</p>
<p>Bu döngü boyunca değişmediği belli olan $deneme arrayının boyutu tekrar tekrar alınmakta. Bu nedenle önce bir değere eşitlenmesini önerilir.</p>
<p>$deneme = array(&#8220;bir&#8221;,&#8221;iki&#8221;,&#8221;üç&#8221;);<br />
$max = count($deneme);<br />
for (i==0;i&lt;$max;$i++){<br />
// &#8230;<br />
}</p>
<p>Ayrıca tarih formatınızı bir kez tanımlayarak tek bir yerden tarih biçimlendirmesi yapabilirsiniz.</p>
<p>define (&#8220;TARIH_BICIMI&#8221; , &#8220;j F Y&#8221;);<br />
şeklinde tanımlama yaparsanız kod içerisinde print(date(TARIH_BICIMI)); olarak kullanabilirsiniz.</p>
<p>Tarihler konusunda işinie yarayacak bir bilgi de aşağıdaki kullanım şeklidir.</p>
<p>&lt;?php<br />
$gelecekHafta = time() + (7 * 24 * 60 * 60);<br />
// 7 gün; 24 saat; 60 dakida; 60 saniye<br />
echo &#8216;Şimdi:         &#8216;. date(&#8216;d-m-Y&#8217;) .&#8221;\n&#8221;;<br />
echo &#8216;Gelecek Hafta: &#8216;. date(&#8216;d-m-Y&#8217;, $gelecekHafta) .&#8221;\n&#8221;;<br />
// yada strtotime() işlevi ile kullanımı<br />
echo &#8216;Gelecek Hafta: &#8216;. date(&#8216;d-m-Y&#8217;, strtotime(&#8216;+1 week&#8217;)) .&#8221;\n&#8221;;<br />
?&gt;</p>
<p>Ayrıca echo kullanmak print kullanmaktan daha hızlıymış. Tıpki else if kullanmanın switch kullanmaktan hızlı olacağı gibi. Tabi else if sayısı çok fazla değilse.</p>
<p>Kullanılan hafıza çok değerlidir. Bu yüzden işimiz biten arrayları unset($arrayadi) ile kaldırmalı veya NULL değerine eşitlemeliyiz.</p>
<p>++$i her zaman $i++ dan daha hızlı çalışır. Ama ikisi farklı şeylerdir. ++$i kullanmak $i değerini kullanmadan önce artırır.</p>
<p>Zaman zaman bu türdeki dikkat edilmesi gerekenleri blogumda yazmaya devam edeceğim.  PHP nin çok fazla ayrıntısı olduğunu, bazı kodların 99 çeşit kullanım şekli olduğunu öğrendim. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ersinkoc.com/php-yazarken-bunlara-dikkat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/9 queries in 0.007 seconds using memcached
Object Caching 303/317 objects using disk: basic
Content Delivery Network via cdn.ersinkoc.com

Served from: www.ersinkoc.com @ 2012-02-07 23:46:55 -->
