<?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>t-infection.com &#124; tasarım oyuncakları, web teknolojileri &#187; Php</title>
	<atom:link href="http://www.t-infection.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.t-infection.com</link>
	<description>tasarım oyuncaklarımız ve web teknolojilerine dair kısa kısa...</description>
	<lastBuildDate>Sat, 02 Apr 2011 17:47:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>WordPress&#8217;de Yazılan Son Mesajlar</title>
		<link>http://www.t-infection.com/wordpressde_yazilan_son_mesajlar/</link>
		<comments>http://www.t-infection.com/wordpressde_yazilan_son_mesajlar/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 01:20:41 +0000</pubDate>
		<dc:creator>Bartuc</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[php uygulama]]></category>
		<category><![CDATA[son mesajlar]]></category>

		<guid isPermaLink="false">http://www.t-infection.com/?p=434</guid>
		<description><![CDATA[Merhabalar, uzun zamandır ne yazık ki yoğunluktan ötürü çok yazı yazamadım. Şimdi ise, bir çok kişiye lazım olabilecek basit bir uygulama yapımını öğreniyoruz.
Bu uygulama ile, istediğiniz bir wordpress blog&#8217;dan son mesajları çekebilirsiniz. Hem de veritabanı bilgilerine ihtiyaç duymadan, yazılan son mesajların başlığını sayfada gösterebiliriz.

İlk olarak, verileri çekebilmemiz için bize gereken şey, verileri çekeceğimiz wordpress blog [...]]]></description>
			<content:encoded><![CDATA[<p>Merhabalar, uzun zamandır ne yazık ki yoğunluktan ötürü çok yazı yazamadım. Şimdi ise, bir çok kişiye lazım olabilecek basit bir uygulama yapımını öğreniyoruz.</p>
<p>Bu uygulama ile, istediğiniz bir wordpress blog&#8217;dan son mesajları çekebilirsiniz. Hem de veritabanı bilgilerine ihtiyaç duymadan, yazılan son mesajların başlığını sayfada gösterebiliriz.</p>
<p><span id="more-434"></span></p>
<p>İlk olarak, verileri çekebilmemiz için bize gereken şey, verileri çekeceğimiz wordpress blog sayfasının RSS adresi. Mesela, t-infection.com &#8216;un rss adresi http://www.t-infection.com/feed/rss/ &#8216;dir.</p>
<p>Bunu belirleyip not aldıktan sonra, PHP yazmaya başlayalım.</p>
<p>İlk olarak, son kaç mesajı çekeceğimizi ve hangi RSS adresinden çekeceğimizi belirtelim. Bu örnekte ben son 5 mesajı alıyorum.</p>
<p>___________________________________<br />
&lt; ?php<br />
$mesajsayisi = 5;<br />
$adres = &#8220;http://www.t-infection.com/feed/rss/&#8221;;<br />
?&gt;<br />
___________________________________</p>
<p>Bunu belirttikten sonra, &#8220;for&#8221; döngüsünde kullancağımız bir geçici değer oluşturalım, bu değeri for döngüsünde kullanacağız ve mesaj sayısının bir fazlası olması gerekiyor, böylece istediğimiz sayıda mesajı alsın ve dursun.</p>
<p>___________________________________<br />
&lt; ?php<br />
$mesajsayisi = 5;<br />
$adres = &#8220;http://www.t-infection.com/feed/rss/&#8221;;</p>
<p>$c = $mesajsayisi+1;<br />
?&gt;<br />
___________________________________</p>
<p>Şimdi ise, arasinial isminde bir fonksiyon oluşturalım. Bu fonksiyon, bir değerdeki istediğimiz bölümlerin arasındaki kısmı çekip alacak bir fonksiyondur.</p>
<p>___________________________________<br />
&lt; ?php<br />
$mesajsayisi = 5;<br />
$adres = &#8220;http://www.t-infection.com/feed/rss/&#8221;;</p>
<p>$c = $mesajsayisi+1;</p>
<p>function arasinial($a,$b,$data,$kacinci)<br />
{<br />
$x = explode($a,$data);<br />
$z = explode($b,$x[$kacinci]);<br />
$oh = $z[0];<br />
if($x &amp;&amp; $z) { return $oh; } else { return false; }<br />
}<br />
?&gt;<br />
___________________________________</p>
<p>Bu fonksiyonumuzu da oluşturduktan sonra, RSS sayfasını açıp içindeki verileri bir değişken olarak kaydedelim. bu iş için bize file_get_contents fonksiyonu gerekiyor.</p>
<p>___________________________________<br />
&lt; ?php<br />
$mesajsayisi = 5;<br />
$adres = &#8220;http://www.t-infection.com/feed/rss/&#8221;;</p>
<p>$c = $mesajsayisi+1;</p>
<p>function arasinial($a,$b,$data,$kacinci)<br />
{<br />
$x = explode($a,$data);<br />
$z = explode($b,$x[$kacinci]);<br />
$oh = $z[0];<br />
if($x &amp;&amp; $z) { return $oh; } else { return false; }<br />
}</p>
<p>$tumsayfa = file_get_contents($adres);<br />
?&gt;<br />
___________________________________</p>
<p>$tumsayfa değişkenine RSS içindeki verilerin tamamını aktardık. Yani, bu RSS sayfasının bütün kaynak kodunu içeriyor. Bizim şimdi yapmamız gereken, bu kaynak kodunu parçalayıp son 5 mesajı almak. Fakat o da ne! RSS sayfasının karakter kodlaması utf8 olduğu için, ISO-8859-9 kodlama kullanan sayfalarda çekilen veriler bozuk geliyor! Önce bu bozuk harfleri düzeltelim, sonra parçalamaya başlayalım.</p>
<p>___________________________________<br />
&lt; ?php<br />
$mesajsayisi = 5;<br />
$adres = &#8220;http://www.t-infection.com/feed/rss/&#8221;;</p>
<p>$c = $mesajsayisi+1;</p>
<p>function arasinial($a,$b,$data,$kacinci)<br />
{<br />
$x = explode($a,$data);<br />
$z = explode($b,$x[$kacinci]);<br />
$oh = $z[0];<br />
if($x &amp;&amp; $z) { return $oh; } else { return false; }<br />
}</p>
<p>$tumsayfa = file_get_contents($adres);</p>
<p>$tumsayfa = str_replace(&#8220;ÄŸ&#8221;, &#8220;ğ&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ä&#8221;, &#8220;Ğ&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã¼&#8221;, &#8220;ü&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ãœ&#8221;, &#8220;Ü&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;ÅŸ&#8221;, &#8220;ş&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Å&#8221;, &#8220;Ş&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ä°&#8221;, &#8220;İ&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ä±&#8221;, &#8220;ı&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã¶&#8221;, &#8220;ö&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã–&#8221;, &#8220;Ö&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã§&#8221;, &#8220;ç&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã‡&#8221;, &#8220;Ç&#8221;, $tumsayfa);<br />
?&gt;<br />
___________________________________</p>
<p>Bu işlemi ben arka arkaya str_replace kullanarak yaptım. Türkçe karakterlerin bozuk olan utf8 karşılıklarını türkçe halleri ile değiştirdim. Aynı işlem array ile de yapılabilir, nasıl isterseniz.</p>
<p>Şimdi sırada RSS içindeki &lt;item&gt; kısımlarını kesip, yani mesajları kesip gerisini atmaya geldi. Bu iş için arasinial fonksiyonunu kullanıyoruz ve &#8220;&lt;language&gt;en&lt;/language&gt;&#8221; ile &#8220;&lt;/channel&gt;&#8221; kısımlarının arasını alıp ayrı bir değişken belirliyoruz. Böylece elimizde sadece &lt;item&gt; içeren mesaj kısımları kalıyor.</p>
<p>___________________________________<br />
&lt; ?php<br />
$mesajsayisi = 5;<br />
$adres = &#8220;http://www.t-infection.com/feed/rss/&#8221;;</p>
<p>$c = $mesajsayisi+1;</p>
<p>function arasinial($a,$b,$data,$kacinci)<br />
{<br />
$x = explode($a,$data);<br />
$z = explode($b,$x[$kacinci]);<br />
$oh = $z[0];<br />
if($x &amp;&amp; $z) { return $oh; } else { return false; }<br />
}</p>
<p>$tumsayfa = file_get_contents($adres);</p>
<p>$tumsayfa = str_replace(&#8220;ÄŸ&#8221;, &#8220;ğ&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ä&#8221;, &#8220;Ğ&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã¼&#8221;, &#8220;ü&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ãœ&#8221;, &#8220;Ü&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;ÅŸ&#8221;, &#8220;ş&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Å&#8221;, &#8220;Ş&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ä°&#8221;, &#8220;İ&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ä±&#8221;, &#8220;ı&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã¶&#8221;, &#8220;ö&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã–&#8221;, &#8220;Ö&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã§&#8221;, &#8220;ç&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã‡&#8221;, &#8220;Ç&#8221;, $tumsayfa);</p>
<p>$veriler = arasinial(&#8220;&lt;language&gt;en&lt;/language&gt;&#8221;, &#8220;&lt;/channel&gt;&#8221;, $tumsayfa, 1);<br />
?&gt;<br />
___________________________________</p>
<p>Şimdi ise, bu &lt;item&gt; kısımlarının her birini parçalayalım. Bu iş için explode bize yardımcı olacak. Buradaki kritik nokta şu ki, explode fonksiyonu kullanıldığında, patlatılan değerin ilk kısmı [0] olarak atanır. Fakat biz &lt;item&gt; kısmını patlatacağımız için ve bizim değişkenimiz &lt;item&gt; ile başladığı için, ilk değer olan [0] değeri boş olacak. Bu yüzden for döngümüzü 0 yerine 1 ile başlatacağız ve yine aynı sebepten dolayı istediğimiz mesaj sayısının bir fazlası olan geçici bir değişken tanımladık.</p>
<p>___________________________________<br />
&lt; ?php<br />
$mesajsayisi = 5;<br />
$adres = &#8220;http://www.t-infection.com/feed/rss/&#8221;;</p>
<p>$c = $mesajsayisi+1;</p>
<p>function arasinial($a,$b,$data,$kacinci)<br />
{<br />
$x = explode($a,$data);<br />
$z = explode($b,$x[$kacinci]);<br />
$oh = $z[0];<br />
if($x &amp;&amp; $z) { return $oh; } else { return false; }<br />
}</p>
<p>$tumsayfa = file_get_contents($adres);</p>
<p>$tumsayfa = str_replace(&#8220;ÄŸ&#8221;, &#8220;ğ&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ä&#8221;, &#8220;Ğ&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã¼&#8221;, &#8220;ü&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ãœ&#8221;, &#8220;Ü&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;ÅŸ&#8221;, &#8220;ş&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Å&#8221;, &#8220;Ş&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ä°&#8221;, &#8220;İ&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ä±&#8221;, &#8220;ı&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã¶&#8221;, &#8220;ö&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã–&#8221;, &#8220;Ö&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã§&#8221;, &#8220;ç&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã‡&#8221;, &#8220;Ç&#8221;, $tumsayfa);</p>
<p>$veriler = arasinial(&#8220;&lt;language&gt;en&lt;/language&gt;&#8221;, &#8220;&lt;/channel&gt;&#8221;, $tumsayfa, 1);</p>
<p>$parcalar = explode(&#8220;&lt;item&gt;&#8221;, $veriler);<br />
?&gt;<br />
___________________________________</p>
<p>Bu patlatma işini de yaptıktan sonra geriye sadece for döngüsü kaldı. Bu for döngüsünde &lt;title&gt; ve &lt;/title&gt; kısımlarının arasını alıp bunu başlık yapacağız, &#8220;&lt;link&gt;&#8221; ve &#8220;&lt;/link&gt;&#8221; kısımlarının arasını alarak bunu url yapacağız ve linkimizi oluşturacağız. Açıklamaları for döngüsünün kodlarının içinde bulacaksınız.</p>
<p>Bu işlemden sonra ise, aşağıdaki gibi, uygulamamız hazır ve çalışır durumda.</p>
<p>___________________________________<br />
&lt;?php<br />
$mesajsayisi = 5;<br />
$adres = &#8220;http://www.t-infection.com/feed/rss/&#8221;;</p>
<p>$c = $mesajsayisi+1;</p>
<p>function arasinial($a,$b,$data,$kacinci)<br />
{<br />
$x = explode($a,$data);<br />
$z = explode($b,$x[$kacinci]);<br />
$oh = $z[0];<br />
if($x &amp;&amp; $z) { return $oh; } else { return false; }<br />
}</p>
<p>$tumsayfa = file_get_contents($adres);</p>
<p>$tumsayfa = str_replace(&#8220;ÄŸ&#8221;, &#8220;ğ&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ä&#8221;, &#8220;Ğ&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã¼&#8221;, &#8220;ü&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ãœ&#8221;, &#8220;Ü&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;ÅŸ&#8221;, &#8220;ş&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Å&#8221;, &#8220;Ş&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ä°&#8221;, &#8220;İ&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ä±&#8221;, &#8220;ı&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã¶&#8221;, &#8220;ö&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã–&#8221;, &#8220;Ö&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã§&#8221;, &#8220;ç&#8221;, $tumsayfa);<br />
$tumsayfa = str_replace(&#8220;Ã‡&#8221;, &#8220;Ç&#8221;, $tumsayfa);</p>
<p>$veriler = arasinial(&#8220;&lt;language&gt;en&lt;/language&gt;&#8221;, &#8220;&lt;/channel&gt;&#8221;, $tumsayfa, 1);</p>
<p>$parcalar = explode(&#8220;&lt;item&gt;&#8221;, $veriler);</p>
<p>for($i=1;$i&lt;$c;$i++) {<br />
$a = arasinial(&#8220;&lt;title&gt;&#8221;, &#8220;&lt;/title&gt;&#8221;, $parcalar[$i], 1); //explode ile parçaladğımız değerin arasını alıp değişken belirliyoruz<br />
$b = arasinial(&#8220;&lt;link&gt;&#8221;, &#8220;&lt;/link&gt;&#8221;, $parcalar[$i], 1); //explode ile parçaladğımız değerin arasını alıp değişken belirliyoruz<br />
echo &#8220;&lt;a href=\&#8221;".$b.&#8221;\&#8221;&gt;&#8221;.$a.&#8221;&lt;/a&gt;&lt;br&gt;&#8221;; // nihayet sayfaya basılacak olan link<br />
}<br />
?&gt;<br />
___________________________________</p>
<p>Umarım iyi anlatabilmişimdir, umarım işinize yarar.</p>
<p>Dipnot: iG:Syntax Hiliter eklentisi kafayı yediği için kodları bu şekilde ekledim, anlaşılmaz olduysa affola, kodları buradan kopyalayıp Dreamweaver ya da başka bir PHP editörüne yapıştırarak daha düzgün görebilirsiniz. <strong>Ayrıca tırnakları WordPress yatırdığı için normal tırnak ile değiştirmelisiniz, yoksa hata verecektir.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.t-infection.com/wordpressde_yazilan_son_mesajlar/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP Standartlarında Kodlama 3: If-Else Kullanımı</title>
		<link>http://www.t-infection.com/php-standartlarinda-kodlama-3-if-else-kullanimi/</link>
		<comments>http://www.t-infection.com/php-standartlarinda-kodlama-3-if-else-kullanimi/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 13:41:35 +0000</pubDate>
		<dc:creator>Bartuc</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[else]]></category>
		<category><![CDATA[if]]></category>
		<category><![CDATA[PHP Kodlama]]></category>
		<category><![CDATA[Standart PHP Kodlama]]></category>

		<guid isPermaLink="false">http://www.t-infection.com/?p=310</guid>
		<description><![CDATA[Merhabalar, PHP Standartlarında Kodlama serisinin 3. yazısını yazmadan önce, bir açıklama yapma gereği duydum. Bu yazı serisinin amacı PHP kodlamayı öğretmekten ziyade, doğru PHP kodlamayı öğretmektir. Yani sizin yazdığınız ve çalışan kodlarda, farklı methodlar kullanıyorsanız bile, bu yazdığım şekilde kullanmanız en iyisi olacaktır, hiçbir sunucuda uyum sorunu yaşamadan kodlama yapabileceksiniz.
Yazıya başlarken, öncelikle if ve else [...]]]></description>
			<content:encoded><![CDATA[<p>Merhabalar, PHP Standartlarında Kodlama serisinin 3. yazısını yazmadan önce, bir açıklama yapma gereği duydum. Bu yazı serisinin amacı PHP kodlamayı öğretmekten ziyade, doğru PHP kodlamayı öğretmektir. Yani sizin yazdığınız ve çalışan kodlarda, farklı methodlar kullanıyorsanız bile, bu yazdığım şekilde kullanmanız en iyisi olacaktır, hiçbir sunucuda uyum sorunu yaşamadan kodlama yapabileceksiniz.</p>
<p>Yazıya başlarken, öncelikle if ve else nedir onu açıklayayım.</p>
<p>IF, Türkçesi &#8220;eğer&#8221;, else ise Türkçesi &#8220;değilse&#8221; olan kelimelerdir.</p>
<p><span id="more-310"></span>Bu ikili PHP&#8217;nin vazgeçilmezleridir.</p>
<p>Örnek vermek gerekirse,</p>
<pre class="brush: php;">$a = 1; // örnek değişkenimizi tanımlayalım
if($a == 1) { //eğer $a'nın değeri 1 ise
echo &quot;Evet, a'nın değeri 1'e eşittir.&quot;;
} else { // değilse
echo &quot;Hayır, a'nın değeri 1'e eşit değil.&quot;;
</pre>
<p><strong>Peki bunu anladık, ya işler biraz daha karışırsa ne olacak? Birden çok koşul veya değere birden çok tanımlama gerekirse ne olacak?</strong></p>
<p>Bunun da cevabı çok zor değil.</p>
<pre class="brush: php;">$a = 1; // örnek değişkenimizi tanımlayalım
$b = 2; // örnek değişkenimizi tanımlayalım
$c = 3; // örnek değişkenimizi tanımlayalım

if(($a == 1) || ($b == 1)) { // eğer $a veya $b 1'e eşitse, || ile veya sağladık
echo &quot;Tamam.&quot;; // koşul sağlandı.
}

if(($a == 1) &amp;&amp; ($b == 1)) { // eğer $a ve $b 1'e eşitse, &amp;amp;&amp;amp; ile ve sağladık
echo &quot;Tamam.&quot;; // koşul sağlanmadı($b eşit değildir 1), işlem yapılmayacak
}

if(($a == 1) &amp;&amp; ($c != 5)) { // eğer $a 1'e eşitse ve $c 5'e eşit değilse
echo &quot;Tamam.&quot;; // koşul sağlandı.
}</pre>
<p>Örneklerden de anlayacağınız gibi, eşitlik koşulunu belirtirken == kullanıyoruz, eşit olmama koşulunu belirtirken ise != kullanıyoruz. Buna dikkat edilmeli, if koşullarında çift eşittir işareti(eşitlik koşulu) veya ünlemle birlikte eşittir işareti(eşit olmama koşulu) kullanılır.<br />
<strong><br />
Peki ya aynı değişkenin farklı değerleri için işlem yapmak gerekirse?</strong><br />
İşte bu noktada, işin içine &#8220;else if&#8221; komutu giriyor.</p>
<pre class="brush: php;">if($a &lt; 5) { //$a 5'den küçükse
echo &quot;a, 5'den küçük.&quot;;
} else if(($a &gt;= 5) &amp;&amp; ($a &lt; 10)) { //$a 5'den büyük ya da 5'e eşitse ve 10'dan küçükse
echo &quot;a, 5'den büyük ya da 5'e eşit ve 10'dan küçük.&quot;;
} else { //eğer $a, yukarıdaki koşullara uymuyorsa, yani bu örneğe göre 10'dan büyükse
echo &quot;a, 10'dan büyük&quot;;
}</pre>
<p>Burada dikkat edilmesi gereken şey şu, else if kullandığınızda döngünüzü else ile bitirmelisiniz, yani hiçbir koşul sağlanmadığında ne olacağını da belirtmelisiniz.</p>
<p><strong>Not: İlk makalemde değişken tanımlamaktan bahsetmiştim. Eğer okuduysanız hatırlayacağınız gibi sayılar için tırnak kullanmıyoruz. Eğer sayı değil de metin eşitliği yapıyorsanız tırnak kullanmalısınız. Örnek tanımlama:</p>
<pre class="brush: php;">if($a == &quot;cihan&quot;) {
echo &quot;cihan.&quot;;
}</pre>
<p>İşinize yarayabilecek 2 kod:</p>
<pre class="brush: php;">if(isset($_GET['id'])) { //eğer url'de id varsa, örneğin index.php?id veya index.php?id=2
echo &quot;tanımlanmış&quot;;
}

if(!isset($_GET['id'])) { //eğer url'de id yoksa
echo &quot;tanımlanmamış&quot;;
}

if(is_numeric($a)) { //eğer $a değeri sayısal bir değerse
echo &quot;sayısal&quot;;
}

if(!is_numeric($a)) { //eğer $a değeri sayısal bir değer değilse
echo &quot;sayısal değil&quot;;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.t-infection.com/php-standartlarinda-kodlama-3-if-else-kullanimi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP Standartlarında Kodlama 2: Sessionlarla Çalışmak</title>
		<link>http://www.t-infection.com/php-standartlarinda-kodlama-2-sessionlarla-calismak/</link>
		<comments>http://www.t-infection.com/php-standartlarinda-kodlama-2-sessionlarla-calismak/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 02:01:07 +0000</pubDate>
		<dc:creator>Bartuc</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[PHP Kodlama]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[Standart PHP Kodlama]]></category>

		<guid isPermaLink="false">http://www.t-infection.com/?p=281</guid>
		<description><![CDATA[Merhabalar, daha önce PHP Standartlarında değişken tanımlama ve bunların en doğru kullanımını anlatmıştım, şimdi ise sessionlara el atacağım. Sessionların bir çok farklı kullanım şekli var fakat burada en sağlıklısını açıklamaya çalışacağım, uzun birşey değil zaten. Yine de, bir çok kişinin yaşadığı uyum sorunları(PHP versiyonları arası) engellenmiş olacak.
Session bildiğiniz gibi aynı oturum dahilinde sayfalar arasında değişken [...]]]></description>
			<content:encoded><![CDATA[<p>Merhabalar, daha önce PHP Standartlarında değişken tanımlama ve bunların en doğru kullanımını anlatmıştım, şimdi ise sessionlara el atacağım. Sessionların bir çok farklı kullanım şekli var fakat burada en sağlıklısını açıklamaya çalışacağım, uzun birşey değil zaten. Yine de, bir çok kişinin yaşadığı uyum sorunları(PHP versiyonları arası) engellenmiş olacak.</p>
<p>Session bildiğiniz gibi aynı oturum dahilinde sayfalar arasında değişken taşımanızı sağlar. Yani a.php sayfasında tanımlanacak olan bir değişkeni b.php sayfasında da kullanmanız gerekiyorsa, sessionlar yardımınıza koşuyor.</p>
<p><span id="more-281"></span></p>
<p><strong>En önemli şey, kesinlikle ama kesinlikle, globals kullanmayın. Sadece session kullanın.</strong> Çünkü globals de yapabileceğiniz ufacık bir hata ile sadece sizin siteniz de değil, bütün sunucuyu tehdit altına atarsınız.</p>
<p>Sayfada sessionlarla çalışılacaksa, ilk olarak, sayfanın en üstlerinde bir yer olması daha iyi olur,</p>
<pre class="brush: php;">session_start();</pre>
<p>kodunu ekliyoruz. Bu kod eklenmediği sürece, sayfada hiçbir şekilde session çalıştıramazsınız. Yani yazdığınız kod çalışmıyorsa ilk önce bunu ekleyip eklemediğinizi kontrol edin, bilmemkaç saat kodlarda hata aramayın(başıma gelmişti :) ). Bu kodu ekledikten sonra, sayfada sessionlarla çalışabiliriz.</p>
<p>Burada PHP standartlarına göre dikkat etmemiz gereken şey şu. <strong>session_register()</strong> veya <span style="color: #000000;"><span style="color: #0000bb;">HTTP_SESSION_VARS</span></span> kullanacağımıza, session tanımlarken ve bunlarla işlem yaparken, $_SESSION[] kullanmak daha sağlıklı.</p>
<pre class="brush: php;">$_SESSION['uyeadi'] = &quot;Bartuc&quot;; // tanımladık
$uyeninadi = $_SESSION['uyeadi']; // kullandık</pre>
<p>Session&#8217;u bitirmek için ise, unset() kullanabiliriz veya boş bir değer verebiliriz, farketmez, hangisi kolayınıza gelirse. Yine de, session&#8217;dan tamamen kurtulmak için unset kullanmak daha iyi.</p>
<pre class="brush: php;">unset($_SESSION['uyeadi']); // session'u siler
$_SESSION['uyeadi'] = &quot;&quot;; // sessiona boş bir değer verir</pre>
<p>Burada belirttiğim şey PHP standartlarında olduğu için, localhostta çalıştı sunucuda çalışmadı ya da tersi durumları bu kodlarla yaşamazsınız. Rahat rahat kodlar, heryerde rahat rahat kullanabilirsiniz :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.t-infection.com/php-standartlarinda-kodlama-2-sessionlarla-calismak/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>PHP Standartlarında Kodlama 1: Değişken Tanımlama</title>
		<link>http://www.t-infection.com/php-standartlarinda-kodlama-1-degisken-tanimlama/</link>
		<comments>http://www.t-infection.com/php-standartlarinda-kodlama-1-degisken-tanimlama/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 13:27:23 +0000</pubDate>
		<dc:creator>Bartuc</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Değişkenler]]></category>
		<category><![CDATA[PHP Kodlama]]></category>
		<category><![CDATA[Standart PHP Kodlama]]></category>

		<guid isPermaLink="false">http://www.t-infection.com/?p=261</guid>
		<description><![CDATA[Merhabalar, PHP ile ilgili 2. yazımla tekrar beraberiz. Bu makaleyi daha önce yazmış olmama rağmen, burada yayınlamak istedim çünkü, PHP standartlarında kodlama yapmak çok önemlidir. Her ne kadar, farklı şekillerde yazdığınız kodlar çalışsa da veye çalışıyor görünse de, kodu uslubuyla yazmadıysanız daha sonra başınızı ağrıtabilir.
Hani olur ya, localhost&#8217;da çalışan kod sunucuda çalışmaz, ya da PHP [...]]]></description>
			<content:encoded><![CDATA[<p>Merhabalar, PHP ile ilgili 2. yazımla tekrar beraberiz. Bu makaleyi daha önce yazmış olmama rağmen, burada yayınlamak istedim çünkü, PHP standartlarında kodlama yapmak çok önemlidir. Her ne kadar, farklı şekillerde yazdığınız kodlar çalışsa da veye çalışıyor görünse de, kodu uslubuyla yazmadıysanız daha sonra başınızı ağrıtabilir.</p>
<p>Hani olur ya, localhost&#8217;da çalışan kod sunucuda çalışmaz, ya da PHP versiyon güncellenir eskiden çalışan kodlar çalışmaz filan, PHP Standartlarında Kodlama serisini bu yüzden yazmaya karar verdim, php.net standartlarına göre en uygun, en standart kodlamayı yapmanın püf noktalarını anlatmak için. Aklıma geldikçe ve vakit buldukça en çok yapılan hataları ve en doğru kullanımları anlatacağım.</p>
<p><span id="more-261"></span></p>
<p>Bir değişkeni tanımlarken fazla ne detay olabilir diyebilirsiniz. Fakat php.net der ki, eğer tanımlanan değişken bir sayıysa, bunu tanımlarken tırnak <strong>kullanmamalıyız</strong>.</p>
<pre class="brush: php;">$degisken = 556456;</pre>
<p>gibi.</p>
<p>Harf ya da bir metin tanımlarken, tırnaklar kullanırız, açılış/kapanış tırnağının aynısı tanımladığımız metnin içinde geçiyorsa önüne \ koyarız. Peki, &#8221; ya da &#8216; kullanılabiliyorken, hangisini nerede kullanmalıyız?</p>
<pre class="brush: php;">$bartuc = 'cihan';
$degisken = 'sadasd dasdasdas $bartuc';</pre>
<p>şeklinde kullandığımızda ve bunu echo yaptırdığımızda, sayfaya aynen <strong>sadasd dasdasdas $bartuc </strong>şeklinde basılır. Fakat;</p>
<pre class="brush: php;">$bartuc = 'cihan';
$degisken = &quot;sadasd dasdasdas $bartuc&quot;;</pre>
<p>kullandığımızda, sayfaya basılan şey aynen <strong>sadasd dasdasdas cihan</strong> olacaktır. Yani, &#8216; kullanıldığında içindeki değişkenler değişken olarak algılanmaz ve sayfaya aynen basılır, &#8221; kullanıldığında ise değişkenler okunur.</p>
<p>Eğer;</p>
<pre class="brush: php;">$bartuc = 'cihan';
$degisken = &quot;sadasd dasdasdas \$bartuc&quot;;</pre>
<p>şeklinde, çifttırnak içinde $ değişken tanımlama karakterimizi \ ile birlikte kullanırsak, tek tırnaktan farkı kalmayacak ve değişkeni algılamadan basacaktır.<br />
Peki, çift tırnak içinde değişken kullanmak sağlıklı mıdır? Çalışacak da olsa, <strong>sağlıklı değildir.</strong> Kullanılması gereken en sağlıklı format, yazdığımız metinler ile değişkenleri birbirinden . karakteri ile ayırmaktır. yani;</p>
<pre class="brush: php;">$degisken = &quot;sadasd dasdasdas $bartuc&quot;;</pre>
<p>ve</p>
<pre class="brush: php;">$degisken = &quot;sadasd dasdasdas &quot;.$bartuc; //ya da
$degisken2 = &quot;sadasd dasdasdas &quot;.$bartuc.&quot; sadasdsa dasdasd &quot;.$bartuc2.&quot; dasdasd&quot;;</pre>
<p>aynı işi göreceklerdir ama, alttaki kullanım biçimi daha sağlıklıdır, olması gereken budur. Peki çok karışık bir kod yazıyorsanız ve bütün değişkenleri tek tek böyle ayırmak istemiyorsanız veya ayırarak bir sonuca varamıyorsanız ne yapacaksınız? sprintf() fonksiyonu burada yardımımıza yetişiyor. Basit bir örnekle bu fonksiyonun kullanımını anlatacağım.</p>
<pre class="brush: php;">$tanim1 = &quot;kere&quot;;
$tanim2 = &quot;dört&quot;;
$tanim3 = &quot;beş&quot;;
$degisken = &quot;iki $tanim1 iki $tanim2 eder. üç ya da $tanim3 değil.&quot;;</pre>
<p>yerine;</p>
<pre class="brush: php;">$tanim1 = &quot;kere&quot;;
$tanim2 = &quot;dört&quot;;
$tanim3 = &quot;beş&quot;;
$degisken = sprintf(&quot;iki %s iki %s eder. üç ya da %s değil.&quot;, $tanim1, $tanim2, $tanim3);</pre>
<p>kullanmak daha sağlıklı olacaktır. Peki burada tam olarak ne yaptık?<br />
sprintf fonksiyonunda ilk parametre, tanımlanacak olan metindir. bu metinin içindeki değişkenleri %s karakteri ile değiştiririz. tırnağımızı kapatıp virgülümüzü koyduktan sonra, yani ilk parametreyi bitirdikten sonra, sırasıyla yerleştirdiğimiz %s&#8217;lerin yerlerine hangi değişkenler gelecekse ayrı parametreler halinde ekleyerek parantezimizi kapatıp fonksiyonu sonlandırırız.</p>
<p><strong>Tanımladığımız bir değişkeni sayfaya bastırırken de aynı kurallar geçerlidir. Unutulmamalı ki, hiçbir değişken, doğrudan sayfaya kod halinde basılmayacağı sürece, tırnak içinde kullanılmamalıdır.</strong></p>
<pre class="brush: php;">echo &quot;$cihan&quot;;</pre>
<p>ve</p>
<pre class="brush: php;">echo $cihan;</pre>
<p>aynı işi yapsalar da, kullanmak için alttaki seçilmelidir.</p>
<p>Basit şeylerden bahsettim, daha sonra daha farklı fonksiyonların kullanımıyla ilgili ayrıntılı dökümanlar yazacağım.</p>
<p>Görüşmek üzere.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.t-infection.com/php-standartlarinda-kodlama-1-degisken-tanimlama/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>SQL&#8217;de Kabus, SQL Injection!</title>
		<link>http://www.t-infection.com/sqlde-kabus-sql-injection/</link>
		<comments>http://www.t-infection.com/sqlde-kabus-sql-injection/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 19:15:19 +0000</pubDate>
		<dc:creator>Bartuc</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[PHP Güvenlik]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Injection]]></category>

		<guid isPermaLink="false">http://www.t-infection.com/?p=253</guid>
		<description><![CDATA[Merhaba t-infection okurları, bu sitedeki ilk yazımda, PHP&#8217;ye ilk başladığım zamanlar en çok yaptığım bir hatayı ve bunu nasıl düzelteceğimizi anlatmak istedim. Eğer PHP yazıyorsanız, ilk başta öğrenmeniz gereken önemli noktalardan birisidir, aksi taktirde bütün emekleriniz boşa gidebilir.
SQL injection denen method ile, veritabanınıza yetkisiz işlem yaptırılabilir. Bu yetkisiz işlemler ile, veritabanınızdaki bir tablo tamamen boşaltılabilir, [...]]]></description>
			<content:encoded><![CDATA[<p>Merhaba t-infection okurları, bu sitedeki ilk yazımda, PHP&#8217;ye ilk başladığım zamanlar en çok yaptığım bir hatayı ve bunu nasıl düzelteceğimizi anlatmak istedim. Eğer PHP yazıyorsanız, ilk başta öğrenmeniz gereken önemli noktalardan birisidir, aksi taktirde bütün emekleriniz boşa gidebilir.</p>
<p>SQL injection denen method ile, veritabanınıza yetkisiz işlem yaptırılabilir. Bu yetkisiz işlemler ile, veritabanınızdaki bir tablo tamamen boşaltılabilir, veriler silinebilir veya veri eklenebilir, daha da kötüsü yazdığınız script bir yönetim paneline sahipse buraya izinsiz girişler olabilir.</p>
<p>SQL injection methodları farklılık gösterebilir, URL ile yapılabilir(GET), sitedeki formlar ile yapılabilir(POST). Temel mantığı ise, sizin yazdığınız SQL sorgularını safdışı bırakarak çalıştırılmak istenen sorguların çalıştırılmasıdır. Burada bu methodları tabi ki anlatmayacağım, bunun yerine PHP&#8217;de SQL injection&#8217;a karşı nasıl önlemler alabileceğimizi anlatacağım.<span id="more-253"></span></p>
<p>Basit bir SQL sorgumuz olsun, url ile gelen id&#8217;ye sahip makaleyi veritabanından seçelim.</p>
<pre class="brush: php;">$query = mysql_query(&quot;SELECT * FROM makaleler WHERE id=$_GET['id']&quot;, $baglanti);</pre>
<p>Bu şekilde kullandığınızda, çok büyük bir tehlike içerisindesiniz demektir. Bu sorguyu güvenli hale getirmek için sprintf fonksiyonunu da kullanacağız(bunu sadece daha düzenli bir kod yazımı için kullanıyoruz) ve sorgumuzu aşağıdaki hale getireceğiz:</p>
<pre class="brush: php;">$id = $_GET['id'];
$id = get_magic_quotes_gpc() ? stripslashes($id) : $id;
$id= function_exists(&quot;mysql_real_escape_string&quot;) ? mysql_real_escape_string($id) : mysql_escape_string($id);
$query = mysql_query(sprintf(&quot;SELECT * FROM makaleler WHERE id='%s'&quot;, $id), $baglanti);</pre>
<p>Sorgumuzu buhale getirerek kimsenin SQL&#8217;imize dokunmamasını sağlamış oluyoruz.</p>
<p>Bir örnek daha vermek gerekirse;</p>
<pre class="brush: php;">$query = mysql_query(&quot;INSERT INTO makaleler(baslik, icerik, yazan) VALUES ($_POST['baslik'], $_POST['icerik'], $_POST['yazan'])&quot;, $baglanti);</pre>
<p>yerine;</p>
<pre class="brush: php;">function guvenliyap($value) { // kullandığımız kodları fonksiyon haline getirelim
$value = get_magic_quotes_gpc() ? stripslashes($value) : $value;
$value= function_exists(&quot;mysql_real_escape_string&quot;) ? mysql_real_escape_string($value) : mysql_escape_string($value);
return $value;
}

$query = mysql_query(sprintf(&quot;INSERT INTO makaleler(baslik, icerik, yazan) VALUES ('%s', '%s', '%s')&quot;, guvenliyap($_POST['baslik']), guvenliyap($_POST['icerik']), guvenliyap($_POST['yazan'])), $baglanti);</pre>
<p>kullanarak güvenliğimizi sağlamış oluyoruz.</p>
<p>Kısacası, URL veya POST ile gelen bütün verileri bir filtreden geçirerek, bu gelen verinin içinde bulunabilecek &#8216; işaretlerini \&#8217; haline getiriyoruz. Böylece bu gelen verilerdeki zararlı işaretler, sorgumuzun içine karışmıyor ve SQL injection ile sitemize zarar vermek isteyen kişiler avuçlarını yalıyorlar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.t-infection.com/sqlde-kabus-sql-injection/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

