<?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>Mahir Yılmaz &#124; Kişisel Web Günlüğü Php Programmer &#187; php</title>
	<atom:link href="http://www.mahiryilmaz.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mahiryilmaz.com</link>
	<description>İçimden geçenler...</description>
	<lastBuildDate>Tue, 07 Sep 2010 21:38:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Php&#8217;de veri şifreleme mantığı</title>
		<link>http://www.mahiryilmaz.com/phpde-veri-sifreleme-mantigi/</link>
		<comments>http://www.mahiryilmaz.com/phpde-veri-sifreleme-mantigi/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 02:31:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Programlama]]></category>
		<category><![CDATA[kod şifreleme]]></category>
		<category><![CDATA[parola şifreleme]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php şifreleme]]></category>
		<category><![CDATA[php şifreleme algoritması]]></category>
		<category><![CDATA[php şifreleme mantığı]]></category>
		<category><![CDATA[şifreleme nasıl yapılır]]></category>
		<category><![CDATA[şifreleme nedir]]></category>
		<category><![CDATA[veri şifreleme]]></category>

		<guid isPermaLink="false">http://www.mahiryilmaz.com/?p=301</guid>
		<description><![CDATA[Verilerimizi veritabanımızda saklarken bazılarını şifreleme gereksinimi duyarız. Bunlardan en önemlisi herkesinde bildiği gibi kullanıcı şifreleridir. Şifrelememizin önemi, herhangi bir şekilde 3. kişisinin eline geçen verilerin kötü amaçlı kullanılmasının önüne geçilmesidir. Profesyonel sistem yazan her coder mutlaka şifreleme yapar. Şifreleme mantığını ben iki kategoriye ayırıp anlatmaya çalışacağım. Geri dönüşümsüz şifreleme Geri dönüşümlü şifreleme İsimlerden anlaşılacağı üzere [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-medium wp-image-31" style="margin: 10px;" title="800px-php-n_logosvg" src="http://www.mahiryilmaz.com/wp-content/uploads/800px-php-n_logosvg.png" alt="" width="190" height="100" /> Verilerimizi veritabanımızda saklarken bazılarını şifreleme gereksinimi duyarız. Bunlardan en önemlisi herkesinde bildiği gibi kullanıcı şifreleridir. Şifrelememizin önemi, herhangi bir şekilde 3. kişisinin eline geçen verilerin kötü amaçlı kullanılmasının önüne geçilmesidir. Profesyonel sistem yazan her coder mutlaka şifreleme yapar.</p>
<p style="text-align: justify;">Şifreleme mantığını ben iki kategoriye ayırıp anlatmaya çalışacağım.</p>
<ul style="text-align: justify;">
<li><span style="text-decoration: underline;"><strong>Geri dönüşümsüz şifreleme</strong></span></li>
<li><span style="text-decoration: underline;"><strong>Geri dönüşümlü şifreleme</strong></span></li>
</ul>
<p style="text-align: justify;">İsimlerden anlaşılacağı üzere şifreleme tiplerimizi ikiye ayırdık. Şimdi bunlara sırayla bakmaya ve örnek bir kaç fonksiyon yazalım.</p>
<p style="text-align: justify;"><span id="more-301"></span></p>
<p style="text-align: justify;"><strong>Geri dönüşümsüz şifreleme;</strong></p>
<p style="text-align: justify;">Bu şifreleme mantığında şifrelediğimiz verileri biz dahil kimse geri dönüştüremez. Büyük sistemlerin çoğu bunu kullanmaktadır. Kendileri dahil kimse şifrelenmiş verinin ne olduğunu çözemez. Bu şifreleme türünde genelde kullanılan iki php fonksiyonu bulunmaktadır. ( md5(); ve sha1(); ). Bu fonksiyonlar Php&#8217;nin tek yönlü kendi şifreleme yöntemidir. Verimizi bu fonksiyonları kullanarak hızlı bir şekilde şifrelemiş oluruz. Tek md5() ya da tek sha1() kullandığımız zaman verinin çözülme olasılığı olduğundan bu fonksiyonların kombinasyonunu kullandığımızda verinin çözümü için ömür gerekmektedir. Örnek vermek gerekirse;</p>
<blockquote style="text-align: justify;"><p>&lt;?<br />
function sifrele($sifre){<br />
return md5(md5(sha1(sha1($sifre))));<br />
}<br />
?&gt;</p></blockquote>
<p style="text-align: justify;">Yazacağımız basit bir fonksiyonla  şifrenin çözümü oldukça zor hatta imkansızdır. Tabikide geri dönüşümsüz şifrelemenin tek yolu bu değildir. Şifreleme için kullanıcı tarafından girilen verileri kendi belirlediğimiz bazı karakterlere dönüştürerek yine geri dönüşümsüz bir şifreleme yaparız. Buna örnek vermek gerekirse;</p>
<blockquote style="text-align: justify;"><p>&lt;?<br />
function sifrele($sifre){<br />
$sifre = str_replace(&#8220;a&#8221;, &#8220;111&#8243;, $sifre);<br />
$sifre = str_replace(&#8220;b&#8221;, &#8220;222&#8243;, $sifre);<br />
$sifre = str_replace(&#8220;c&#8221;, &#8220;333&#8243;, $sifre);<br />
$sifre = md5(sha1($sifre));<br />
}<br />
?&gt;</p></blockquote>
<p style="text-align: justify;">Basitçe karakterleri belirlediğimiz karakterlere dönüştürüp, üstüne md5 ile sha1 kullandığımız zaman kırılması imkansız bir şifreleme oluştururuz fakat bu kadar kasmaya cidden gerek yok. Üstteki yazdığımız fazlasıyla yeterli.</p>
<p style="text-align: justify;"><strong>Geri dönüşümlü şifreleme;</strong></p>
<p style="text-align: justify;">Kullanıcı şifrelerini şifreleme yaptığımızda genelde kullandığımız yer login alanlarıdır. Kullanıcı login olurken veritabanımızda daha önce şifrelediğimiz veri ile kullanıcının giriş yaparken yazdığı şifreyi fonksiyonumuzdan geçirerek doğru mu değil mi diye bakarız. Başka alanlar da genelde kullanmaya gerek yoktur. Fakat öyle şifreler vardır ki hem başkalarının eline geçtiğinde tehlike yaratır, hem de yazdığımız sistemde başka alanlarda çözüp kullanmamız gerekmektedir. Whmcs&#8217;de gördüğüm ve bir arkadaşım için kodladığım sunucu kontrol panelinde kullandığım için bu mantığıda anlatıyorum. Geri dönüşümlü şifreleme yaparken md5 ya da sha1 gibi tek yönlü şifreleme fonksiyonlarını kullanamayız. Bunun için Php&#8217;nin bize sunduğu iki yönlü şifreleme hem encode hem de decode yapan fonksiyonlar bulunmaktadır. ( base64_encode(); ve base64_decode(); ).</p>
<blockquote>
<p style="text-align: justify;">&lt;?php</p>
<p style="text-align: justify;">echo base64_encode(&#8220;mahir&#8221;); // çıktı : bWFoaXI=</p>
<p style="text-align: justify;">echo base64_decode(&#8220;bWFoaXI=&#8221;); // çıktı : mahir</p>
<p style="text-align: justify;">?&gt;</p>
</blockquote>
<p style="text-align: justify;">Yukarıda yazdığım kodu çalıştırdığınızda decode ve encode halini göreceksiniz. Yalnız bu kesinlikle yeterli değildir. md5 yada sha1 gibi bi kaç sefer yapmanız bile bence yeterli değildir. Çünkü bu fonksiyonları bilen bir coder bile bir bakışta base64 fonksiyonunun kullanıldığını anlayacaktır ve çözmek için fazla zaman harcamayacaktır. Bu yüzden olaya biraz daha karmaşık hal katıp kendi kullandığım old() ve chr() fonksiyonlarını işin içine katmalıyız. Tabi ki bu fonksiyonlar benim kullandığım coderin tecrübesine göre daha farklı kodlar yazılabilir. old() girilen karakterin sayısal değerini, chr() ise girilen sayının karakter değerini veren fonksiyonlardır. Bir örnekle açıklamak gerekirse;</p>
<blockquote>
<p style="text-align: justify;">&lt;?<br />
function mahirsifrele($param){<br />
$karakter = strlen($param);<br />
for($i = 0; $i &lt; $karakter; $i++){<br />
$veri .= ord(substr($param, $i, $i+1)) .&#8221;-&#8221;;<br />
}<br />
return $veri;<br />
}</p>
<p>function mahirsifrecoz($param){<br />
$param = explode(&#8220;-&#8221;, $param);<br />
$karakter = count($param) &#8211; 1;<br />
for($i = 0; $i &lt; $karakter; $i++){<br />
$veri .= chr($param[$i]);<br />
}<br />
return $veri;<br />
}<br />
?&gt;</p></blockquote>
<p style="text-align: justify;">Şifreleme fonksiyonumuzda karakterleri parçalayıp sayısal değerini alıp aralarına tire(-) koyarak (sonradan çözerken kolaylık olsun diye) şifreliyoruz, çözerkende tam tersi işlem yapıyoruz. base64de kullanarak biraz daha karmaşık ve zorlaştırabiliriz.</p>
<p style="text-align: justify;">Unutmayın ki geri dönüşümlü şifreleme yapıldığında kırılmaz diye bir olasılık kesinlikle yoktur. Zor kırılır şifre vardır. Zor kırılan şifreleme yapmakta tamamen sizin akıl oyununuza bakıyor. Ben işin tamamen mantığını anlatmaya çalıştım. İnşallah başarılı olabilmişimdir. Teşekkür ederim.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mahiryilmaz.com/phpde-veri-sifreleme-mantigi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ajax ile Php Bot Yapımı &#8211; 2</title>
		<link>http://www.mahiryilmaz.com/ajax-ve-php-ile-bot-yapimi-2/</link>
		<comments>http://www.mahiryilmaz.com/ajax-ve-php-ile-bot-yapimi-2/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 17:58:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Programlama]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php ile bot yapımı]]></category>
		<category><![CDATA[php ile wordpress botu]]></category>
		<category><![CDATA[wordpress bot]]></category>
		<category><![CDATA[wordpress bot yapımı]]></category>

		<guid isPermaLink="false">http://www.mahiryilmaz.com/?p=282</guid>
		<description><![CDATA[Daha önce yazmış olduğum Ajax ile Php bot yapımı yazımda php ve ajax ile bir wordpress sitesine bağlanıp o sitedeki verileri çekmeyi basitçe anlatmıştım. Bu yazımda ise ekle bunu butonuna tıklayanca yazı içeriğini çekip aşağıda input alanına çeken kısmını anlatacağım. Öncelikle ekle bunu butonuna tıklandığında çalışan calistir() fonksiyonumuzu anlatalım. Bu fonksiyon ile gönderilen link ile [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-medium wp-image-31" style="margin: 10px;" title="800px-php-n_logosvg" src="http://www.mahiryilmaz.com/wp-content/uploads/800px-php-n_logosvg.png" alt="" width="190" height="100" /> Daha önce yazmış olduğum <a href="http://www.mahiryilmaz.com/ajax-ve-php-ile-bot-yapimi-1/">Ajax ile Php bot yapımı </a>yazımda php ve ajax ile bir wordpress sitesine bağlanıp o sitedeki verileri çekmeyi basitçe anlatmıştım. Bu yazımda ise <strong>ekle bunu</strong> butonuna tıklayanca yazı içeriğini çekip aşağıda input alanına çeken kısmını anlatacağım.</p>
<p style="text-align: justify;">Öncelikle ekle bunu butonuna tıklandığında çalışan calistir() fonksiyonumuzu anlatalım. Bu fonksiyon ile gönderilen link ile php dosyamız arasında iletişim kurup gelen veriyi ekrana yazdırıyoruz. Bu fonksiyonumuz index.php dosyamızda bulunmaktadır.</p>
<blockquote><p>function yazigetir(link){<br />
JXP(1, &#8216;yazigetir&#8217;, &#8216;yazigetir.php&#8217;, &#8216;link=&#8217;+link);<br />
}</p></blockquote>
<p style="text-align: justify;">Bu fonksiyonumuz ile yazigetir.php dosyamıza linki gönderip gelen veriyi index.php&#8217;de bulunan yazigetir id&#8217;li yere yazdırıyoruz. Basitçe yazigetir.php dosyamıza göz atalım.</p>
<p style="text-align: justify;"><span id="more-282"></span></p>
<blockquote>
<p style="text-align: justify;">&lt;?php</p>
<p>$link = $_POST["link"];</p>
<p>if(!$link) die(&#8220;link yazmadiniz&#8221;);</p>
<p>$ac = @file_get_contents($link);</p>
<p>if(!$ac) die(&#8220;Siteyi acamadim&#8221;);</p>
<p>preg_match(&#8216;#&lt;div class=&#8221;post-title&#8221;&gt;(.*?)&lt;/div&gt;#si&#8217;, $ac, $baslik);</p>
<p>preg_match(&#8216;#&lt;h2&gt;&lt;a href=&#8221;(.*?)&#8221; rel=&#8221;bookmark&#8221; title=&#8221;(.*?)&#8221;&gt;(.*?)&lt;/a&gt;&lt;/h2&gt;#si&#8217;, $baslik[1], $baslik);</p>
<p>$baslik = karakterdonustur($baslik[3]);</p>
<p>preg_match(&#8216;#&lt;div class=&#8221;entry clear&#8221;&gt;(.*?)&lt;/div&gt;#si&#8217;, $ac, $yazi);</p>
<p>$yazi = karakterdonustur(trim($yazi[1]));</p>
<p>?&gt;</p>
<p>&lt;table&gt;<br />
&lt;tr&gt;<br />
&lt;td width=&#8221;100&#8243;&gt;Yazi Baslik&lt;/td&gt;<br />
&lt;td width=&#8221;1&#8243;&gt;:&lt;/td&gt;<br />
&lt;td width=&#8221;90%&#8221;&gt;&lt;input type=&#8221;text&#8221; name=&#8221;baslik&#8221; id=&#8221;baslik&#8221; value=&#8221;&lt;?=$baslik?&gt;&#8221; size=&#8221;50&#8243; style=&#8221;border:1px solid #000&#8243;&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td width=&#8221;100&#8243;&gt;Yazi&lt;/td&gt;<br />
&lt;td width=&#8221;1&#8243;&gt;:&lt;/td&gt;<br />
&lt;td width=&#8221;90%&#8221;&gt;&lt;textarea name=&#8221;yazi&#8221; id=&#8221;yazi&#8221; rows=&#8221;6&#8243; cols=&#8221;50&#8243; style=&#8221;border:1px solid #000&#8243;&gt;&lt;?=$yazi?&gt;&lt;/textarea&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td width=&#8221;100&#8243;&gt;Islem&lt;/td&gt;<br />
&lt;td width=&#8221;1&#8243;&gt;:&lt;/td&gt;<br />
&lt;td width=&#8221;90%&#8221;&gt;&lt;input type=&#8221;submit&#8221; value=&#8221; Kaydet &#8221; onclick=&#8221;kaydet()&#8221;&gt;&lt;/td&gt;<br />
&lt;/tr&gt;</p>
<p>&lt;/table&gt;</p></blockquote>
<p style="text-align: justify;">Gelen linkin bulunduğu sayfayı file_get_contents fonksiyonu ile açıp preg_match yardımı ile başlık ve yazı verilerini çekiyorum. Önceki yazımızda anlatmış olduğumuz karakterdonustur() fonksiyonumuzu kullanarak Türkçe karakter probleminide hallediyoruz. preg_match kullanımı hakkında müsait olduğum zaman ufak bir yazı yazacağım fakat şimdilik başka kaynaklar yardımıyla öğrenmenizi tavsiye ederim <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Lafı fazla uzatmadan uygulamamızın çalışır hali için <strong><a title="Uygulamayı incele" href="http://www.mahiryilmaz.com/wp-content/uploads/ajax_ile_bot/">Buraya</a></strong>, indirmek için ise <strong><a title="Uygulamayı indir" href="http://www.mahiryilmaz.com/wp-content/uploads/ajax_ile_bot/bot.rar">Buraya</a></strong> tıklayınız.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mahiryilmaz.com/ajax-ve-php-ile-bot-yapimi-2/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Php&#8217;nin en değerli zaman fonksiyonu mktime</title>
		<link>http://www.mahiryilmaz.com/phpnin-en-degerli-zaman-fonksiyonu-mktime/</link>
		<comments>http://www.mahiryilmaz.com/phpnin-en-degerli-zaman-fonksiyonu-mktime/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 19:55:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Programlama]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php fonksiyonları]]></category>

		<guid isPermaLink="false">http://www.mahiryilmaz.com/?p=263</guid>
		<description><![CDATA[Bazı arkadaşlarımın kullandığı zaman olaylarını ve bunlarda karşılaştıkları sorunları görerek, ben kendi uygulamalarımda sürekli kullandığım mktime() fonksiyonunu anlatmaya çalışacağım. mktime() fonksiyonu Php&#8217;de zamanı Unix zamanlamasına çeviren fonksiyondur. Basitçe söylersek, yaşadığınız, geçmiş ya da gelecekteki bir zamanı sayısal kodlamaya çeviren bir fonksiyondur. Bir uygulama echo mktime(); yazıp çalıştırdığımız zaman ekrana yaklaşık 10 karakterli bir sayısal ifade [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-medium wp-image-31" style="margin: 10px;" title="800px-php-n_logosvg" src="http://www.mahiryilmaz.com/wp-content/uploads/800px-php-n_logosvg.png" alt="" width="190" height="100" /> Bazı arkadaşlarımın kullandığı zaman olaylarını ve bunlarda karşılaştıkları sorunları görerek, ben kendi uygulamalarımda sürekli kullandığım mktime() fonksiyonunu anlatmaya çalışacağım.</p>
<p style="text-align: justify;">mktime() fonksiyonu Php&#8217;de zamanı Unix zamanlamasına çeviren fonksiyondur. Basitçe söylersek, yaşadığınız, geçmiş ya da gelecekteki bir zamanı sayısal kodlamaya çeviren bir fonksiyondur. Bir uygulama echo mktime(); yazıp çalıştırdığımız zaman ekrana yaklaşık 10 karakterli bir sayısal ifade yazdırdığını görürsünüz. Bu sizi korkutmasın bu sayısal ifadeleri geri dönüştürmek gerçekten çok kolay <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p style="text-align: justify;">Örneğin ;</p>
<blockquote style="text-align: justify;"><p>&lt;?</p>
<p>$zaman = mktime();</p>
<p>echo date(&#8220;d.m.Y H:i&#8221;, $zaman); // çıktı : gun.ay.yil Saat:dakika</p>
<p>?&gt;</p></blockquote>
<p style="text-align: justify;">date() varken neden bunu kullanalım, tek satırken 2 satıra çıktı kod diyebilirsiniz. Direk zamanı bastırırken haklısınız doğru fakat bir duyuru uygulamasında veya zamana göre çekilen sorgularda gerçekten işinizi çok kolaylaştıyor. Buna örnek vermeden önce herhangi bir günü ayı yılı mktime() ile nasıl çevirebiliriz ona örnek verelim.</p>
<p style="text-align: justify;"><span id="more-263"></span></p>
<blockquote style="text-align: justify;"><p>&lt;?</p>
<p>/* mktime($saat, $dakika, $saniye, $ay, $gun, $yil); şeklinde yazarsak bize sayısal değer verecektir */</p>
<p>$saat = 12;</p>
<p>$dakika = 21;</p>
<p>$saniye = 40;</p>
<p>$ay = 10;</p>
<p>$gun = 18;</p>
<p>$yil = 2010;</p>
<p>$zaman = mktime($saat, $dakika, $saniye, $ay, $gun, $yil);</p>
<p>echo $zaman;</p>
<p>?&gt;</p></blockquote>
<p style="text-align: justify;">Örnekte göreceğiniz üzere bir zamanı Unix damgasına çevirdik. Şimdi bunda sorgularda nasıl faydalanabiliriz ona basitçe bir örnek verelim.</p>
<blockquote style="text-align: justify;"><p>&lt;?</p>
<p>$simdi = mktime();</p>
<p>$sorgu = mysql_query(&#8220;select sutunadi from tabloadi where zaman  &lt; $simdi&#8221;);</p>
<p>list($veriler) = mysql_fetch_row($sorgu);</p>
<p>echo $veriler;</p>
<p>?&gt;</p></blockquote>
<p style="text-align: justify;">Tablomuzdaki kayıtlı verilerden şimdiki zamandan öncekileri listeleyen basit bir sorgu. &gt; işareti koyarak büyük olanları çekebiliriz. Ben bunu daha çok mysql cache sisteminde kullanıyorum. Bulunduğumuz zamana 20 dakika gibi bir süre ekleyip, sorgularda ona göre çalıştırıyorum. Bunu da basit bir örnekle açıklayacak olursak;</p>
<blockquote style="text-align: justify;"><p>&lt;?</p>
<p>$simdi = mktime();</p>
<p>$cachezamani = 60 * 20; // 20 = dakika</p>
<p>$cachezamani = $simdi+$cachezamani;</p>
<p>mysql_query(&#8220;insert into cache values(&#8216;$cacheverileri&#8217;, &#8216;$cachezamani&#8217;)&#8221;);</p>
<p>// veriyi tablomuza yazdırdık çekerken ise yukarıdaki örnek mantıgı ile çekiyoruz</p>
<p>?&gt;</p></blockquote>
<p>Basitçe ve hızlıca sizlere mktime(); fonksiyonunu anlatmaya çalıştım. Umarım faydalı olur.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.mahiryilmaz.com/phpnin-en-degerli-zaman-fonksiyonu-mktime/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress&#8217;e güvenlik sorusu uygulaması</title>
		<link>http://www.mahiryilmaz.com/wordpress-e-guvenlik-sorusu-uygulamasi/</link>
		<comments>http://www.mahiryilmaz.com/wordpress-e-guvenlik-sorusu-uygulamasi/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 13:03:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Programlama]]></category>
		<category><![CDATA[guvenlik kodu]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.mahiryilmaz.com/?p=228</guid>
		<description><![CDATA[Bir çok web kullanıcısı botlar tarafından gönderilen mesajlardan şikayetçidir. Bende şuan onlar arasındayım. Siteme hergün sayısız botlar tarafından yorum yapılmakta . Bu yüzden bende basit bir kaç php kodu ile bilmediğim wordpress sistemine ufak bir güvenlik sorusu eklentisi yazdım. Aşağıda yorum yapma alanında göreceksiniz .( 13 + 1 = ? gibi ) Bu uygulama ile [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-medium wp-image-229" style="margin: 10px;" title="wordpress" src="http://www.mahiryilmaz.com/wp-content/uploads/wordpress.jpg" alt="" width="203" height="203" /> Bir çok web kullanıcısı botlar tarafından gönderilen mesajlardan şikayetçidir. Bende şuan onlar arasındayım. Siteme hergün sayısız botlar tarafından yorum yapılmakta <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  . Bu yüzden bende basit bir kaç php kodu ile bilmediğim wordpress sistemine ufak bir güvenlik sorusu eklentisi yazdım. Aşağıda yorum yapma alanında göreceksiniz .( 13 + 1 = ? gibi ) Bu uygulama ile o kahrolası botların reklam mesajlarından kurtulacağım <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p style="text-align: justify;">
<p style="text-align: justify;">Dediğim gibi wordpress hakkında o kadar detaylı bir bilgiye sahip değilim. Bu yüzden dosyaları editleyerek işe başladım. Öncelikle kullandığım temanın <strong>comments.php</strong> dosyasına yorum alanına eklenti yaptım.</p>
<blockquote>
<p style="text-align: justify;">&lt;p&gt;<br />
&lt;?php<br />
$sayi1 = rand(10, 20);<br />
$sayi2 = rand(1, 9);<br />
$islem = array(&#8220;+&#8221;, &#8220;-&#8221;);<br />
$islem = $islem[rand(0,1)];</p>
<p>if($islem == &#8220;+&#8221;) $sonuc = $sayi1 + $sayi2;<br />
else $sonuc = $sayi1 &#8211; $sayi2;<br />
?&gt;<br />
&lt;font face=&#8221;Arial&#8221; size=&#8221;2&#8243;&gt;&lt;b&gt;&lt;? echo $sayi1; ?&gt; &lt;? echo $islem; ?&gt; &lt;? echo $sayi2; ?&gt; = ?&lt;/b&gt; (İşleminin Sonucu)&lt;/font&gt;<br />
&lt;label for=&#8221;url&#8221;&gt; &lt;/label&gt;&lt;/p&gt;</p>
<p>&lt;p&gt;&lt;input type=&#8221;text&#8221; name=&#8221;gkodu&#8221; id=&#8221;gkodu&#8221; value=&#8221;" size=&#8221;22&#8243; tabindex=&#8221;3&#8243; /&gt;<br />
&lt;label for=&#8221;url&#8221;&gt;Güvenlik Kodu&lt;/label&gt;&lt;/p&gt;</p></blockquote>
<p style="text-align: justify;"><span id="more-228"></span></p>
<p style="text-align: justify;">Gördüğünüz kodlarla rastgele 10 ile 20 arasında bir sayı ve 1 ile 9 arasında bir sayı seçerek, rastgele toplama ya da çıkarma işlemi yaptırıyorum. Bu işlemi ekrana yazdırıp input alanından kullanıcının girmesini saglıyorum. Kodların biraz altına &lt;/form&gt; kapatılmadan önce ise;</p>
<blockquote>
<p style="text-align: justify;">&lt;input type=&#8221;hidden&#8221; name=&#8221;sonuc&#8221; value=&#8221;&lt;?php echo $sonuc; ?&gt;&#8221; /&gt;</p>
</blockquote>
<p style="text-align: justify;">yazdırarak sonucun yorumlanması için gönderimini sağlıyorum. Yorum uygulaması bu kadar. Şimdi ise bu verilerin değerlendirilmesi için ana dizinde bulunan <strong>wp-comments-post.php</strong> dosyasına bir kaç kod yazalım.</p>
<blockquote>
<p style="text-align: justify;">if ( get_option(&#8216;require_name_email&#8217;) &amp;&amp; !$user-&gt;ID ) {<br />
if ( 6 &gt; strlen($comment_author_email) || &#8221; == $comment_author )<br />
wp_die( __(&#8216;Error: please fill the required fields (name, email).&#8217;) );<br />
elseif ( !is_email($comment_author_email))<br />
wp_die( __(&#8216;Error: please enter a valid email address.&#8217;) );<br />
}</p></blockquote>
<p style="text-align: justify;">Bu kodların hemen altına;</p>
<blockquote>
<p style="text-align: justify;">$gkodu = $_POST["gkodu"];<br />
$sonuc = $_POST["sonuc"];</p>
<p>if(!$gkodu){<br />
wp_die( __(&#8216;Lutfen Guvenlik Kodunu Yaziniz.&lt;br&gt;&lt;br&gt;&lt;a href=javascript:history.go(-1)&gt;&lt;b&gt; &lt;&lt; Geri &lt;/a&gt;&#8217;) );<br />
}</p>
<p>if($gkodu != $sonuc){<br />
wp_die( __(&#8216;Guvenlik kodunu eksik yada yanlis girdiniz.&lt;br&gt;&lt;br&gt;&lt;a href=javascript:history.go(-1)&gt;&lt;b&gt; &lt;&lt; Geri &lt;/a&gt;&#8217;) );<br />
}</p></blockquote>
<p style="text-align: justify;">yazıyoruz. Böylece kullanıcının yazdığı kod ile sonucun eşit olup olmadığını kontrol edip ona göre ya işlemi bitiriyoruz ya da devam ederek yorumun eklenmesini sağlıyoruz. İyi şanslar, botsuz günler <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mahiryilmaz.com/wordpress-e-guvenlik-sorusu-uygulamasi/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Ajax ve Php ile Bot Yapımı &#8211; 1</title>
		<link>http://www.mahiryilmaz.com/ajax-ve-php-ile-bot-yapimi-1/</link>
		<comments>http://www.mahiryilmaz.com/ajax-ve-php-ile-bot-yapimi-1/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 13:00:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Programlama]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php ile bot yapımı]]></category>
		<category><![CDATA[wordpress bot yapımı]]></category>

		<guid isPermaLink="false">http://www.mahiryilmaz.com/?p=187</guid>
		<description><![CDATA[Bu yazımda sizlere ajax ve php ile bir wordpress sitesine (kendi siteme yaptım) bot nasıl yapılır anlatmaya çalışacağım. Farklı üstadların sitelerine uygulamayı düşündüm ama emek hırsızlarına karşı ne olur ne olmaz diye kendi siteme kodlamayı uygun gördüm. İşin mantığını kavrayarak istediğiniz her siteye istediğiniz her türde botlar yapabilirsiniz. Ajax kullanmamda ki amaç ise sayfa yenileme [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-medium wp-image-31" style="margin: 10px;" title="800px-php-n_logosvg" src="http://www.mahiryilmaz.com/wp-content/uploads/800px-php-n_logosvg.png" alt="" width="190" height="100" /> Bu yazımda sizlere ajax ve php ile bir wordpress sitesine (kendi siteme yaptım) bot nasıl yapılır anlatmaya çalışacağım. Farklı üstadların sitelerine uygulamayı düşündüm ama emek hırsızlarına karşı ne olur ne olmaz diye kendi siteme kodlamayı uygun gördüm. İşin mantığını kavrayarak istediğiniz her siteye istediğiniz her türde botlar yapabilirsiniz. Ajax kullanmamda ki amaç ise sayfa yenileme derdine son vermekti. Öncelikle uygulamama <strong><a title="Uygulamaya göz at" href="http://www.mahiryilmaz.com/wp-content/uploads/php_ile_bot/" target="_blank">Buradan</a></strong> göz atarak işe başlayabilirsiniz. Daha sonra yazıyı okumaya devam edin. Uygulamamız 3 dosyadan ibaret. Biri Eburhan&#8217;ın ajax kütüphanesi, sayfamızın tasarımını ve basit ajax fonksiyonlarını içeren index.php ve asıl içeriği çeken bot.php.</p>
<p style="text-align: justify;"><img class="alignnone size-medium wp-image-188" title="dosyalar" src="http://www.mahiryilmaz.com/wp-content/uploads/dosyalar-300x66.jpg" alt="" width="300" height="66" /></p>
<p style="text-align: justify;"><span id="more-187"></span></p>
<p style="text-align: justify;">index.php dosyamızda uygulamamızın bot.php ile bağlantısını kuran basit bir fonksiyonumuz bulunmaktadır. Bu sayede bot.php dosyamıza site isimli değişkeni gönderiyoruz ve gelen verileri sonuclar alanına yazdırıyoruz. Kodları inceleyerek ne olduklarını çok rahat anlayabilirsiniz. Gelelim bot.php. Bot yapımı için bu sistemde file_get_contents, preg_match ve preg_match_all fonksiyonlarını kullandım. Bu fonksiyonların detaylı açıklamaları için malesef Php.net&#8217;e bakmanız gerekiyor. Basitçe açıklamak gerekirse;</p>
<p style="text-align: justify;"><strong>file_get_contents(&#8216;http://www.site.com&#8217;);</strong> sitesinin içeriğini kod bazında çeker.</p>
<p style="text-align: justify;"><strong>preg_match_all</strong>() ve <strong>preg_match</strong>() düzenli ifade istediğiniz parametreden düzenli ifadeleri, istediğiniz düzenli ifadeleri değişkenlere atayarak istediğiniz gibi kullanmanızı sağlar.</p>
<blockquote style="text-align: justify;"><p>&lt;?php</p>
<p>$site = $_POST["site"];</p>
<p>if(!$site) die(&#8220;Site yazmadiniz&#8221;);</p>
<p>$ac = @file_get_contents($site);</p>
<p>if(!$ac) die(&#8220;Siteyi acamadim&#8221;);</p>
<p>preg_match_all(&#8216;#&lt;div class=&#8221;post-title&#8221;&gt;(.*?)&lt;/div&gt;#si&#8217;, $ac, $veriler, PREG_SET_ORDER);</p>
<p>foreach($veriler as $veri){</p>
<p>preg_match(&#8216;#&lt;h2&gt;&lt;a href=&#8221;(.*?)&#8221; rel=&#8221;bookmark&#8221; title=&#8221;(.*?)&#8221;&gt;(.*?)&lt;/a&gt;&lt;/h2&gt;#si&#8217;, $veri[1], $aktar);<br />
$link = $aktar[1];<br />
$baslik = karakterdonustur($aktar[3]);</p>
<p>echo &#8220;&lt;p align=\&#8221;left\&#8221; style=\&#8221;padding-left:5px\&#8221;&gt;&lt;b&gt;$baslik&lt;/b&gt; &#8211; &lt;a href=# title=\&#8221;Bir sonraki yazıda aktif edilecek\&#8221;&gt;Bunu Ekle&lt;/a&gt;&lt;/p&gt;&#8221;;<br />
}</p>
<p>preg_match(&#8216;#&lt;div class=&#8221;navigation&#8221;&gt;(.*?)&lt;/div&gt;#si&#8217;, $ac, $sayfalar);<br />
$sayfa = $sayfalar[1];<br />
if($sayfa){<br />
preg_match(&#8216;#&lt;a href=&#8221;(.*?)&#8221;&gt;(.*?)&lt;/a&gt;#si&#8217;, $sayfa, $aktar);<br />
$link = $aktar[1];<br />
$sayfa = karakterdonustur($aktar[2]);<br />
echo &#8220;Diger Sayfalar : &lt;input type=\&#8221;submit\&#8221; value=\&#8221;$sayfa\&#8221; onclick=\&#8221;calistir(&#8216;$link&#8217;);\&#8221;&gt;&#8221;;<br />
}</p>
<p>function karakterdonustur($param){<br />
$param = str_replace(&#8220;Ç&#8221;, &#8220;&amp;#199;&#8221;, $param);<br />
$param = str_replace(&#8220;ç&#8221;, &#8220;&amp;#231;&#8221;, $param);<br />
$param = str_replace(&#8220;İ&#8221;, &#8220;&amp;#304;&#8221;, $param);<br />
$param = str_replace(&#8220;ı&#8221;, &#8220;&amp;#305;&#8221;, $param);<br />
$param = str_replace(&#8220;Ğ&#8221;, &#8220;&amp;#286;&#8221;, $param);<br />
$param = str_replace(&#8220;ğ&#8221;, &#8220;&amp;#287;&#8221;, $param);<br />
$param = str_replace(&#8220;Ö&#8221;, &#8220;&amp;#214;&#8221;, $param);<br />
$param = str_replace(&#8220;ö&#8221;, &#8220;&amp;#246;&#8221;, $param);<br />
$param = str_replace(&#8220;Ü&#8221;, &#8220;&amp;#220;&#8221;, $param);<br />
$param = str_replace(&#8220;ü&#8221;, &#8220;&amp;#252;&#8221;, $param);<br />
$param = str_replace(&#8220;Ş&#8221;, &#8220;&amp;#350;&#8221;, $param);<br />
$param = str_replace(&#8220;ş&#8221;, &#8220;&amp;#351;&#8221;, $param);<br />
return $param;<br />
}<br />
?&gt;</p></blockquote>
<p style="text-align: justify;">Gözünüze takılan bir kısım daha var. O da karakterdonustur() fonksiyonu. Ajax ile karakterler döndüğünden dolayı Türkçe karakterleri dönüştürmek için kullandığım bir fonksiyon. Her yerde ben bunu kullanıyorum.</p>
<p style="text-align: justify;">Pek açıklamalı anlatamasam da kodları inceleyerek ve deneme yanılma yoluyla farklı yerlere yazmaya çalışarak istediğiniz gibi modifiye etme şansınız var.</p>
<p style="text-align: justify;">Uygulamamıza tekrar bakmak için <strong><a href="http://www.mahiryilmaz.com/wp-content/uploads/php_ile_bot/" target="_blank">Buraya</a></strong>, indirmek içinde <strong><a href="http://www.mahiryilmaz.com/wp-content/uploads/php_ile_bot/bot.rar">Buraya</a></strong> tıklayınız.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mahiryilmaz.com/ajax-ve-php-ile-bot-yapimi-1/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Ajax ile sayfanın belirli kısımlarının yenilenmesi</title>
		<link>http://www.mahiryilmaz.com/ajax-ile-sayfanin-belirli-kisimlarinin-yenilenmesi/</link>
		<comments>http://www.mahiryilmaz.com/ajax-ile-sayfanin-belirli-kisimlarinin-yenilenmesi/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 16:01:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Programlama]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.mahiryilmaz.com/?p=184</guid>
		<description><![CDATA[Bir arkadaşımın isteği üzerine ajaxde sayfanın belirli kısımlarının yenilenmesini için kod yazdım . Düşünürken zorda olsa 2-3 satır kodla yapılabildiğini görmek sanırım herkesi mutlu eden bir kavramdır. Bu basit uygulama ile yapılabilecek sanırım bir çok şeyler var. Basit destek sistemi, sohbet, dinamik kullanıcı paneli vs. Şuan vaktim kısıtlı olduğundan sizlere kodların tam olarak anlatamasam da, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.mahiryilmaz.com/wp-content/uploads/ajax.jpg"><img class="alignleft size-medium wp-image-63" title="ajax" src="http://www.mahiryilmaz.com/wp-content/uploads/ajax.jpg" alt="" width="200" height="200" /></a> Bir arkadaşımın isteği üzerine ajaxde sayfanın belirli kısımlarının yenilenmesini için kod yazdım <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Düşünürken zorda olsa 2-3 satır kodla yapılabildiğini görmek sanırım herkesi mutlu eden bir kavramdır.  Bu basit uygulama ile yapılabilecek sanırım bir çok şeyler var. Basit destek sistemi, sohbet, dinamik kullanıcı paneli vs. Şuan vaktim kısıtlı olduğundan sizlere kodların tam olarak anlatamasam da, kodları açıp baktığınızda işlemin ne kadar basit olduğunu sizde anlayacaksınız.</p>
<p style="text-align: justify;">Gelelim bu işlemi yapan basit kod aralığımıza.</p>
<p style="text-align: justify;">
<blockquote>
<p style="text-align: justify;">&lt;script type=&#8221;text/javascript&#8221; src=&#8221;ajax/eyceks.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt;</p>
<p>function yazigetir(){<br />
JXP(0, &#8220;yazi&#8221;, &#8220;yazilar.php&#8221;, &#8220;islem=getir&#8221;);<br />
timer1 = setTimeout(&#8220;yazigetir()&#8221;,5000);<br />
}<br />
&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body onLoad=&#8221;yazigetir()&#8221;&gt;</p></blockquote>
<p style="text-align: justify;"><strong>yazigetir()</strong> fonksiyonumuzla yazilar.php dosyamızdan sayfamızda yazi idli dive rastgele yazımızı yazdırıyoruz. Burada js kodu olan setTimeout(&#8220;yazigetir()&#8221;,5000); ile her 5 saniyede bir yazigetir() fonksiyonumuzu tekrar çalıştırıyoruz ve işlemin 5 saniye aralıklarla sürekli olmasını sağlıyoruz <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  İşte gördüğünüz işlem bundan ibaret.</p>
<blockquote>
<p style="text-align: justify;">&lt;?php</p>
<p>$islem = $_POST["islem"];</p>
<p>if($islem == &#8220;getir&#8221;){</p>
<p>$yazilar = array(&#8220;Deneme Yazi&#8221;, &#8220;Degisiyor&#8221;, &#8220;Rastgele Secim Yapiliyor&#8221;, &#8220;MahiriX&#8221;, &#8220;Test Deneme&#8221;, &#8220;Guzel Oldu&#8221;);</p>
<p>$hangisi = rand(0,count($yazilar)-1);</p>
<p>echo &#8220;&lt;h3&gt;$yazilar[$hangisi]&lt;/h3&gt;&#8221;;<br />
}<br />
?&gt;</p></blockquote>
<p style="text-align: justify;">yazilar.php dosyamızda ise yazilar değişkeninden rastgele bi yazıyı seçip ekrana bastırıyoruz. Bunun içeriği ne olacak sizin hayal gücünüze kalmış <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Uygulamanın çalışır halini görmek için<strong> <a href="http://www.mahiryilmaz.com/wp-content/uploads/yazi_getir/" target="_blank">Buraya</a></strong>, indirmek içinde <strong><a href="http://www.mahiryilmaz.com/wp-content/uploads/yazi_getir/yazi_getir.rar">Buraya</a> </strong>tıklayınız.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mahiryilmaz.com/ajax-ile-sayfanin-belirli-kisimlarinin-yenilenmesi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ajax ile üst kategoriyi seçince alt kategoriler listelenmesi</title>
		<link>http://www.mahiryilmaz.com/ajax-ile-ust-kategoriyi-secince-alt-kategoriler-listelensin/</link>
		<comments>http://www.mahiryilmaz.com/ajax-ile-ust-kategoriyi-secince-alt-kategoriler-listelensin/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 15:35:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Programlama]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[combox]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.mahiryilmaz.com/?p=180</guid>
		<description><![CDATA[Bir arkadaşımın isteği üzerine ajax ile üst kategoriyi seçtiğimizde alt kategorilerin listelenmesi uygulamasını basitçe sizlerle paylaşıyorum. İşlem oldukça basit aslında. Şimdi görünce gerçekten basit olduğuna sizde karar vereceksiniz Bu uygulamada Eburhan&#8217;ın eyceks kütüphanesini kullandım. Bu kütüphane ile istediğiniz her türlü ajax uygulamasını başarıyla yapabilirsiniz yeterki isteyin. Şimdi gelelim kodlarımızı anlatmaya. &#60;html&#62; &#60;head&#62; &#60;title&#62;Ajax ile secmece&#60;/title&#62; [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-medium wp-image-63" title="ajax" src="http://www.mahiryilmaz.com/wp-content/uploads/ajax.jpg" alt="" width="200" height="200" /> Bir arkadaşımın isteği üzerine ajax ile üst kategoriyi seçtiğimizde alt kategorilerin listelenmesi uygulamasını basitçe sizlerle paylaşıyorum. İşlem oldukça basit aslında. Şimdi görünce gerçekten basit olduğuna sizde karar vereceksiniz <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Bu uygulamada Eburhan&#8217;ın eyceks kütüphanesini kullandım. Bu kütüphane ile istediğiniz her türlü ajax uygulamasını başarıyla yapabilirsiniz yeterki isteyin. Şimdi gelelim kodlarımızı anlatmaya.</p>
<blockquote><p>&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;Ajax ile secmece&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;ajax/eyceks.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
function islemyap(deger){<br />
JXP(0, &#8220;sonuc_goruntulenen_yer&#8221;, &#8220;islem.php&#8221;, &#8220;kategori=&#8221;+deger);<br />
}<br />
&lt;/script&gt;<br />
&lt;form action=&#8221;javascript:void(0)&#8221; method=&#8221;post&#8221;&gt;</p>
<p>&lt;table&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;Kategori&lt;/td&gt;<br />
&lt;td width=&#8221;1&#8243;&gt;:&lt;/td&gt;<br />
&lt;td&gt;&lt;select name=&#8221;kategori&#8221; onChange=&#8221;islemyap(this.value)&#8221;&gt;<br />
&lt;option&gt;Bir Kategori Secin&lt;/option&gt;<br />
&lt;option value=&#8221;1&#8243;&gt;Kategori 1&lt;/option&gt;<br />
&lt;option value=&#8221;2&#8243;&gt;Kategori 2&lt;/option&gt;<br />
&lt;option value=&#8221;3&#8243;&gt;Kategori 3&lt;/option&gt;<br />
&lt;/select&gt;<br />
&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;Alt Kategori&lt;/td&gt;<br />
&lt;td width=&#8221;1&#8243;&gt;:&lt;/td&gt;<br />
&lt;td&gt;<br />
&lt;div id=&#8221;sonuc_goruntulenen_yer&#8221;&gt;&lt;/div&gt;<br />
&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p></blockquote>
<p style="text-align: justify;">index.php dosyamız gördüğünüz kodlardan ibarettir. Uygulamamızın önemli yerlerini teker teker anlatayım.</p>
<p><span id="more-180"></span></p>
<ul>
<li>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;ajax/eyceks.js&#8221;&gt;&lt;/script&gt; ile Eburhan eyceks.js dosyamızı içeri çekiyoruz buna mecburuz <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Onsuz hayat dünüşünelemez <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li> function islemyap(deger){<br />
JXP(0, &#8220;sonuc_goruntulenen_yer&#8221;, &#8220;islem.php&#8221;, &#8220;kategori=&#8221;+deger);<br />
}<br />
islemyap fonksiyonumuz kullanıcı kategoriyi seçtiği anda (<strong>onChange=&#8221;islemyap(this.value)&#8221;) </strong>işleme başlar. Burda önemli kısım <strong>JXP();</strong> fonksiyonudur.<br />
JXP(1, 2, 3, 4);</p>
<ol>
<li>numaralı değer işlem yapılırken kullanıcıya işlemin yapılıyor olduğunu gösterip göstermemeye yarar. Alabileceği 2 değer vardır 0 ve 1. 0 iken işlem yapılırken kullanıcı hiçbirşey görmez. 1 degerinde ise işlem yapılırken yükleniyor resmi ekrana çıkar.</li>
<li>işlem sonucunun sayfada nereye yazılacağını gösterir. <strong>&lt;div id=&#8221;sonuc_goruntulenen_yer&#8221;&gt;&lt;/div&gt; </strong>gördüğünüz gibi buraya bastırıyoruz sonuçlarımızı.</li>
<li>işlemi hangi dosyamızın yapacağıdır.</li>
<li>işlemi yapacak olan dosyamıza gönderdiğimiz değişkenlerdir.</li>
</ol>
</li>
<li><strong>&lt;select name=&#8221;kategori&#8221; onChange=&#8221;islemyap(this.value)&#8221;&gt; </strong>yukarda<strong> </strong>da söylediğimiz gibi<strong> </strong>kullanıcı kategoriyi seçince işlem başlayacaktır.</li>
<li><strong>&lt;div id=&#8221;sonuc_goruntulenen_yer&#8221;&gt;&lt;/div&gt; </strong>islem sonucunun yazdırılacağı alan <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p style="text-align: justify;">Dosyalarımızda birde islem.php var. Bunu anlatmaya gerek görmüyorum basitçe switch döngüsünü kullandım o kadar <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Açıp bakan herkes rahatça anlayabilir.</p>
<p style="text-align: justify;">Uygulamamızın çalışır durumunu görmek için <strong><a title="Uygulamaya gözat" href="http://www.mahiryilmaz.com/wp-content/uploads/secmece/" target="_blank">buraya</a></strong> , indirmek içinde <strong><a title="İndir" href="http://www.mahiryilmaz.com/wp-content/uploads/secmece/secmece.rar" target="_blank">buraya</a></strong> tıklayınız.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mahiryilmaz.com/ajax-ile-ust-kategoriyi-secince-alt-kategoriler-listelensin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Php ile otomatik sitemap.xml oluşturma</title>
		<link>http://www.mahiryilmaz.com/php-ile-otomatik-sitemapxml-olusturma/</link>
		<comments>http://www.mahiryilmaz.com/php-ile-otomatik-sitemapxml-olusturma/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 20:20:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Programlama]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php ile sitemap]]></category>
		<category><![CDATA[sitemap oluşturma]]></category>

		<guid isPermaLink="false">http://www.mahiryilmaz.com/?p=154</guid>
		<description><![CDATA[Sitelerin vazgeçilmezlerinden birisi olan site haritası oluşturmak gerçekten php ile çok basit bir işlemdir. Özellikle spam siteler yapıyorsanız ve kısa sürede hızlı indexleme ve hit istiyorsanız vazgeçilmez bir olaydır.  Sitemap oluşturan çok ve güzel programlar vardır fakat bunlar her seferinde yenilenmek istediğinden ben pek önermiyorum. O yüzden yazacağınız 3-5 satır kodla bu işi halledersiniz ve [...]]]></description>
			<content:encoded><![CDATA[<p>Sitelerin vazgeçilmezlerinden birisi olan site haritası oluşturmak gerçekten php ile çok basit bir işlemdir. Özellikle spam siteler yapıyorsanız ve kısa sürede hızlı indexleme ve hit istiyorsanız vazgeçilmez bir olaydır.  Sitemap oluşturan çok ve güzel programlar vardır fakat bunlar her seferinde yenilenmek istediğinden ben pek önermiyorum. O yüzden yazacağınız 3-5 satır kodla bu işi halledersiniz ve <a href="https://www.google.com/webmasters/" target="_blank">Google WebmasterTools</a>‘a bir kere göndermeniz size yetecektir. Şimdi gelelim bu işi yapan kodlarımızı yazmaya.</p>
<blockquote><p>&lt;?<strong style="color: black; background-color: #ffff66;">php</strong><br />
include_once(”ayarlar.<strong style="color: black; background-color: #ffff66;">php</strong>”);<br />
// veritabanı baglantısını yapıyoruz</p>
<p>header(’Content-type: text/xml’); // xml dosyası <img class="wp-smiley" src="../wp-includes/images/smilies/icon_smile.gif" alt=":)" /></p>
<p>echo “&lt;?xml version=\”1.0\” encoding=\”ISO-8859-9\” ?&gt;\n”;<br />
echo “&lt;urlset xmlns=\”http://www.google.com/schemas/sitemap/0.84\” xmlns:xsi=\”http://www.w3.org/2001/XMLSchema-instance\” xsi:schemaLocation=\”http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd\”&gt;”;</p>
<p>// ana linkler basitçe <img class="wp-smiley" src="../wp-includes/images/smilies/icon_smile.gif" alt=":)" /> fark amaçlı<br />
$xml_ciktisi .= “\n&lt;url&gt;\n&lt;loc&gt;http://www.siteurl.com&lt;/loc&gt;\n&lt;changefreq&gt;daily&lt;/changefreq&gt;\n&lt;priority&gt;1.00&lt;/priority&gt;\n&lt;/url&gt;”;</p>
<p>// kategorilerin çıktısı</p>
<p>$result = @mysql_query(”select id, isim from veritablosu”); // tablodan çekioruz arttırılabilir</p>
<p>while (list($id, $isim) = @mysql_fetch_row($result))<br />
{<br />
$xml_ciktisi .= “\n&lt;url&gt;\n&lt;loc&gt;http://www.siteadresi.com/veritablosuurl&amp;id=$id&lt;/loc&gt;\n&lt;changefreq&gt;daily&lt;/changefreq&gt;\n&lt;priority&gt;0.80&lt;/priority&gt;\n&lt;/url&gt;”;<br />
};</p>
<p>echo $xml_ciktisi .”\n&lt;/urlset&gt;”;</p>
<p>?&gt;</p></blockquote>
<p style="text-align: justify;">Hyperlinkleriniz varsa artık onu kendiniz sisteminize göre uyarlayacaksınız. Burda unutmamanız gereken tek birşey var Google sitemaplarda maximum 50 bin url ister <img class="wp-smiley" src="../wp-includes/images/smilies/icon_smile.gif" alt=":)" /> Bu sınırı aşmayın ve hyperlink yaparken mutlaka karakterleri süzün ( &lt; ve &gt; önemlidir).</p>
<p style="text-align: justify;">.htaccess dosyanıza birde</p>
<blockquote style="text-align: justify;"><p>ReWriteRule ^sitemap.xml sitemap.<strong style="color: black; background-color: #ffff66;">php</strong></p></blockquote>
<p style="text-align: justify;">yazarsanız direk xml linki yaparsınız. (http://www.site.com/sitemap.xml)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mahiryilmaz.com/php-ile-otomatik-sitemapxml-olusturma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Görüntülü Php&#8217;de echo kullanımı</title>
		<link>http://www.mahiryilmaz.com/goruntulu-phpde-echo-kullanimi/</link>
		<comments>http://www.mahiryilmaz.com/goruntulu-phpde-echo-kullanimi/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 04:49:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Programlama]]></category>
		<category><![CDATA[echo kullanımı]]></category>
		<category><![CDATA[görüntülü php dersi]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.mahiryilmaz.com/?p=114</guid>
		<description><![CDATA[Bu videoda görüntülü phpde basitçe echo kullanımını anlatmaya çalıştım. Özel istek üzerine hazırlamış bulunmaktayım. Ses sanırım yine kötü ama idare edeceğinizi ümit ediyorum. Videoyu tam ekran izlemek için video yüklendikten sonra video üzerine çift tıklayınız. (Yoksa izleme güzel olmuyor ) Video Süresi : 5:58 Dk Video Boyutu : 3.35 Mb Bu videoyu indirmek için buraya [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft alignnone size-medium wp-image-31" style="border: 0pt none; margin: 10px; float: left;" title="800px-php-n_logosvg" src="http://www.mahiryilmaz.com/wp-content/uploads/800px-php-n_logosvg.png" alt="" width="190" height="100" />Bu videoda görüntülü phpde basitçe echo kullanımını anlatmaya çalıştım. Özel istek üzerine hazırlamış bulunmaktayım. Ses sanırım yine kötü ama idare edeceğinizi ümit ediyorum.</p>
<p style="text-align: justify;"><strong>Videoyu tam ekran izlemek için video yüklendikten sonra video üzerine çift tıklayınız. </strong>(Yoksa izleme güzel olmuyor <img src='http://www.mahiryilmaz.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p style="text-align: justify;"><strong>Video Süresi</strong> : 5:58 Dk</p>
<p style="text-align: justify;"><strong>Video Boyutu</strong> : 3.35 Mb</p>
<p><span id="more-114"></span><br />
<object classid="clsid:6bf52a52-394a-11d3-b153-00c04f79faa6" width="450" height="350" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"><param name="id" value="embed2" /><param name="FileName" value="http://www.mahiryilmaz.com/wp-content/uploads/echo/echo.wmv" /><param name="AutoStart" value="True" /><embed id="embed2" type="application/x-mplayer2" width="450" height="350" autostart="True" filename="http://www.mahiryilmaz.com/wp-content/uploads/echo/echo.wmv"></embed></object></p>
<p>Bu videoyu indirmek için <strong><a title="İndir" href="http://www.mahiryilmaz.com/wp-content/uploads/echo/echo.wmv">buraya</a></strong> tıklayınız.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mahiryilmaz.com/goruntulu-phpde-echo-kullanimi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.mahiryilmaz.com/wp-content/uploads/echo/echo.wmv" length="3515096" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>Register Globals nedir ve nasıl açılır?</title>
		<link>http://www.mahiryilmaz.com/register-globals-nedir-ve-nasil-acilir/</link>
		<comments>http://www.mahiryilmaz.com/register-globals-nedir-ve-nasil-acilir/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 05:56:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Programlama]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[register globals]]></category>

		<guid isPermaLink="false">http://www.mahiryilmaz.com/?p=108</guid>
		<description><![CDATA[Register globals php4.2.0 ve üstü sürümlerde kapalı, degeri off olarak gelir. Register globalsin açık ve programlama hatası olması durumunda uygulamalarınızda ciddi açıklar bulunmasına neden olur. Kısaca söylemek gerekirse register globalsin açık yani on olması durumunda uygulamanızda değişkenleri alırken $_GET ya da $_POST kullanmanıza gerek yoktur. Ee güzel bunu kullanmasak daha iyi olur, fazla kod yazmaktan [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">
<p style="text-align: justify;"><img class="alignleft size-medium wp-image-31" style="margin: 10px;" title="800px-php-n_logosvg" src="http://www.mahiryilmaz.com/wp-content/uploads/800px-php-n_logosvg.png" alt="" width="190" height="100" /> Register globals php4.2.0 ve üstü sürümlerde kapalı, degeri off olarak gelir. Register globalsin açık ve programlama hatası olması durumunda uygulamalarınızda ciddi açıklar bulunmasına neden olur. Kısaca söylemek gerekirse register globalsin açık yani on olması durumunda uygulamanızda değişkenleri alırken $_GET ya da $_POST kullanmanıza gerek yoktur. Ee güzel bunu kullanmasak daha iyi olur, fazla kod yazmaktan kurtulmuş oluruz denebilir fakat eğer uygulamanıza güveniyorsanız bunu diyebilirsiniz. Ama küçük kod hatalarından dolayı size büyük kayıplar verdirebilir. Peki nasıl olacak?</p>
<blockquote style="text-align: justify;"><p>&lt;?php<br />
if(fonsiyonumuz()){<br />
$degiskenimiz = true;<br />
}</p>
<p>if($degiskenimiz){<br />
include(&#8220;adminsayfamiz.php&#8221;);<br />
}<br />
?&gt;</p></blockquote>
<p style="text-align: justify;">Örnek de olduğu gibi basit bir kod yazdığımızı varsayalım. Ziyaretçi sayfa.php?degiskenimiz=1 sayfa.php?degiskenimiz=2 gibi herhangi birşey yazdığında bizim admin sayfamıza erişmiş olacaktır. Eğer register globals off olsaydı bu durum böyle olmazdı.</p>
<p><span id="more-108"></span></p>
<p style="text-align: justify;">Peki register globals&#8217;in sunucumuzda açık mı yoksa kapalı mı olduğunu nasıl anlarız ? Bunun için sunucu apache bilgilerine bakılabilir, php.ini okunabilir ama en kolay ve hızlı yolu bir dosya oluşturup içerisine;</p>
<blockquote style="text-align: justify;"><p>&lt;?php<br />
phpinfo();<br />
?&gt;</p></blockquote>
<p style="text-align: justify;">yazıp sunucunuza atıp çalıştırdığınızda sizin sunucunuz hakkında detaylı bilgiler verir. Ctrl+F&#8217;e basıp register yazıp aradığınızda register globals degerini görürsünüz (Muhtelemen off&#8217;dur).</p>
<p style="text-align: justify;">Register globalsi on durumu getirmek için 2 kolay yol bulunmaktadır. Bunun için .htaccess dosyanıza;</p>
<blockquote style="text-align: justify;"><p>php_flag register_globals on</p></blockquote>
<p style="text-align: justify;">yazarsınız ya da sayfanızın başına;</p>
<blockquote style="text-align: justify;"><p>foreach($_POST AS $key =&gt; $value) {<br />
${$key} = $value;<br />
}<br />
foreach($_GET AS $key =&gt; $value) {<br />
${$key} = $value;<br />
}</p></blockquote>
<p style="text-align: justify;">Eklerseniz açmış olursunuz.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>Sonuç olarak;</strong> her ne kadar bizi fazla kod yazmaktan kurtarsa da gözden kaçabilecek uygulama hatalarından dolayı güvenlik açıkları meydana getirebilir. O yüzden kapalı kalması herkes için en faydalısı olacaktır.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mahiryilmaz.com/register-globals-nedir-ve-nasil-acilir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
