<?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>Kesdi Hane' ye Hoşgeldiniz &#187; PHP</title>
	<atom:link href="http://blog.kesdi.com/konular/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kesdi.com</link>
	<description>Kestane'ye Hoşgeldiniz</description>
	<lastBuildDate>Wed, 21 Jul 2010 11:32:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Online PHP Şifreleme</title>
		<link>http://blog.kesdi.com/php/online-php-sifreleme/</link>
		<comments>http://blog.kesdi.com/php/online-php-sifreleme/#comments</comments>
		<pubDate>Thu, 20 May 2010 08:56:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Sayfaları]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[decode]]></category>
		<category><![CDATA[encyript]]></category>

		<guid isPermaLink="false">http://blog.kesdi.com/?p=514</guid>
		<description><![CDATA[http://www.byterun.com/free-php-encoder.php adresine girip, epostanızı girerek send me login-id şeklinde talepte bulunursanız, online php şifreleyen sayfaya girişiniz için bir şifre gönderiliyor. Bu şifre ile php kodlarınızı online şifreleyebiliyorsunuz. Çok profesyonel olmayan şifrelemeler için kullanılabilir.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.byterun.com/free-php-encoder.php">http://www.byterun.com/free-php-encoder.php</a> adresine girip, epostanızı girerek send me login-id şeklinde talepte bulunursanız, online php şifreleyen sayfaya girişiniz için bir şifre gönderiliyor. Bu şifre ile php kodlarınızı online şifreleyebiliyorsunuz.</p>
<p>Çok profesyonel olmayan şifrelemeler için kullanılabilir.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.kesdi.com%2Fphp%2Fonline-php-sifreleme%2F&amp;linkname=Online%20PHP%20%C5%9Eifreleme">Paylaş/Kaydet</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.kesdi.com/php/online-php-sifreleme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jquery ile ajax kullanırken explorer 7&#8242;de refresh sorunu</title>
		<link>http://blog.kesdi.com/php/jquery-ile-ajax-kullanirken-explorer-7de-refresh-sorunu/</link>
		<comments>http://blog.kesdi.com/php/jquery-ile-ajax-kullanirken-explorer-7de-refresh-sorunu/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 19:46:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webmaster]]></category>

		<guid isPermaLink="false">http://blog.kesdi.com/?p=490</guid>
		<description><![CDATA[Ajax nedir bi de biz kullanalim derken jquery diye bişey buldum. pratik bir şekilde ajax kullanmaya yarıyor. Ama nedense firefox altında çalışan sayfa explorer 7  kullanırken refresh etmiyordu. Gece geç saat olduğu için uykusuzluk ile çözemediğimi düşünüp yattım. Ertesi gün tekrar denediğimde aynı sorun vardı.  Sonunda sorunun cache ile çalışmayı tercih eden explorer yüzünden refresh [...]]]></description>
			<content:encoded><![CDATA[<p>Ajax nedir bi de biz kullanalim derken jquery diye bişey buldum. pratik bir şekilde ajax kullanmaya yarıyor. Ama nedense firefox altında çalışan sayfa explorer 7  kullanırken refresh etmiyordu. Gece geç saat olduğu için uykusuzluk ile çözemediğimi düşünüp yattım. Ertesi gün tekrar denediğimde aynı sorun vardı.</p>
<p><span id="more-490"></span> Sonunda sorunun cache ile çalışmayı tercih eden explorer yüzünden refresh etmediği kanaatine vardım. kısa yolda header bilgisine cache tutmaması gerektiğini sayfanın eskidiğini söyleyen bir kod yazdım. A aaa çözülmüş sorun <img src='http://blog.kesdi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Kodu vereyim de işe yarasın.</p>
<p><code>
<pre class="brush: php;">  &lt;?php
header(&quot;Cache-Control: no-cache, must-revalidate&quot;); // HTTP/1.1 (cache tutma)
header(&quot;Expires: Sat, 26 Jul 1997 05:00:00 GMT&quot;); // Sayfanın tarihi geçmiş
?&gt; </pre>
<p></code></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.kesdi.com%2Fphp%2Fjquery-ile-ajax-kullanirken-explorer-7de-refresh-sorunu%2F&amp;linkname=jquery%20ile%20ajax%20kullan%C4%B1rken%20explorer%207%26%238242%3Bde%20refresh%20sorunu">Paylaş/Kaydet</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.kesdi.com/php/jquery-ile-ajax-kullanirken-explorer-7de-refresh-sorunu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>php ile online uyeler</title>
		<link>http://blog.kesdi.com/php/php-ile-online-uyeler/</link>
		<comments>http://blog.kesdi.com/php/php-ile-online-uyeler/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 20:37:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[online üyeler]]></category>
		<category><![CDATA[sayfadaki online üyeler]]></category>

		<guid isPermaLink="false">http://blog.kesdi.com/?p=461</guid>
		<description><![CDATA[Sayfalarda, online üyeleri nasıl yazdırabiliriz? Mantık basit, sayfa refresh edildiğinde 10 dakika ( yada belli bir zaman) içinde sayfaya girmiş üye isimlerini sayfada farzedip, isimlerini yazdırmamız gerekiyor. session_start(); function online() { //MYSQL BAGLANTI KODLARI $sure = time()-600; $uye = $_SESSION[&#34;nick&#34;]; $mysql = mysql_query(&#34;update online set zaman='time()' where uye='$uye'&#34;); $sorgu = mysql_query(&#34;Select uye from online where [...]]]></description>
			<content:encoded><![CDATA[<p>Sayfalarda, online üyeleri nasıl yazdırabiliriz? Mantık basit, sayfa refresh edildiğinde 10 dakika ( yada belli bir zaman) içinde sayfaya girmiş üye isimlerini sayfada farzedip, isimlerini yazdırmamız gerekiyor.<br />
<span id="more-461"></span></p>
<pre class="brush: plain;">
session_start();
function online() {
//MYSQL BAGLANTI KODLARI
$sure = time()-600;
$uye = $_SESSION[&quot;nick&quot;];
$mysql = mysql_query(&quot;update online set zaman='time()' where uye='$uye'&quot;);
$sorgu = mysql_query(&quot;Select uye from online where zaman&gt;='$sure'&quot;);
while ($sonuc=mysql_fetch_array($sorgu)){
echo &quot;&lt;a href='$sonuc[0]'&gt;&quot;.$sonuc[0].&quot;&lt;/a&gt;&quot;;
}
$mysql = mysql_query(&quot; delete from online where zaman&lt;'$sure'&quot;);
}
</pre>
<p>Öncelikle oturumumuzu başlatıyoruz. Sonra $sure isimli değişkene bundan yaklaşık 10 dk öncesini alıyoruz. time() fonksiyonu çalıştırıldığı anın saniye cinsinden verisini bize verir. Sanıyorum 1 Ocak 1970′ den beri olan sürenin…</p>
<p>Neyse biz 1 dk = 60 sn orantısından 60*10 = 600 sn elde ediyoruz ve time() verisinden çıkarıyoruz. Bu sayede kodun çalıştırıldığı andan 10 dk öncesi elde edilmiş oluyor. Sonrasında kullanıcının nick verisini alıyoruz ve veritabanından kullanıcıyı seçip zaman isimli verisini şu andaki saniye ile değiştiyoruz. Hemen ardından mysql veritabanından zaman isimli sütunu şu andaki $sure yani normal andan 10 dk öncesi şeklinde bir şartla çağırıyoruz.</p>
<p>Yukarıdaki teknik sayesinde zaman isimli sütunu 10 dk öncesinden geri kalanlar alınmıyor ve sistemden düşmüş kabul ediliyor. Onun ardından seçilen kişiler tek tek yazdırılıyor.</p>
<p>Bunun dışında bizim istediğimiz zaman dışında kalanlar fazlalık yaratmasın diye veritabanından siliyor…</p>
<p><strong>Peki bu kodları nasıl çalıştırıcaz?</strong></p>
<p>Arkadaşlar kodlar fonksiyon haline getirilmiş durumda ki heryerde rahatça kullanılabilsin. İşte bu yüzden biz de fonksiyonu çağırıyoruz;</p>
<pre class="brush: plain;">
&lt;span style=&quot;MARGIN-LEFT: 0px !important&quot;&gt;&lt;code&gt;online();&lt;/code&gt;&lt;/span&gt;
</pre>
<p>online isimli tabloya 2 alan eklemeyi unutmayın <img src='http://blog.kesdi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="brush: plain;">
CREATE TABLE `online` (
  `uye` text NOT NULL,
  `zaman` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin5;
</pre>
<p><em>Kaynak : </em><a title="Bir Öğrenci Klasiği" href="http://www.birogrenciklasigi.com/php-ile-online-uyeler.html" target="_blank"><em>Bir Öğrenci Klasiği</em></a><br />
<em>Not: Yazının kendisine ait olduğunu öğrendikten sonra Ertuğrul arkadaşımızın sayfasını gezdim ve çok beğendim. Mutlaka gezmenizi tavsiye ediyorum. </em><a title="Bir Öğrenci Klasiği" href="http://www.birogrenciklasigi.com" target="_blank"><em>http://www.birogrenciklasigi.com</em></a></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.kesdi.com%2Fphp%2Fphp-ile-online-uyeler%2F&amp;linkname=php%20ile%20online%20uyeler">Paylaş/Kaydet</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.kesdi.com/php/php-ile-online-uyeler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Başka bir php seo fonksiyonu</title>
		<link>http://blog.kesdi.com/php/baska-bir-php-seo-fonksiyonu/</link>
		<comments>http://blog.kesdi.com/php/baska-bir-php-seo-fonksiyonu/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 20:07:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.kesdi.com/?p=458</guid>
		<description><![CDATA[function cevir($url) { $url = trim($url); $url = strtolower($url); $find = array(&#8221;, &#8221;); $url = str_replace ($find, &#8221;, $url); $url = preg_replace(&#8216;/&#60;(\/{0,1})img(.*?)(\/{0,1})\&#62;/&#8217;, &#8216;image&#8217;, $url); $find = array(&#8216; &#8216;, &#8216;&#8221;&#8216;, &#8216;&#38;&#8217;, &#8216;&#38;&#8217;, &#8216;\r\n&#8217;, &#8216;\n&#8217;, &#8216;/&#8217;, &#8216;\\&#8217;, &#8216;+&#8217;, &#8216;&#60;&#8217;, &#8216;&#62;&#8217;); $url = str_replace ($find, &#8216;-&#8217;, $url); $find = array(&#8216;é&#8217;, &#8216;è&#8217;, &#8216;ë&#8217;, &#8216;ê&#8217;, &#8216;É&#8217;, &#8216;È&#8217;, &#8216;Ë&#8217;, &#8216;Ê&#8217;); $url [...]]]></description>
			<content:encoded><![CDATA[<p>function cevir($url)<br />
{<br />
$url = trim($url);<br />
$url = strtolower($url);<br />
$find = array(&#8221;, &#8221;);<br />
$url = str_replace ($find, &#8221;, $url);<br />
$url = preg_replace(&#8216;/&lt;(\/{0,1})img(.*?)(\/{0,1})\&gt;/&#8217;, &#8216;image&#8217;, $url);<br />
$find = array(&#8216; &#8216;, &#8216;&#8221;&#8216;, &#8216;&amp;&#8217;, &#8216;&amp;&#8217;, &#8216;\r\n&#8217;, &#8216;\n&#8217;, &#8216;/&#8217;, &#8216;\\&#8217;, &#8216;+&#8217;, &#8216;&lt;&#8217;, &#8216;&gt;&#8217;);<br />
$url = str_replace ($find, &#8216;-&#8217;, $url);<br />
$find = array(&#8216;é&#8217;, &#8216;è&#8217;, &#8216;ë&#8217;, &#8216;ê&#8217;, &#8216;É&#8217;, &#8216;È&#8217;, &#8216;Ë&#8217;, &#8216;Ê&#8217;);<br />
$url = str_replace ($find, &#8216;e&#8217;, $url);<br />
$find = array(&#8216;í&#8217;, &#8216;ı&#8217;, &#8216;ì&#8217;, &#8216;î&#8217;, &#8216;ï&#8217;, &#8216;I&#8217;, &#8216;İ&#8217;, &#8216;Í&#8217;, &#8216;Ì&#8217;, &#8216;Î&#8217;, &#8216;Ï&#8217;);<br />
$url = str_replace ($find, &#8216;i&#8217;, $url);<br />
$find = array(&#8216;ó&#8217;, &#8216;ö&#8217;, &#8216;Ö&#8217;, &#8216;ò&#8217;, &#8216;ô&#8217;, &#8216;Ó&#8217;, &#8216;Ò&#8217;, &#8216;Ô&#8217;);<br />
$url = str_replace ($find, &#8216;o&#8217;, $url);<br />
$find = array(&#8216;á&#8217;, &#8216;ä&#8217;, &#8216;â&#8217;, &#8216;à&#8217;, &#8216;â&#8217;, &#8216;Ä&#8217;, &#8216;Â&#8217;, &#8216;Á&#8217;, &#8216;À&#8217;, &#8216;Â&#8217;);<br />
$url = str_replace ($find, &#8216;a&#8217;, $url);<br />
$find = array(&#8216;ú&#8217;, &#8216;ü&#8217;, &#8216;Ü&#8217;, &#8216;ù&#8217;, &#8216;û&#8217;, &#8216;Ú&#8217;, &#8216;Ù&#8217;, &#8216;Û&#8217;);<br />
$url = str_replace ($find, &#8216;u&#8217;, $url);<br />
$find = array(&#8216;ç&#8217;, &#8216;Ç&#8217;);<br />
$url = str_replace ($find, &#8216;c&#8217;, $url);<br />
$find = array(&#8216;ş&#8217;, &#8216;Ş&#8217;);<br />
$url = str_replace ($find, &#8216;s&#8217;, $url);<br />
$find = array(&#8216;ğ&#8217;, &#8216;Ğ&#8217;);<br />
$url = str_replace ($find, &#8216;g&#8217;, $url);<br />
$find = array(&#8216;/[^a-z0-9\-&lt;&gt;]/&#8217;, &#8216;/[\-]+/&#8217;, &#8216;/&lt;[^&gt;]*&gt;/&#8217;);<br />
$repl = array(&#8221;, &#8216;-&#8217;, &#8221;);<br />
$url = preg_replace ($find, $repl, $url);<br />
$url = str_replace (&#8216;&#8211;&#8217;, &#8216;-&#8217;, $url);<br />
return $url;<br />
}</p>
<p>Örnek Kullanım:</p>
<p>cevir(&#8220;Amça bana Şeker Al&#8221;); // Çıktısı amca-bana-seker-al Olacaktır</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.kesdi.com%2Fphp%2Fbaska-bir-php-seo-fonksiyonu%2F&amp;linkname=Ba%C5%9Fka%20bir%20php%20seo%20fonksiyonu">Paylaş/Kaydet</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.kesdi.com/php/baska-bir-php-seo-fonksiyonu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP ile Türkçe Fonksiyonlar</title>
		<link>http://blog.kesdi.com/php/php-ile-turkce-fonksiyonlar/</link>
		<comments>http://blog.kesdi.com/php/php-ile-turkce-fonksiyonlar/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 18:07:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.kesdi.com/?p=445</guid>
		<description><![CDATA[PHP'nin harfler ile ilgili fonksiyonları türkçe desteği sunmamaktadır. Biz bu yüzden kendi türkçe destekli fonksiyonlarımızı yazacağız. &#60;?php function tr_strtoupper($metin) { $metin = strtr($metin, &#34;ığüşiöç&#34;, &#34;IĞÜŞİÖÇ&#34;);&#60;/pre&#62; return strtoupper($metin); } # Örnek Kullanımı echo tr_strtoupper(&#34;örnek türkçe metin&#34;); ?&#62; Örnek kullanımın çıktısı ÖRNEK TÜRKÇE METİN şeklinde olacaktır. &#60;?php function tr_ucwords($metin) { $metin[0] = tr_strtoupper($metin[0]); for ($i = 0; [...]]]></description>
			<content:encoded><![CDATA[<pre>PHP'nin harfler ile ilgili fonksiyonları türkçe desteği sunmamaktadır. Biz bu yüzden kendi türkçe destekli fonksiyonlarımızı yazacağız.
<span id="more-445"></span>
<pre class="brush: plain;">
&lt;?php
function tr_strtoupper($metin) {
$metin = strtr($metin, &quot;ığüşiöç&quot;, &quot;IĞÜŞİÖÇ&quot;);&lt;/pre&gt;
 return strtoupper($metin);
}

# Örnek Kullanımı
echo tr_strtoupper(&quot;örnek türkçe metin&quot;);
?&gt;
</pre>
<p>Örnek kullanımın çıktısı <strong><code>ÖRNEK TÜRKÇE METİN</code></strong> şeklinde olacaktır.</p>
<pre class="brush: plain;">

&lt;?php
function tr_ucwords($metin) {
 $metin[0] = tr_strtoupper($metin[0]);
 for ($i = 0; $i &lt; strlen($metin); $i++) {
 if (($metin[$i] == &quot; &quot; || $metin[$i] == &quot;(&quot;) &amp;&amp; isset($metin[$i + 1]))
 $metin[$i + 1] = tr_strtoupper($metin[$i + 1]);
 }

 return $metin;
}

# Örnek Kullanımı
echo tr_ucwords(&quot;örnek türkçe metin&quot;);
?&gt;
</pre>
<p>Örnek kullanımın çıktısı <strong><code>Örnek Türkçe Metin</code></strong> şeklinde olacaktır.</p>
<pre class="brush: plain;">
&lt;?php
function tr_strtolower($metin) {
 $metin = strtr($metin, &quot;IĞÜŞİÖÇ&quot;, &quot;ığüşiöç&quot;);
 return strtolower($metin);
}

# Örnek Kullanımı
echo tr_strtolower(&quot;ÖRNEK TÜRKÇE METİN&quot;);
?&gt;
</pre>
<p>Örnek kullanımın çıktısı <strong><code>örnek türkçe metin</code> </strong>şeklinde olacaktır.</pre>
</pre>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.kesdi.com%2Fphp%2Fphp-ile-turkce-fonksiyonlar%2F&amp;linkname=PHP%20ile%20T%C3%BCrk%C3%A7e%20Fonksiyonlar">Paylaş/Kaydet</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.kesdi.com/php/php-ile-turkce-fonksiyonlar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php ile resim köşelerini yuvarlayan class</title>
		<link>http://blog.kesdi.com/php/php-ile-resim-koselerini-yuvarlayan-class/</link>
		<comments>http://blog.kesdi.com/php/php-ile-resim-koselerini-yuvarlayan-class/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 12:21:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.kesdi.com/?p=431</guid>
		<description><![CDATA[PHP ile resimlerin köşelerini bu ufak class yardımı ile yuvarlayabiliriz. &#60;?php /*  * Created on 15.Ara.2006  *  * A simple class that creates rounded corner images for tables  * Coded By Ozgur Kaya  * &#60;a href=&#34;mailto:ozgurkaya01@hotmail.com&#34;&#62;ozgurkaya01@hotmail.com&#60;/a&#62;  */ class roundedCorners {     var $width = 50;     var $height = 50;     var $bgcolor = &#34;#FFFFFF&#34;; [...]]]></description>
			<content:encoded><![CDATA[<p>PHP ile resimlerin köşelerini bu ufak class yardımı ile yuvarlayabiliriz.</p>
<p><span id="more-431"></span>
<pre class="brush: php;">
&lt;?php
/*
 * Created on 15.Ara.2006
 *
 * A simple class that creates rounded corner images for tables
 * Coded By Ozgur Kaya
 * &lt;a href=&quot;mailto:ozgurkaya01@hotmail.com&quot;&gt;ozgurkaya01@hotmail.com&lt;/a&gt;
 */

class roundedCorners {
    var $width = 50;
    var $height = 50;
    var $bgcolor = &quot;#FFFFFF&quot;;
    var $imagecolor = &quot;#ff0000&quot;;
    var $align;
    var $cx;
    var $cy;
    var $image;
    var $type = &quot;jpeg&quot;;
    var $transparent = false;

    function roundedCorners($width,$height,$align,$bgcolor,$color,$type,$transparent){
        $this-&gt;setWidth($width); // sets image width
        $this-&gt;setHeight($height); // sets image height
        $this-&gt;setAlign($align);  // sets align of image (top-left, top-right, bottom-left, bottom-right)
        $this-&gt;setbgColor($bgcolor); // set image background color
        $this-&gt;setImageColor($color); // set rounded image color
        $this-&gt;setType($type); // set extension for image (jpg,gif,png)
        $this-&gt;setTransparent($transparent); // set transparency of the image
    }

    function setAlign($align){
        $align = ($align) ? $align : $this-&gt;align;
  if ($this-&gt;width == $this-&gt;height) {
   $align_array = array (
      &quot;tl&quot;=&gt;array($this-&gt;width,$this-&gt;height),
      &quot;tr&quot;=&gt;array(0,$this-&gt;width),
      &quot;bl&quot;=&gt;array($this-&gt;height,0),
      &quot;br&quot;=&gt;array(0,0)
     );
  }
  elseif ($this-&gt;width &gt; $this-&gt;height) {
   $align_array = array (
      &quot;tl&quot;=&gt;array($this-&gt;width,$this-&gt;height),
      &quot;tr&quot;=&gt;array(0,$this-&gt;height),
      &quot;bl&quot;=&gt;array($this-&gt;height*2,0),
      &quot;br&quot;=&gt;array(0,0)
     );   
  }
  elseif ($this-&gt;width &lt; $this-&gt;height) {
   $align_array = array (
      &quot;tl&quot;=&gt;array($this-&gt;width,$this-&gt;height),
      &quot;tr&quot;=&gt;array(0,$this-&gt;height),
      &quot;bl&quot;=&gt;array($this-&gt;width,0),
      &quot;br&quot;=&gt;array(0,0)
     );   
  }
        $this-&gt;cx = $align_array[$align][0];
        $this-&gt;cy = $align_array[$align][1];
    }

    function setWidth($width){
        $this-&gt;width = ($width) ? $width : $this-&gt;width;
    }

    function setHeight($height) {
        $this-&gt;height = ($height) ? $height : $this-&gt;height;
    }

    function setBgColor($bgcolor){
        $this-&gt;bgcolor = ($bgcolor) ? $bgcolor : $this-&gt;bgcolor;
    }

    function setImageColor($color) {
        $this-&gt;imagecolor = ($color) ? $color : $this-&gt;imagecolor;
    }

    function setType($type){
        if ($type == &quot;jpg&quot;)
            $type = &quot;jpeg&quot;;
        $types = array(&quot;gif&quot;,&quot;jpeg&quot;,&quot;png&quot;);
        $type = (in_array($type,$types)) ? $type : &quot;jpeg&quot;;
        $this-&gt;type = $type;
    }

    function setTransparent($transparent){
        if ($transparent) {
            $this-&gt;type = &quot;gif&quot;;
            $this-&gt;transparent = true;
        }
        else
            $this-&gt;transparent = false;
    }

    function displayImage($type){
        $types = array (&quot;gif&quot;=&gt;&quot;gif&quot;,&quot;png&quot;=&gt;&quot;png&quot;,&quot;jpg&quot;=&gt;&quot;jpeg&quot;);
        $type = $types[$type];
        header(&quot;Content-type: image/png]}&quot;);
        imagepng($this-&gt;image);
    }

    function createRGBValues($color) {
        $color = str_replace(&quot;#&quot;,&quot;&quot;,$color);
        $rgb[&quot;red&quot;] = hexdec(substr($color,0,2));
        $rgb[&quot;green&quot;] = hexdec(substr($color,2,2));
        $rgb[&quot;blue&quot;] = hexdec(substr($color,4,2));
        return $rgb;
    }

    function createImage() {
        $this-&gt;image = imagecreatetruecolor($this-&gt;width,$this-&gt;height);

        //
        $bg_rgb = $this-&gt;createRGBValues($this-&gt;bgcolor);
        $bg = imagecolorallocate($this-&gt;image, $bg_rgb[&quot;red&quot;], $bg_rgb[&quot;green&quot;], $bg_rgb[&quot;blue&quot;]);
        if ($this-&gt;transparent)
            $bg = imagecolortransparent($this-&gt;image,$bg);
        imagefill($this-&gt;image, 0, 0, $bg);

        //
        $img_rgb = $this-&gt;createRGBValues($this-&gt;imagecolor);;
        $col_ellipse = imagecolorallocate($this-&gt;image, $img_rgb[&quot;red&quot;], $img_rgb[&quot;green&quot;], $img_rgb[&quot;blue&quot;]);

        $w = $this-&gt;width * 2;
        $h = $this-&gt;height * 2;
        imagefilledellipse($this-&gt;image, $this-&gt;cx, $this-&gt;cy, $w, $h, $col_ellipse);

        header(&quot;Content-type: image/{$this-&gt;type}&quot;);  // set header (you can use different types png,jpeg,gif
        switch ($this-&gt;type){
            case &quot;gif&quot;:
                imagegif($this-&gt;image);
                break;
            case &quot;png&quot;:
                imagepng($this-&gt;image);
                break;
            case &quot;jpeg&quot;:
                imagejpeg($this-&gt;image);
                break;
        }
    }

}
?&gt;
</pre>
<p>Kullanımı</p>
<pre class="brush: php;">
&lt;?php
//using class
$img = new roundedCorners($_GET['w'],$_GET['h'],$_GET['al'],$_GET['bg'],$_GET['cl'],$_GET['type'],$_GET['tr']); // create a new rounded corner image object with width, height, and align attributes
$img-&gt;createImage(); // create image
//

?&gt;
</pre>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.kesdi.com%2Fphp%2Fphp-ile-resim-koselerini-yuvarlayan-class%2F&amp;linkname=php%20ile%20resim%20k%C3%B6%C5%9Felerini%20yuvarlayan%20class">Paylaş/Kaydet</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.kesdi.com/php/php-ile-resim-koselerini-yuvarlayan-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Php ile saldırıları önlemek</title>
		<link>http://blog.kesdi.com/php/php_ile_saldirilari_onlemek/</link>
		<comments>http://blog.kesdi.com/php/php_ile_saldirilari_onlemek/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 22:20:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.kesdi.com/?p=419</guid>
		<description><![CDATA[Php ile flood saldırılarından korunmak &#60;?php // ---------------------------------------------------------------------------- // // class.floodblocker.php - FloodBlocker class, ver.0.01 (April 15, 2005) // // Description: //   Class allowing to protect the scripts from flooding and to prevent //   automatic download of the site from single IP. // // Author: //   Vagharshak Tozalakyan &#60;&#60;a href=&#34;mailto:vagh@armdex.com&#34;&#62;vagh@armdex.com&#60;/a&#62;&#62; //   This module was written [...]]]></description>
			<content:encoded><![CDATA[<p>Php ile flood saldırılarından korunmak<span id="more-419"></span></p>
<pre class="brush: php;">
&lt;?php

// ----------------------------------------------------------------------------
//
// class.floodblocker.php - FloodBlocker class, ver.0.01 (April 15, 2005)
//
// Description:
//   Class allowing to protect the scripts from flooding and to prevent
//   automatic download of the site from single IP.
//
// Author:
//   Vagharshak Tozalakyan &lt;&lt;a href=&quot;mailto:vagh@armdex.com&quot;&gt;vagh@armdex.com&lt;/a&gt;&gt;
//   This module was written by author on its leasure time.
//
// Warning:
//   This class is non commercial, non professional work. It should not have
//   unexpected results. However, if any damage is caused by this class the
//   author can not be responsible. The use of this class is at the risk of
//   the user.
//
// Requirements:
//   PHP &gt;= 4.1.0
//
// ----------------------------------------------------------------------------
// Errors and warnings

define ( 'E_TMP_DIR',    'Incorrect temprorary directory specified.' );
define ( 'E_IP_ADDR',    'Incorrect IP address specified.' );
define ( 'E_LOG_FILE',   'Log file access error! Check permissions to write.' );
define ( 'E_CRON_FNAME', 'The name of cron file must begin with dot.' );
define ( 'E_CRON_FILE',  'Cron file access error! Check permissions to write.' );
define ( 'E_CRON_JOB',   'Unable to perform the cron job.' );
// Class definition

class FloodBlocker
{

  // The directory where log files will be saved. Must have permissions to write.
  var $logs_path;

  // IP address of current connection. REMOTE_ADDR will be used by default.
  var $ip_addr;

  // An associative array of [$interval=&gt;$limit] format, where $limit is the
  // number of possible requests during $interval seconds.
  var $rules;

  // The name of the cron file. Must begin with dot. Default filename is '.time'.
  var $cron_file;

  // Cron execution interval in seconds. 1800 secs (30 mins) by default.
  var $cron_interval;

  // After how many of seconds to consider a file as old? By default the files
  // will consider as old after 7200 secs (2 hours).
  var $logs_timeout;
  /*
    Description:
      Class constructor.
    Prototype:
      void FloodBlocker ( string logs_path, string ip = '' )
    Parameters:
      logs_path - the directory where log files will be saved
      ip - the ip address of the current connection,
           $_SERVER['REMOTE_ADDR'] will be used if ip=''
  */
  function FloodBlocker ( $logs_path, $ip = '' )
  {

    if ( ! is_dir ( $logs_path ) )
      trigger_error ( E_TMP_DIR, E_USER_ERROR );

    $logs_path = str_replace ( '\\', '/', $logs_path );
    if ( substr ( $logs_path, -1 ) != '/' )
      $logs_path .= '/';

    $this-&gt;logs_path = $logs_path;

    if ( empty ( $ip ) )
      $ip = $_SERVER['REMOTE_ADDR'];

    $ip = ip2long ( $ip );
    if ( $ip == -1 || $ip === FALSE )
      trigger_error ( E_IP_ADDR, E_USER_ERROR );

    $this-&gt;ip_addr = $ip;

    $this-&gt;rules = array ( );
    $this-&gt;cron_file = '.time';
    $this-&gt;cron_interval = 1800;  // 30 minutes
    $this-&gt;logs_timeout = 7200;  // 2 hours

  }
  /*
    Description:
      Used to check flooding. Generally this function acts as private method
      and will be called internally by public methods. However, it can be called
      directly when storing logs in db.
    Prototype:
      bool RawCheck ( array &amp;info )
    Parameters:
      info - $interval=&gt;$time, $interval=&gt;$count array
    Return:
      FALSE if flood detected, otherwise - TRUE.
  */
  function RawCheck ( &amp;$info )
  {

    $no_flood = TRUE;

    foreach ( $this-&gt;rules as $interval=&gt;$limit )
    {
      if ( ! isset ( $info[$interval] ) )
      {
        $info[$interval]['time'] = time ( );
        $info[$interval]['count'] = 0;
      }

      $info[$interval]['count'] += 1;

      if ( time ( ) - $info[$interval]['time'] &gt; $interval )
      {
        $info[$interval]['count'] = 1;
        $info[$interval]['time'] = time ( );
      }

      if ( $info[$interval]['count'] &gt; $limit )
      {
        $info[$interval]['time'] = time ( );
        $no_flood = FALSE;
      }

      // The following two lines can be used for debugging
      // echo $info[$interval]['count'].'  ';
      // echo $info[$interval]['time'].'&lt;br&gt;';

    }  // foreach

    return $no_flood;

  }
  /*
    Description:
      Checks flooding. Must be called after setting up all necessary properties.
    Prototype:
      bool CheckFlood ( )
    Return:
      FALSE if flood detected, otherwise - TRUE.
  */
  function CheckFlood ( )
  {

    $this-&gt;CheckCron ( );

    $path = $this-&gt;logs_path . $this-&gt;ip_addr;

    if ( ! ( $f = fopen ( $path, 'a+' ) ) )
      trigger_error ( E_LOG_FILE, E_USER_ERROR);

    flock ( $f, LOCK_EX );

    $info = fread ( $f, filesize ( $path ) + 10 );
    $info = unserialize( $info );

    $result = $this-&gt;RawCheck ( $info );

    ftruncate ( $f, 0 );
    fwrite ( $f, serialize( $info ) );
    fflush ( $f );

    flock($f, LOCK_UN);

    fclose($f);

    return $result;

  }
  /*
    Description:
      Checks the cron file and calls CronJob() to delete old entries from logs
      directory if the time-out is reached.
    Prototype:
      void CheckCron ( )
  */
  function CheckCron ( )
  {

    if ( substr ( $this-&gt;cron_file, 0, 1 ) != '.' )
    {
      trigger_error ( E_CRON_FNAME, E_USER_WARNING );
      return;
    }

    $path = $this-&gt;logs_path . $this-&gt;cron_file;

    if ( ! ( $f = fopen ( $path, 'a+' ) ) )
    {
      trigger_error ( E_CRON_FILE, E_USER_WARNING );
      return;
    }

    flock ( $f, LOCK_EX );

    $last_cron = fread ( $f, filesize ( $path ) + 10 );
    $last_cron = abs ( intval ( $last_cron ) );

    if ( time ( ) - $last_cron &gt; $this-&gt;cron_interval )
    {
      $this-&gt;CronJob ( );
      $last_cron = time ( );
    }

    ftruncate ( $f, 0 );
    fwrite ( $f, $last_cron );
    fflush ( $f );

    flock ( $f, LOCK_UN );

    fclose ( $f );

  }
  /*
    Description:
      Deletes all old files from logs directory, except the files starting
      with dot.
    Prototype:
      void CronJob ( )
  */
  function CronJob ( )
  {

    $path = $this-&gt;logs_path;

    if ( ! ( $dir_hndl = opendir ( $this-&gt;logs_path ) ) )
    {
      trigger_error ( E_CRON_JOB, E_USER_WARNING);
      return;
    }

    while ( $fname = readdir ( $dir_hndl ) )
    {
      if ( substr( $fname, 0, 1 ) == '.' )
        continue;
      clearstatcache ( );
      $ftm = filemtime ( $path . $fname );
      if ( time ( ) - $ftm &gt; $this-&gt;logs_timeout )
        @unlink ( $path . $fname );
    }

    closedir ( $dir_hndl );

  }

}  // end of class definition

 

/*
  $flb = new FloodBlocker ( 'example/tmp-ips/' );
  $flb-&gt;rules = array ( 10=&gt;5 );
  $res = $flb-&gt;CheckFlood ( );
  if ( $res )
    echo 'Succeed!';
  else
    die ( 'Too many requests! Please try later.' );
*/

?&gt;</pre>
<p>Kullanım Şekli</p>
<pre class="brush: php;">

&lt;?php

  // Place flood protection code at the top of the script you want to protect.
  // You can write protection code into separate file and include it in every
  // page of your site.

  // Sample protection code starts here...

  // Include the class definition module.

  require_once ( '../class.floodblocker.php' );

  // In the following line write the full path to temporary directory in which
  // you want to store flood counters. It is good idea to create such folder
  // somewhere outside your documents directory, to make it unaccessable from Web.
  // Don't forget that the directory must have permissions to write files in it.
  // IMPORTANT!
  // All files in this folder (except those that start with dot, e.g.'.htaccess')
  // will be deleted by FloodBlocker, so don't keep anything there.

  $flb = new FloodBlocker ( 'tmp-ips/' );

  // Create as many rules as you want...

  $flb-&gt;rules = array (
    10=&gt;10,    // rule 1 - maximum 10 requests in 10 secs
    60=&gt;30,    // rule 2 - maximum 30 requests in 60 secs
    300=&gt;50,   // rule 3 - maximum 50 requests in 300 secs
    3600=&gt;200  // rule 4 - maximum 200 requests in 3600 secs
  );

  // At last call CheckFlood(), it will return FALSE if flood detected on any
  // of specified rules.

  if ( ! $flb-&gt;CheckFlood ( ) )
    die ( 'Too many requests! Please try later.' );

  // ... that's all. Enjoy!

?&gt;

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;The title of my page...&lt;/title&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#cccccc&quot;&gt;
&lt;h1&gt;Welcome to my page...&lt;/h1&gt;
No flood was detected if you see the contents of this page...
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.kesdi.com%2Fphp%2Fphp_ile_saldirilari_onlemek%2F&amp;linkname=Php%20ile%20sald%C4%B1r%C4%B1lar%C4%B1%20%C3%B6nlemek">Paylaş/Kaydet</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.kesdi.com/php/php_ile_saldirilari_onlemek/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Php Sabit Tanımlama ve Yazım Kuralları</title>
		<link>http://blog.kesdi.com/php/php-sabit-tanimlama-ve-yazim-kurallari/</link>
		<comments>http://blog.kesdi.com/php/php-sabit-tanimlama-ve-yazim-kurallari/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 05:39:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.kesdi.com/?p=408</guid>
		<description><![CDATA[Php&#8217;de değişkenler olduğu gibi sabitler de vardır. Sabit tanımlama nasıl yapılır şimdi bunu örnekler üzerinde inceleyelim: Hatırlarsanız değişken tanımlarken $degisken = &#8220;Değişkenin Karşılığı&#8221;; şeklinde belirtmiştik. Sabit tanımlarken ise define komutu kullanılır. Bu komut değişken tanımlamadan farklı olup adı üstünde değişmeyen yani sabit, içeriği değişmeyen bir bilgi için kullanılır. Değişken tanımlarken kullanılan bütün kurallar sabit tanımlarken [...]]]></description>
			<content:encoded><![CDATA[<p>Php&#8217;de değişkenler olduğu gibi sabitler de vardır. Sabit tanımlama nasıl yapılır şimdi bunu örnekler üzerinde inceleyelim:</p>
<p>Hatırlarsanız değişken tanımlarken $degisken = &#8220;Değişkenin Karşılığı&#8221;; şeklinde belirtmiştik. Sabit tanımlarken ise define komutu kullanılır. Bu komut değişken tanımlamadan farklı olup adı üstünde değişmeyen yani sabit, içeriği değişmeyen bir bilgi için kullanılır.<br />
Değişken tanımlarken kullanılan bütün kurallar sabit tanımlarken de geçerlidir (büyük küçük harf duyarlılığı, önüne _ alt çizgi, harf ile başayabilir, harf arasına raham ve alt çizgi kullanılabilir, sabit ve değişkenler rakamla başlamaz) bu kurallara dikkat edelim.<br />
<span id="more-408"></span><br />
<strong>Sabit Tanımlama:</strong> define (&#8220;Sabit_Adi&#8221;,&#8221;Sabitin_Degeri&#8221;); şeklinde tanımlanır. (Bakınız Sabit_Adi dedik önünde dolar işareti kullanılmaz.)<br />
<strong>Sabitin Yazdırılması:</strong> echo Sabit_Adi; (sabit tanımında sabitin adı Sabit_Adi idi. işte ekrana yazdırırken sabitin adını direk yazıyoruz. Değişken gibi önüne dolar işareti koymuyoruz.)</p>
<p><strong>Örnek</strong></p>
<p><code>&lt;?php</code><br />
<code>$degisken = "Bu Değişken Tanımlaması";</code><br />
<code>define ("Sabit","Bu Sabitin Tanımlaması");</code></p>
<p><code>echo $degisken." Bu değişkenin yazdırılması";</code><br />
<code>echo Sabit." Bu da sabitin yazdırılması";</code><br />
<code>?&gt;</code><br />
Birden fazla sabit tanımlarken kullanılan sabit isimleri birbirinden farklı olmalıdır.</p>
<p><strong>Örnek</strong></p>
<p><code>&lt;?php</code><br />
<code>define("sabit_1","Birinci Sabitin Karşılığı");</code><br />
<code>define("sabit_2","İkinci Sabitin Karşılığı");</code></p>
<p><code>echo sabit_1."&lt;br&gt;";</code><br />
<code>echo sabit_2;</code><br />
<code>?&gt;</code><br />
Bir de değişken tanımlarken yazılan aynı değişkenlerin en sonuncusunu ekrana yazdırır. Sabit tanımlamada böyle değildir.</p>
<p><strong>Örnek</strong></p>
<p><code>&lt;?php</code><br />
<code>$a = "İlk a değişkeni";</code><br />
<code>$a = "İkinci a Değişkeni";</code><br />
<code>echo $a;</code><br />
<code>/*</code><br />
<code>şimdi $a ekrana yazdırırken kullanılan aynı değişkenin son yazılanını çağırır ve ekrana yazdırır.</code><br />
<code>ekran çıktısı : (İkinci a Değişkeni) şeklinde olacaktır.</code><br />
<code>*/</code></p>
<p><code>define ("sabit","birinci sabit tanımlama");</code><br />
<code>define ("sabit","ikinci sabit tanımalama");</code><br />
<code>echo sabit;</code><br />
<code>/*</code><br />
<code>şimdi sabit ekrana yazdırırken kullanılan aynı sabitin ise ilk yazılanını çağırır ve ekrana yazdırır.</code><br />
<code>ekran çıktısı : (birinci sabit tanımlama) şeklinde olacaktır.</code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
Görüldüğü gibi değişken ve sabit tanımlamada yazım kuralları aynı fakat tanımlama ve çalışma şekilleri farklıdır.<br />
Sabitler, php web sayfaları oluştururken bir sabit bilgileri içeren php sayfası hazırlanır. Bütün sayfalarda kullanacağımız her sayfada tekrar tekrar yazmak zorunda olduğumuz bilgileri sabit tanımlaması yaparak yazacağımız yere sabitin adını yazarak işlem kolaylığı ve zamandan tasarruf sağlamamıza olanak verir.<br />
Yine hazır sistemlerde, sistemi ilk kurarken yazdığınız mysql bilgileri site başlığı site isimleri gibi bilgiler sabit olarak atanır bu atanan bilgiler ile bağlantı kurar ve sistemi kurmuş olur.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.kesdi.com%2Fphp%2Fphp-sabit-tanimlama-ve-yazim-kurallari%2F&amp;linkname=Php%20Sabit%20Tan%C4%B1mlama%20ve%20Yaz%C4%B1m%20Kurallar%C4%B1">Paylaş/Kaydet</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.kesdi.com/php/php-sabit-tanimlama-ve-yazim-kurallari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Php ile Diziler ve Dizi Tanımlamaları</title>
		<link>http://blog.kesdi.com/php/php-ile-diziler-ve-dizi-tanimlamalari/</link>
		<comments>http://blog.kesdi.com/php/php-ile-diziler-ve-dizi-tanimlamalari/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 14:20:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.kesdi.com/?p=404</guid>
		<description><![CDATA[array( ) array() komutu anahtar ve değerden oluşan bir dizi oluşturur. Eğer anahtar belirtilmezse anahtar otomatik olarak atanır ve anahtar değeri 0 dan başlayarak her bir değer için bir artar. direk dizinin kullanılışı: &#60;?php $mevsim1 = "İlkbahar"; $mevsim2 = "Yaz"; $mevsim3 = "Sonbahar"; $mevsim4 = "Kış"; echo "$mevsim1 $mevsim2 $mevsim2 $mevsim4"; /* Ekran Çıktısı: İlkbahar [...]]]></description>
			<content:encoded><![CDATA[<p>array( )<br />
array() komutu anahtar ve değerden oluşan bir dizi oluşturur. Eğer anahtar belirtilmezse anahtar otomatik olarak atanır ve anahtar değeri 0 dan başlayarak her bir değer için bir artar.</p>
<p><strong>direk dizinin kullanılışı:</strong></p>
<p><code>&lt;?php</code><br />
<code>$mevsim1 = "İlkbahar";</code><br />
<code>$mevsim2 = "Yaz";</code><br />
<code>$mevsim3 = "Sonbahar";</code><br />
<code>$mevsim4 = "Kış";</code><br />
<code>echo "$mevsim1 $mevsim2 $mevsim2 $mevsim4";</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı:</code><br />
<code>İlkbahar</code><br />
<code>Yaz</code><br />
<code>Sonbahar</code><br />
<code>Kış</code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
yukarıdaki yöntem uzun, şimdi de bunu kısa yoldan nasıl ekrana yazdırabilir bunu görelim;</p>
<p><code><span id="more-404"></span>&lt;?php</code><br />
<code>$mevsim[1]="İlkbahar";</code><br />
<code>$mevsim[2]="Yaz";</code><br />
<code>$mevsim[3]="Sonbahar";</code><br />
<code>$mevsim[4]="Kış";</code><br />
<code>print_r ($mevsim);</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı:</code><br />
<code>Array ( [1] =&gt; İlkbahar [2] =&gt; Yaz [3] =&gt; Sonbahar [4] =&gt; Kış ) </code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
Bu şekilde dizi elemanlarının eleman sayısı ile birlikte tek satır yazdırma komutu ile ekranda listelenebilir.</p>
<p><strong>Diziye Eleman Eklemek</strong><br />
Var olan bir diziye eleman indeks numarasını yazarak dizi elemanı eklenebilir.</p>
<p><code>&lt;?</code><br />
<code>$mevsim[1]="İlkbahar";</code><br />
<code>$mevsim[2]="Yaz";</code><br />
<code>$mevsim[3]="Sonbahar";</code><br />
<code>$mevsim[4]="Kış";</code><br />
<code># ek olarak mevsim 5 ve mevsim 6 y ekleyelim</code><br />
<code>$mevsim[5]="Mevsim 5";</code><br />
<code>$mevsim[6]="Mevsim 6";</code><br />
<code>print_r ($mevsim);</code><br />
<code>print 'mevsim[5]"'.$mevsim[5].!"&lt;br&gt;';</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı: </code><br />
<code>Array ( [1] =&gt; İlkbahar [2] =&gt; Yaz [3] =&gt; Sonbahar [4] =&gt; Kış [5] =&gt; Mevsim 5 [6] =&gt; Mevsim 6 )</code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
<strong>Dizi Elemanını Dizi İçinden Silmek</strong><br />
Dizi elemanlarından birini silmek için unset(); fonksiyonunu kullanabiliriz. Bunun için diziden hangi elemanı sileceğimizi belirtmemiz gerekir.</p>
<p><code>&lt;?</code><br />
<code>$mevsim[1]="İlkbahar";</code><br />
<code>$mevsim[2]="Yaz";</code><br />
<code>$mevsim[3]="Sonbahar";</code><br />
<code>$mevsim[4]="Kış";</code><br />
<code>$mevsim[5]="Mevsim 5";</code><br />
<code>unset($mevsim[5]);</code><br />
<code>print_r ($mevsim);</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı:</code><br />
<code>Array ( [1] =&gt; İlkbahar [2] =&gt; Yaz [3] =&gt; Sonbahar [4] =&gt; Kış ) </code><br />
<code>mevsim 5 gösterilmedi çünkü onu sildik</code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
<strong>Array Fonksiyonu İle Dizi Tanımlama</strong><br />
Array dizi tanımlama donksiyonudur. array(&#8220;parametre 1&#8243;,&#8221;parametre 2&#8243;,&#8221;parametre 2&#8243;,&#8230;,&#8221;parametre N&#8221;); Bu şekilde dizi tanımlanır. Bunu bir örnek ile inceleyelim.</p>
<p><code>&lt;?</code><br />
<code>$mevsim3 = array("ilkbahar","yaz","sonbahar","kış");</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı :</code><br />
<code>Array([0]=&gt;ilkbahar[1]=&gt;yaz[2]=&gt;sonbahar[3]=&gt;kış)</code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
$mevsim3 değişkenine atadığımız dizi elemanları çıktı ekranındaki gibi ilk eleman değeri sıfırdan başlayarak gösterir.<br />
Tanımladığımız diziden istediğimiz elemanı silmek içinde gene unset(); fonksiyonunu kullanırız.</p>
<p><code>&lt;?</code><br />
<code>$mevsim3 = array("ilkbahar","yaz","sonbahar","kış");</code><br />
<code>unset($mevsim3[3]);</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı:</code><br />
<code>Array([0]=&gt;ilkbahar[1]=&gt;yaz[2]=&gt;sonbahar)</code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
<strong>Numerik Olmayan Dizi İndisi Kullanmak</strong><br />
Numerik olmayan yani dizideki elemanların; eleman sayılarının belirtilmemesidir.</p>
<p> </p>
<p><code>&lt;?</code><br />
<code>$sene["mevsim"]=("ilkbahar");</code><br />
<code>$sene[]=("yaz");</code><br />
<code>$sene[]=("sonabahar");</code><br />
<code>$sene[]=("kış");</code><br />
<code>print_r ($sene)</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı:</code><br />
<code>Array ( [mevsim] =&gt; ilkbahar [0] =&gt; yaz [1] =&gt; sonabahar [2] =&gt; kış ) </code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
Eleman numarsı belirtmeyip bir metinsel ifade yazıp bu metne değer atayabiliriz. Aşağıdaki örnekteki gibi;</p>
<p><code>&lt;?</code><br />
<code>$sene["mevsim1"]=("ilkbahar");</code><br />
<code>$sene["mevsim2"]=("yaz");</code><br />
<code>$sene["mevsim3"]=("sonabahar");</code><br />
<code>$sene["mevsim4"]=("kış");</code><br />
<code>print_r ($sene)</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı:</code><br />
<code>Array ( [mevsim1] =&gt; ilkbahar [mevsim2] =&gt; yaz [mevsim3] =&gt; sonabahar [mevsim4] =&gt; kış ) </code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
Başka bir örnek:</p>
<p><code>&lt;?</code><br />
<code>$sebze["domates"]=5;</code><br />
<code>$sebze["biber"]=12;</code><br />
<code>$sebze["patlican"]=15;</code><br />
<code>$sebze["marul"]=10;</code><br />
<code>print_r ($sebze)</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı:</code><br />
<code>Array ( [domates] =&gt; 5 [biber] =&gt; 12 [patlican] =&gt; 15 [marul] =&gt; 10 )</code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
<strong>Dizi Eleman Sayısını Bulmak</strong><br />
Bir dizinin eleman sayısını bulmak için count(); veya sizeof(); fonksiyonunu kullanırız.</p>
<p><code>&lt;?</code><br />
<code>$sene["mevsim1"]=("ilkbahar");</code><br />
<code>$sene["mevsim2"]=("yaz");</code><br />
<code>$sene["mevsim3"]=("sonabahar");</code><br />
<code>$sene["mevsim4"]=("kış");</code><br />
<code>$sayi = count($sene);</code><br />
<code>print "bir senede $sayi mevsim vardır.";</code></p>
<p><code>$sayi1 = sizeof($sene);</code><br />
<code>print "bir senede $sayi1 mevsim vardır.";</code><br />
<code>/*Ekran Çıktısı:</code><br />
<code>bir senede 4 mevsim vardır.</code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
<strong>Numerik İndisli Dizilerin Döngülerde Kullanılması</strong><br />
<strong>Nmerik İndisli Dizi Tanımı</strong></p>
<p><code>&lt;?</code><br />
<code>$mevsim = array("ilkbahar","yaz","sonbahar","kış");</code><br />
<code>print_r ($mevsim);</code><br />
<code>/*Ekran Çıktısı:</code><br />
<code>Array ( [0] =&gt; ilkbahar [1] =&gt; yaz [2] =&gt; sonbahar [3] =&gt; kış ) </code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
<strong>Alfabetik İndisli Dizi Tanımı</strong></p>
<p><code>&lt;?</code><br />
<code>$sebze= array("domates"=&gt;5, "biber"=&gt;12, "patlican"=&gt;15, "marul"=&gt;10);</code><br />
<code>print_r ($sebze);</code><br />
<code>/*Ekran Çıktısı:</code><br />
<code>Array ( [domates] =&gt; 5 [biber] =&gt; 12 [patlican] =&gt; 15 [marul] =&gt; 10 ) </code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
<strong>Foreach Döngüsünde Kullanımı:</strong></p>
<p><code>&lt;?</code><br />
<code>$mevsim = array("ilkbahar","yaz","sonbahar","kış");</code><br />
<code>foreach($mevsim as $mevsimadi){</code><br />
<code>print $mevsimadi."&lt;br&gt;";</code><br />
<code>}</code><br />
<code>?&gt;</code><br />
<strong>For Döngüsünde Kullanımı</strong></p>
<p><code>&lt;?</code><br />
<code>$mevsim = array("ilkbahar","yaz","sonbahar","kış");</code><br />
<code>for ($sayac=0; $sayac &lt; count($mevsim); $sayac++){</code><br />
<code>print $mevsim[$sayac]."&lt;br&gt;";</code><br />
<code>}</code><br />
<code>/*Ekran Çıktısı:</code><br />
<code>ilkbahar</code><br />
<code>yaz</code><br />
<code>sonbahar</code><br />
<code>kış</code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
Bu şekilde for ve foreach dongüleri ile numerik dizilerde alıp çeşitli şekillerde görüntüleyebilirsiniz.</p>
<p><strong>For dögüsünde indizlerin kaçıncı eleman olduklarını da yazdırabiliriz. Örneğin:</strong></p>
<p><code>&lt;?</code><br />
<code>$mevsim = array("ilkbahar","yaz","sonbahar","kış");</code><br />
<code>for ($sayac=0; $sayac &lt; count($mevsim); $sayac++){</code><br />
<code>print "$sayac. eleman $mevsim[$sayac].&lt;br&gt;";</code><br />
<code>}</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı:</code><br />
<code>0. eleman ilkbahar.</code><br />
<code>1. eleman yaz.</code><br />
<code>2. eleman sonbahar.</code><br />
<code>3. eleman kış.</code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
<strong>Alfanumerik dizisinin dongulerle kullanılması:</strong></p>
<p><code>&lt;?</code><br />
<code>$sebze= array("domates"=&gt;5, "biber"=&gt;12, "patlican"=&gt;15, "marul"=&gt;10);</code><br />
<code>print_r ($sebze);</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı:</code><br />
<code>Array ( [domates] =&gt; 5 [biber] =&gt; 12 [patlican] =&gt; 15 [marul] =&gt; 10 ) </code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
Şimdi bunu foreach döngüsü ile gösterelim..</p>
<p><code>&lt;?</code><br />
<code>$sebze= array("domates"=&gt;5, "biber"=&gt;12, "patlican"=&gt;15, "marul"=&gt;10);</code><br />
<code>foreach($sebze as $sebzeadi =&gt; $fiyat){</code><br />
<code>print "$sebzeadi fiyatı : $fiyat liradır. &lt;br&gt;";</code><br />
<code>}</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı:</code><br />
<code>domates fiyatı : 5 liradır. </code><br />
<code>biber fiyatı : 12 liradır. </code><br />
<code>patlican fiyatı : 15 liradır. </code><br />
<code>marul fiyatı : 10 liradır. </code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
Foreach döngüsü ile anahtarlı olarak dizilerin kullanılması bu şekildedir.</p>
<p><strong>Dizi Dongü Tablolarının HTML İle Kullanımı</strong></p>
<p>Dizi ile tanımladığımız değerleri html tablo kodları içine yerleştirerek çok daha düzenli listeleme yapabiliriz. Bu Örnekte tablomuzun satırlarının farklı renkte görünmesini sağlayarak kolay anlaşımasını sağlayabiliriz.</p>
<p><code>&lt;?</code><br />
<code>$sebze=array("Domates"=&gt;5,"Biber"=&gt;12,"Patlıcan"=&gt;15,"Marul"=&gt;10);</code><br />
<code>$renk=array("yellow","green"); $renkindex=0;</code><br />
<code>print "&lt;table border=1&gt;";</code><br />
<code>foreach ($sebze as $sebzeadi =&gt; $fiyat) {</code><br />
<code>print "&lt;tr bgcolor=".$renk[$renkindex]."&gt;";</code><br />
<code>print "&lt;td&gt;$sebzeadi&lt;/td&gt;&lt;td&gt;$fiyat&lt;/td&gt;";</code><br />
<code>print "&lt;/tr&gt;";</code><br />
<code>$renkindex = 1-$renkindex;</code><br />
<code>}</code><br />
<code>print "&lt;/table&gt;";</code><br />
<code>/*</code><br />
<code>Ekran Çıktısı:</code><br />
<code>&lt;table border=1&gt;</code><br />
<code>&lt;tr bgcolor=yellow&gt;</code><br />
<code>&lt;td&gt;Domates&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt;</code><br />
<code>&lt;tr bgcolor=green&gt;&lt;td&gt;Biber&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tr&gt;</code><br />
<code>&lt;tr bgcolor=yellow&gt;&lt;td&gt;Patlıcan&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;/tr&gt;</code><br />
<code>&lt;tr bgcolor=green&gt;&lt;td&gt;Marul&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;</code><br />
<code>&lt;/table&gt;</code><br />
<code>*/</code><br />
<code>?&gt;</code><br />
<strong>Not:</strong> for döngüsü indisleri sırası ile gösterir. Foreach döngüsü ise bizim manuel olarak giriliş sırasına göre görüntüler.</p>
<p><strong>İç İçe Dizi Kullanılımı (Çoklu Diziler)</strong><br />
Çoklu dizi bir grup belirleme ve bu grup içindeki elemanları listelemek olarak anlayabiliriz. Bunu güzel bir örnek ile açıklayalım. örnekte ilkbahar, yaz, sonbahar, kış mevsimleri var içine bir dizi daha tanımlayarak bu mevsimlerin hangi ayları içerdiğini göstererek ekranda listeleyebiliriz.</p>
<p><code>&lt;?</code><br />
<code>$mevsim=array(1=&gt;"İlkbahar",2=&gt;"Yaz",3=&gt;"Sonbahar",4=&gt;"Kış");</code><br />
<code>foreach ($mevsim as $anahtar =&gt; $mevsimadi) {</code><br />
<code>print "$anahtar.$mevsimadi&lt;br&gt;";</code><br />
<code>}</code><br />
<code>print "-------------------&lt;br&gt;";</code><br />
<code>$mevsim=array("İlkbahar"=&gt;array("Mart","Nisan","Mayıs"),</code><br />
<code>              "Yaz"=&gt;array("Haziran","Temmuz","Ağustos"),</code><br />
<code>              "Sonbahar"=&gt;array("Eylül","Ekim","Kasım"),</code><br />
<code>              "Kış"=&gt;array("Aralık","Ocak","Şubat"),</code><br />
<code>);</code><br />
<code>foreach ($mevsim as $anahtar =&gt; $aylar){</code><br />
<code>print $anahtar."&lt;br&gt;";</code><br />
<code>foreach ($aylar as $ayadi){</code><br />
<code>print "---$ayadi&lt;br&gt;";</code><br />
<code>}</code><br />
<code>}</code><br />
<code>?&gt;</code><br />
<strong>Ekran Çıktısı:</strong><br />
1.İlkbahar<br />
2.Yaz<br />
3.Sonbahar<br />
4.Kış<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
İlkbahar<br />
&#8212;Mart<br />
&#8212;Nisan<br />
&#8212;Mayıs<br />
Yaz<br />
&#8212;Haziran<br />
&#8212;Temmuz<br />
&#8212;Ağustos<br />
Sonbahar<br />
&#8212;Eylül<br />
&#8212;Ekim<br />
&#8212;Kasım<br />
Kış<br />
&#8212;Aralık<br />
&#8212;Ocak<br />
&#8212;Şubat</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.kesdi.com%2Fphp%2Fphp-ile-diziler-ve-dizi-tanimlamalari%2F&amp;linkname=Php%20ile%20Diziler%20ve%20Dizi%20Tan%C4%B1mlamalar%C4%B1">Paylaş/Kaydet</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.kesdi.com/php/php-ile-diziler-ve-dizi-tanimlamalari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Injection&#8217;a karşı önlem</title>
		<link>http://blog.kesdi.com/php/sql-injectiona-karsi-onlem/</link>
		<comments>http://blog.kesdi.com/php/sql-injectiona-karsi-onlem/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 11:53:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.kesdi.com/?p=353</guid>
		<description><![CDATA[PHP ile yapılan saldırıların büyük bir bölümü, SQL Injection ile olmaktadır. Bu saldırıları, PHP&#8217;nin basit fonksiyonları ile bertaraf edebiliriz. Bu fonksiyonları tek bir fonksiyon haline getirerek sayfadan gelen değişkenleri süzmeye çalıştım. Umarım işinize yarar. function TemizStr($var) { $var = stripslashes($var); $var = htmlentities($var); $var = strip_tags($var); return $var; } veya kodu şu şekilde kısaltabiliriz function [...]]]></description>
			<content:encoded><![CDATA[<p>PHP ile yapılan saldırıların büyük bir bölümü, SQL Injection ile olmaktadır. Bu saldırıları, PHP&#8217;nin basit fonksiyonları ile bertaraf edebiliriz. Bu fonksiyonları tek bir fonksiyon haline getirerek sayfadan gelen değişkenleri süzmeye çalıştım. Umarım işinize yarar.<br />
<span id="more-353"></span></p>
<pre class="brush: plain;">
function TemizStr($var) {
$var = stripslashes($var);
$var = htmlentities($var);
$var = strip_tags($var);
return $var;
}
</pre>
<p>veya kodu şu şekilde kısaltabiliriz</p>
<pre class="brush: plain;">
function TemizStr($var) {
$var = stripslashes(htmlentities(strip_tags($var)));
return $var;
}</pre>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.kesdi.com%2Fphp%2Fsql-injectiona-karsi-onlem%2F&amp;linkname=SQL%20Injection%26%238217%3Ba%20kar%C5%9F%C4%B1%20%C3%B6nlem">Paylaş/Kaydet</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.kesdi.com/php/sql-injectiona-karsi-onlem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
