<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Donanım Teknik - php mysql]]></title>
		<link>https://www.donanimteknik.com/</link>
		<description><![CDATA[Donanım Teknik - https://www.donanimteknik.com]]></description>
		<pubDate>Fri, 08 May 2026 12:57:28 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[C2C Pazaryeri Scripti (N11 Tarzı Script) C2C Marketplace Script]]></title>
			<link>https://www.donanimteknik.com/c2c-pazaryeri-scripti-n11-tarzi-script-c2c-marketplace-script-16223</link>
			<pubDate>Wed, 02 May 2018 02:05:17 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.donanimteknik.com/member.php?action=profile&uid=64899">websitekaydet</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.donanimteknik.com/c2c-pazaryeri-scripti-n11-tarzi-script-c2c-marketplace-script-16223</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://i.hizliresim.com/kONPMq.jpg" loading="lazy"  alt="[Resim: kONPMq.jpg]" class="mycode_img" /><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
KREDİ KARTIYLA ÖDEME İMKANI<br />
<img src="https://i.hizliresim.com/jyBZD9.jpg" loading="lazy"  alt="[Resim: jyBZD9.jpg]" class="mycode_img" /><br />
HAVALE İLE ÖDEME<br />
Türkiye İş Baknası - Garanti Bankası - Yapı Kredi - Enpara - QNB Finansbank<br />
TEK LİSANS : <span style="font-weight: bold;" class="mycode_b">1500 TL</span><br />
 <br />
<span style="font-size: 3pt;" class="mycode_size">Tüm Detaylara ve Demo Görüntülere Ulaşabilirsiniz. Demo Talebinde Bulunabilirsiniz.</span><br />
<a href="https://kurumsal.shop/urun/c2c-pazayeri-scripti-n11-script/" target="_blank" rel="noopener" class="mycode_url"><span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">C2C SCRİPT</span></span></a><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #000000;" class="mycode_color">Türkiye'nin Web Mağazası</span></span><br />
<span style="font-size: 4pt;" class="mycode_size">Gerekli soru ve sorunlarınızı <a href="https://kurumsal.shop/destek-merkezi" target="_blank" rel="noopener" class="mycode_url">Destek Merkezi</a>'nden yada isterseniz <span style="color: #e74c3c;" class="mycode_color">Skype </span>(Fpajans) iletebilirsiniz. Satın alma işleminden sonra, kurulum, seo ayarları, yönetim paneli kullanımı , geniş detaylı anlatım yaptığımız eğitim videosunu sizlere gönderiyoruz.</span><span style="font-size: 4pt;" class="mycode_size">Kurulumu bizim gerçekleştirmemiz istiyorsanız, satın alma işleminde açıklama bölümüne kurulum yapılacak sitenin hosting bilgilerini yazmayı unutmayınız.</span><br />
<span style="font-size: 4pt;" class="mycode_size">Satın Alma İletişim Telefonları</span><br />
<span style="font-size: 4pt;" class="mycode_size">GSM : </span><span style="font-size: 3pt;" class="mycode_size">0 541 570 84 55 - 0531 276 18 81 - 0850 305 12 85 - 0224 233 10 20</span><br />
<br />
<br />
<br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://i.hizliresim.com/kONPMq.jpg" loading="lazy"  alt="[Resim: kONPMq.jpg]" class="mycode_img" /><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
KREDİ KARTIYLA ÖDEME İMKANI<br />
<img src="https://i.hizliresim.com/jyBZD9.jpg" loading="lazy"  alt="[Resim: jyBZD9.jpg]" class="mycode_img" /><br />
HAVALE İLE ÖDEME<br />
Türkiye İş Baknası - Garanti Bankası - Yapı Kredi - Enpara - QNB Finansbank<br />
TEK LİSANS : <span style="font-weight: bold;" class="mycode_b">1500 TL</span><br />
 <br />
<span style="font-size: 3pt;" class="mycode_size">Tüm Detaylara ve Demo Görüntülere Ulaşabilirsiniz. Demo Talebinde Bulunabilirsiniz.</span><br />
<a href="https://kurumsal.shop/urun/c2c-pazayeri-scripti-n11-script/" target="_blank" rel="noopener" class="mycode_url"><span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">C2C SCRİPT</span></span></a><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #000000;" class="mycode_color">Türkiye'nin Web Mağazası</span></span><br />
<span style="font-size: 4pt;" class="mycode_size">Gerekli soru ve sorunlarınızı <a href="https://kurumsal.shop/destek-merkezi" target="_blank" rel="noopener" class="mycode_url">Destek Merkezi</a>'nden yada isterseniz <span style="color: #e74c3c;" class="mycode_color">Skype </span>(Fpajans) iletebilirsiniz. Satın alma işleminden sonra, kurulum, seo ayarları, yönetim paneli kullanımı , geniş detaylı anlatım yaptığımız eğitim videosunu sizlere gönderiyoruz.</span><span style="font-size: 4pt;" class="mycode_size">Kurulumu bizim gerçekleştirmemiz istiyorsanız, satın alma işleminde açıklama bölümüne kurulum yapılacak sitenin hosting bilgilerini yazmayı unutmayınız.</span><br />
<span style="font-size: 4pt;" class="mycode_size">Satın Alma İletişim Telefonları</span><br />
<span style="font-size: 4pt;" class="mycode_size">GSM : </span><span style="font-size: 3pt;" class="mycode_size">0 541 570 84 55 - 0531 276 18 81 - 0850 305 12 85 - 0224 233 10 20</span><br />
<br />
<br />
<br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[PDO MySQL veritabanı sınıfı]]></title>
			<link>https://www.donanimteknik.com/pdo-mysql-veritabani-sinifi-16045</link>
			<pubDate>Thu, 23 Nov 2017 04:49:59 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.donanimteknik.com/member.php?action=profile&uid=66587">hakkibulut</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.donanimteknik.com/pdo-mysql-veritabani-sinifi-16045</guid>
			<description><![CDATA[[h=2]Sınıfın özellikleri[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">PDO zaten kendi halinde tüm temel isteklere cevap verecek metodlara sahip. Bu sınıfın metodlarını hazırlarkende bir kaç satır kod kullandığımı görebilirsiniz. Artıları nedir derseniz;</span></span><ul class="mycode_list"><li>Öncelikle her sınıfın sağladığı pratikliği sağlıyor. Herhangi PDO bağlantı terimiyle uğraşmadan dosyaları uygulamanıza ekleyip ayar dosyasındaki sabitlerden veritabanı bilgilerini girip kullanmaya başlayabilirsiniz.<br />
</li>
<li>Sınıf <span style="font-weight: bold;" class="mycode_b">singleton pattern</span> yapısına sahip ve aynı zamanda statik olduğu için uygulamanızın en başında bir değişkene atanma ya da uygulama başlar başlamaz veritabanına bağlanma ihtiyacı duymaz. Örneğin uygulamanızda içerikleri cache ile sakladınığınızda ve yanlızca belirli dakikalarla veritabanından çekmek istediğinizde diğer zamanlarda gereksiz bağlantılar yapmamış olursunuz.<br />
</li>
<li>Bir satır bir satırdır. <span style="font-weight: bold;" class="mycode_b">getVar</span>, <span style="font-weight: bold;" class="mycode_b">getRow</span> gibi metodlar sayesinde tek bir satırda ihtiyacınız olan satır ya da verilere ulaşabilirsiniz.<br />
</li>
<li>Tüm içerik çeken metodlarında ikinci parametre olarak bindings değerlerini alıyor. Bu sayede yine bir kaç metod daha kısaltıyoruz.<br />
</li>
<li>Sorgulardan dönen tüm içerikler obje tipinde dönmesini sağlıyor. Değerleri daha hızlı yazıp daha temiz görmemizi sağlıyor.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Get</span> metodu ile sorgunun tüm satırlarını arraya yüklenmiş bir şekilde alıyoruz. Elde ettiğimiz sonucu direkt cache yapabilir ya da foreach ile döndürebiliriz.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">getLastError</span> metodu ile daha pratik hata karşılayabiliyoruz.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Insert</span> metodu direkt olarak eklenen satırın ID’sini veriyor.<br />
</li>
<li>Tüm bunların yanında deneysel ve olayları daha iyi kavrama amacıyla dizayn ettiğim bu sınıf sayesinde PDO’ya daha iyi hakim olabiliyorum.<br />
</li>
</ul>
<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">Özetle sınıf</span>; statik, pratik ve singleton. PDO kendi haliyle yeterli bile olsa elinizin altında bu tarzda bir sınıfınızın olması mutlaka işlerinizi daha da kolaylaştıracaktır.</span></span>[h=2]PDO’nun kendisi[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Sınıf PDO’dan extends edilmedi, fakat <span style="font-weight: bold;" class="mycode_b"><a href="http://php.net/manual/en/language.oop5.magic.php" target="_blank" rel="noopener" class="mycode_url">__callStatic</a></span> sihirli metodu sayesinde sınıfa statik olarak yapılan her çağrı direkt olarak PDO’da çalışacak. Yani bu sınıf ile bir önceki yazımda bahsettiğim ve bahsetmediğim tüm PDO metodlarını statik olarak çağırabilirsiniz.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5<br />
6</div>
[/TD]<br />
[TD="class: code"]&#36;posts = DB::query('SELECT * FROM posts');<br />
 <br />
foreach(&#36;posts as &#36;post)<br />
{<br />
    echo &#36;post-&gt;title . '&lt;br/&gt;';<br />
}<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]SQL Injection’a son[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Neredeyse tüm amatör PHP ve MySQL projelerinde SQL injection açığı bulunuyor. Fakat PDO’nun binding özelliği sayesinde sorgu içerisindeki değişken değerler harici olarak dahil ediliyor ve kaçış karakterleri ekleniyor. Bu sayede bu basit açıktan da arınmış oluyoruz. Aşağıdaki sorguyu korkusuzca çalıştırabiliriz.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 585"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1</div>
[/TD]<br />
[TD="class: code"]&#36;post = DB::query('SELECT * FROM posts WHERE id = ?', array(&#36;_GET['id']));<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Bindings (Hazır Deyimler) kullanımı[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Yukarıdaki örnekteki query metodu PDO’nun binding özelliği ile birleştirdiğim bir metoddur. İlk parametresine sorguyu ikinci parametreye ise sorgu içerisinde “?” (soru işareti) ile ifade ettiğimiz yerlere gelecek değerleri vereceğimiz dizidir. Daha geniş bir binding örneği;</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 585"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4</div>
[/TD]<br />
[TD="class: code"]DB::query(<br />
    'SELECT * FROM users WHERE id = ? AND name = ? AND email = ? LIMIT 1',<br />
    array(&#36;id, &#36;name, &#36;email)<br />
);<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Bu yöntemi anlatacağım tüm içerik çekme metotlarında kullanabiliriz.</span></span>[h=2]İçeriklerin obje tipinde dönmesi[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Sınıfta PDO’nun veri çekme metodunu obje olarak belirledim. Yani çektiğimiz sonuçları bize varsayılan array tipinde değil obje olarak döndürecek.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Obje tipi ile yazması daha hızlı ve görüntüsü daha hoş. Örneğin;</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5</div>
[/TD]<br />
[TD="class: code"]// Obje tipi ile<br />
echo &#36;user-&gt;name;<br />
 <br />
// Array tipi ile<br />
echo &#36;user['name'];<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Tek bir değeri çekmek[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Sınıfın asıl esprilerine gelelim. “<span style="font-weight: bold;" class="mycode_b">getVar</span>” metodu ile yazdığınız sorgunun döndüreceği tek değeri alıyoruz. Örneğin sadece bir üyenin adını ya da toplam üye sayısını almak istiyorum.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9</div>
[/TD]<br />
[TD="class: code"]// Bir kullanıcının adı<br />
&#36;name = DB::getVar('SELECT name FROM users WHERE id = 1 LIMIT 1');<br />
 <br />
echo 'Selam ' . &#36;name;<br />
 <br />
// Ya da toplam kullanıcı sayısı<br />
&#36;count = DB::getVar('SELECT COUNT(id) FROM users');<br />
 <br />
echo 'Toplam üye sayımız ' . &#36;count;<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Tek bir satırı çekmek[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">getRow</span> metodu ile yazdığımız sorgunun döndüreceği bir satırı alabiliyoruz. Bir üyenin ya da bir içeriğin değerlerine ulaşmak için ideal.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4</div>
[/TD]<br />
[TD="class: code"]&#36;user = DB::getRow('SELECT * FROM users WHERE id = 1 LIMIT 1');<br />
 <br />
echo 'Merhaba ' . &#36;user-&gt;name . '!';<br />
echo 'E-mail adresin: ' . &#36;user-&gt;email;<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Birden fazla satır çekmek[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Tablodaki içerikleri listelemek için iki farklı yöntem mevcut. Ya varsayılan olarak PDO’nun <span style="font-weight: bold;" class="mycode_b">query</span>metodu ile ya da sınıftaki <span style="font-weight: bold;" class="mycode_b">get</span> metodu ile tüm sonucu arraya çevirip bir değişkene atayabilirsiniz.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5<br />
6</div>
[/TD]<br />
[TD="class: code"]&#36;books = DB::get('SELECT * FROM books ORDER BY price DESC LIMIT 30');<br />
 <br />
foreach(&#36;books as &#36;book)<br />
{<br />
    echo &#36;book-&gt;title . "n";<br />
}<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Yeni bir satır eklemek[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Yukarıda bahsettiğimiz binding yöntemi ve <span style="font-weight: bold;" class="mycode_b">insert</span> metodu ile satır ekleme sorgumuzu hazırlıyoruz. Bu metot sonuç olarak son eklenen ID’yi döndürüyor.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10</div>
[/TD]<br />
[TD="class: code"]&#36;name = 'Bill Gates';<br />
&#36;email = 'bill@microsoft.com';<br />
&#36;password = md5('linux');<br />
 <br />
&#36;id = DB::insert(<br />
    'INSERT INTO users (name, email, password) VALUES (?, ?, ?)',<br />
    array(&#36;name, &#36;email, &#36;password)<br />
);<br />
 <br />
echo 'Yeni eklenen üyemizin ID'si ' . &#36;id;<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Satırları düzenlemek veya silmek[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Yukarıdaki insert metodu ile aynı şekilde çalışan <span style="font-weight: bold;" class="mycode_b">exec</span> metodu ile düzenleme ve silme sorgularımızı çalıştırabiliriz. Tek farkı bu sefer etkilenen satır sayısını alırız.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9</div>
[/TD]<br />
[TD="class: code"]// Düzenlemek<br />
&#36;affected = DB::exec('UPDATE users SET scores = 10 WHERE id &gt; 30');<br />
 <br />
echo &#36;affected . ' adet üye düzenlendi.';<br />
 <br />
// Silmek<br />
&#36;affected = DB::exec('DELETE FROM users WHERE id &lt; 30');<br />
 <br />
echo &#36;affected . ' adet üye silindi.';<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Hataları karşılamak[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Eğer hata kontrolleri de yapmak istiyorsanız <span style="font-weight: bold;" class="mycode_b">getLastError</span> metodunu kullanabilirsiniz. Eğer son yapılan sorguda bir hata meydana geldiyse hata kodu ve mesajını içeren bir array döndürür. Eğer bir sorun çıkmadıysa <span style="font-weight: bold;" class="mycode_b">false</span> döner.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13</div>
[/TD]<br />
[TD="class: code"]&#36;id = DB::insert(<br />
    'INSERT INTO users (name, email) VALUES(?, ?)',<br />
    array('Ahmet', 'ahm@hotmail.com')<br />
);<br />
 <br />
if(&#36;error = DB::getLastError())<br />
{<br />
    echo 'Bir hata oldu, hata mesajı: ' . &#36;error[2];<br />
}<br />
else<br />
{<br />
    echo 'Başarıyla eklendi! Eklenen ID ' . &#36;id;<br />
}<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Sonuç[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Bundan önce anlattığım <a href="https://www.phpr.org/php-veritabani-sinifi/" target="_blank" rel="noopener" class="mycode_url">veritabanı sınıfı</a> artık müfredattan kalkıyor, bu nedenle artık herkese <a href="http://www.php.net/manual/en/book.pdo.php" target="_blank" rel="noopener" class="mycode_url">PDO</a>ve güncel alternatifleri olan <a href="http://www.php.net/manual/en/class.mysqli.php" target="_blank" rel="noopener" class="mycode_url">MySQLi</a> gibi sınıfları öneriyorum. Ayrıca önermekle kalmayıp temel ihtiyaçları rahatlıkla karşılayan ve rahat bir şekilde kullanılabilecek olan bu statik ve singleton yapıya sahip sınıfı sunuyorum.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Sırayla gitmeyi seven birisi olarak (en temel derslerden bu konulara gelmemden anlayacağınız üzere) yine yukarıda belirttiğim gibi bundan sonraki örnek çalışmalarda bu sınıfı kullanarak bir şeyler anlatmaya çalışacağım.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">PDO MySQL veritabanı sınıfının dosyalarını indirmek için <a href="https://www.phpr.org/wp-content/uploads/2013/07/pdo-mysql-veritabani-sinifi.zip" target="_blank" rel="noopener" class="mycode_url">tıklayın</a>.</span></span></span>]]></description>
			<content:encoded><![CDATA[[h=2]Sınıfın özellikleri[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">PDO zaten kendi halinde tüm temel isteklere cevap verecek metodlara sahip. Bu sınıfın metodlarını hazırlarkende bir kaç satır kod kullandığımı görebilirsiniz. Artıları nedir derseniz;</span></span><ul class="mycode_list"><li>Öncelikle her sınıfın sağladığı pratikliği sağlıyor. Herhangi PDO bağlantı terimiyle uğraşmadan dosyaları uygulamanıza ekleyip ayar dosyasındaki sabitlerden veritabanı bilgilerini girip kullanmaya başlayabilirsiniz.<br />
</li>
<li>Sınıf <span style="font-weight: bold;" class="mycode_b">singleton pattern</span> yapısına sahip ve aynı zamanda statik olduğu için uygulamanızın en başında bir değişkene atanma ya da uygulama başlar başlamaz veritabanına bağlanma ihtiyacı duymaz. Örneğin uygulamanızda içerikleri cache ile sakladınığınızda ve yanlızca belirli dakikalarla veritabanından çekmek istediğinizde diğer zamanlarda gereksiz bağlantılar yapmamış olursunuz.<br />
</li>
<li>Bir satır bir satırdır. <span style="font-weight: bold;" class="mycode_b">getVar</span>, <span style="font-weight: bold;" class="mycode_b">getRow</span> gibi metodlar sayesinde tek bir satırda ihtiyacınız olan satır ya da verilere ulaşabilirsiniz.<br />
</li>
<li>Tüm içerik çeken metodlarında ikinci parametre olarak bindings değerlerini alıyor. Bu sayede yine bir kaç metod daha kısaltıyoruz.<br />
</li>
<li>Sorgulardan dönen tüm içerikler obje tipinde dönmesini sağlıyor. Değerleri daha hızlı yazıp daha temiz görmemizi sağlıyor.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Get</span> metodu ile sorgunun tüm satırlarını arraya yüklenmiş bir şekilde alıyoruz. Elde ettiğimiz sonucu direkt cache yapabilir ya da foreach ile döndürebiliriz.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">getLastError</span> metodu ile daha pratik hata karşılayabiliyoruz.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Insert</span> metodu direkt olarak eklenen satırın ID’sini veriyor.<br />
</li>
<li>Tüm bunların yanında deneysel ve olayları daha iyi kavrama amacıyla dizayn ettiğim bu sınıf sayesinde PDO’ya daha iyi hakim olabiliyorum.<br />
</li>
</ul>
<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">Özetle sınıf</span>; statik, pratik ve singleton. PDO kendi haliyle yeterli bile olsa elinizin altında bu tarzda bir sınıfınızın olması mutlaka işlerinizi daha da kolaylaştıracaktır.</span></span>[h=2]PDO’nun kendisi[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Sınıf PDO’dan extends edilmedi, fakat <span style="font-weight: bold;" class="mycode_b"><a href="http://php.net/manual/en/language.oop5.magic.php" target="_blank" rel="noopener" class="mycode_url">__callStatic</a></span> sihirli metodu sayesinde sınıfa statik olarak yapılan her çağrı direkt olarak PDO’da çalışacak. Yani bu sınıf ile bir önceki yazımda bahsettiğim ve bahsetmediğim tüm PDO metodlarını statik olarak çağırabilirsiniz.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5<br />
6</div>
[/TD]<br />
[TD="class: code"]&#36;posts = DB::query('SELECT * FROM posts');<br />
 <br />
foreach(&#36;posts as &#36;post)<br />
{<br />
    echo &#36;post-&gt;title . '&lt;br/&gt;';<br />
}<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]SQL Injection’a son[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Neredeyse tüm amatör PHP ve MySQL projelerinde SQL injection açığı bulunuyor. Fakat PDO’nun binding özelliği sayesinde sorgu içerisindeki değişken değerler harici olarak dahil ediliyor ve kaçış karakterleri ekleniyor. Bu sayede bu basit açıktan da arınmış oluyoruz. Aşağıdaki sorguyu korkusuzca çalıştırabiliriz.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 585"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1</div>
[/TD]<br />
[TD="class: code"]&#36;post = DB::query('SELECT * FROM posts WHERE id = ?', array(&#36;_GET['id']));<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Bindings (Hazır Deyimler) kullanımı[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Yukarıdaki örnekteki query metodu PDO’nun binding özelliği ile birleştirdiğim bir metoddur. İlk parametresine sorguyu ikinci parametreye ise sorgu içerisinde “?” (soru işareti) ile ifade ettiğimiz yerlere gelecek değerleri vereceğimiz dizidir. Daha geniş bir binding örneği;</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 585"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4</div>
[/TD]<br />
[TD="class: code"]DB::query(<br />
    'SELECT * FROM users WHERE id = ? AND name = ? AND email = ? LIMIT 1',<br />
    array(&#36;id, &#36;name, &#36;email)<br />
);<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Bu yöntemi anlatacağım tüm içerik çekme metotlarında kullanabiliriz.</span></span>[h=2]İçeriklerin obje tipinde dönmesi[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Sınıfta PDO’nun veri çekme metodunu obje olarak belirledim. Yani çektiğimiz sonuçları bize varsayılan array tipinde değil obje olarak döndürecek.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Obje tipi ile yazması daha hızlı ve görüntüsü daha hoş. Örneğin;</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5</div>
[/TD]<br />
[TD="class: code"]// Obje tipi ile<br />
echo &#36;user-&gt;name;<br />
 <br />
// Array tipi ile<br />
echo &#36;user['name'];<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Tek bir değeri çekmek[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Sınıfın asıl esprilerine gelelim. “<span style="font-weight: bold;" class="mycode_b">getVar</span>” metodu ile yazdığınız sorgunun döndüreceği tek değeri alıyoruz. Örneğin sadece bir üyenin adını ya da toplam üye sayısını almak istiyorum.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9</div>
[/TD]<br />
[TD="class: code"]// Bir kullanıcının adı<br />
&#36;name = DB::getVar('SELECT name FROM users WHERE id = 1 LIMIT 1');<br />
 <br />
echo 'Selam ' . &#36;name;<br />
 <br />
// Ya da toplam kullanıcı sayısı<br />
&#36;count = DB::getVar('SELECT COUNT(id) FROM users');<br />
 <br />
echo 'Toplam üye sayımız ' . &#36;count;<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Tek bir satırı çekmek[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">getRow</span> metodu ile yazdığımız sorgunun döndüreceği bir satırı alabiliyoruz. Bir üyenin ya da bir içeriğin değerlerine ulaşmak için ideal.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4</div>
[/TD]<br />
[TD="class: code"]&#36;user = DB::getRow('SELECT * FROM users WHERE id = 1 LIMIT 1');<br />
 <br />
echo 'Merhaba ' . &#36;user-&gt;name . '!';<br />
echo 'E-mail adresin: ' . &#36;user-&gt;email;<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Birden fazla satır çekmek[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Tablodaki içerikleri listelemek için iki farklı yöntem mevcut. Ya varsayılan olarak PDO’nun <span style="font-weight: bold;" class="mycode_b">query</span>metodu ile ya da sınıftaki <span style="font-weight: bold;" class="mycode_b">get</span> metodu ile tüm sonucu arraya çevirip bir değişkene atayabilirsiniz.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5<br />
6</div>
[/TD]<br />
[TD="class: code"]&#36;books = DB::get('SELECT * FROM books ORDER BY price DESC LIMIT 30');<br />
 <br />
foreach(&#36;books as &#36;book)<br />
{<br />
    echo &#36;book-&gt;title . "n";<br />
}<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Yeni bir satır eklemek[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Yukarıda bahsettiğimiz binding yöntemi ve <span style="font-weight: bold;" class="mycode_b">insert</span> metodu ile satır ekleme sorgumuzu hazırlıyoruz. Bu metot sonuç olarak son eklenen ID’yi döndürüyor.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10</div>
[/TD]<br />
[TD="class: code"]&#36;name = 'Bill Gates';<br />
&#36;email = 'bill@microsoft.com';<br />
&#36;password = md5('linux');<br />
 <br />
&#36;id = DB::insert(<br />
    'INSERT INTO users (name, email, password) VALUES (?, ?, ?)',<br />
    array(&#36;name, &#36;email, &#36;password)<br />
);<br />
 <br />
echo 'Yeni eklenen üyemizin ID'si ' . &#36;id;<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Satırları düzenlemek veya silmek[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Yukarıdaki insert metodu ile aynı şekilde çalışan <span style="font-weight: bold;" class="mycode_b">exec</span> metodu ile düzenleme ve silme sorgularımızı çalıştırabiliriz. Tek farkı bu sefer etkilenen satır sayısını alırız.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9</div>
[/TD]<br />
[TD="class: code"]// Düzenlemek<br />
&#36;affected = DB::exec('UPDATE users SET scores = 10 WHERE id &gt; 30');<br />
 <br />
echo &#36;affected . ' adet üye düzenlendi.';<br />
 <br />
// Silmek<br />
&#36;affected = DB::exec('DELETE FROM users WHERE id &lt; 30');<br />
 <br />
echo &#36;affected . ' adet üye silindi.';<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Hataları karşılamak[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Eğer hata kontrolleri de yapmak istiyorsanız <span style="font-weight: bold;" class="mycode_b">getLastError</span> metodunu kullanabilirsiniz. Eğer son yapılan sorguda bir hata meydana geldiyse hata kodu ve mesajını içeren bir array döndürür. Eğer bir sorun çıkmadıysa <span style="font-weight: bold;" class="mycode_b">false</span> döner.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">[TABLE="width: 580"]<br />
[TR]<br />
[TD="class: gutter"]<div style="text-align: right;" class="mycode_align">1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13</div>
[/TD]<br />
[TD="class: code"]&#36;id = DB::insert(<br />
    'INSERT INTO users (name, email) VALUES(?, ?)',<br />
    array('Ahmet', 'ahm@hotmail.com')<br />
);<br />
 <br />
if(&#36;error = DB::getLastError())<br />
{<br />
    echo 'Bir hata oldu, hata mesajı: ' . &#36;error[2];<br />
}<br />
else<br />
{<br />
    echo 'Başarıyla eklendi! Eklenen ID ' . &#36;id;<br />
}<br />
<br />
[/TD]<br />
[/TR]<br />
[/TABLE]<br />
<br />
</span></span><br />
[h=2]Sonuç[/h]<span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Bundan önce anlattığım <a href="https://www.phpr.org/php-veritabani-sinifi/" target="_blank" rel="noopener" class="mycode_url">veritabanı sınıfı</a> artık müfredattan kalkıyor, bu nedenle artık herkese <a href="http://www.php.net/manual/en/book.pdo.php" target="_blank" rel="noopener" class="mycode_url">PDO</a>ve güncel alternatifleri olan <a href="http://www.php.net/manual/en/class.mysqli.php" target="_blank" rel="noopener" class="mycode_url">MySQLi</a> gibi sınıfları öneriyorum. Ayrıca önermekle kalmayıp temel ihtiyaçları rahatlıkla karşılayan ve rahat bir şekilde kullanılabilecek olan bu statik ve singleton yapıya sahip sınıfı sunuyorum.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font">Sırayla gitmeyi seven birisi olarak (en temel derslerden bu konulara gelmemden anlayacağınız üzere) yine yukarıda belirttiğim gibi bundan sonraki örnek çalışmalarda bu sınıfı kullanarak bir şeyler anlatmaya çalışacağım.</span></span><span style="color: #404040;" class="mycode_color"><span style="font-family: Ubuntu;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">PDO MySQL veritabanı sınıfının dosyalarını indirmek için <a href="https://www.phpr.org/wp-content/uploads/2013/07/pdo-mysql-veritabani-sinifi.zip" target="_blank" rel="noopener" class="mycode_url">tıklayın</a>.</span></span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Hangi programlama öğrenmeli klavuzu]]></title>
			<link>https://www.donanimteknik.com/hangi-programlama-ogrenmeli-klavuzu-13877</link>
			<pubDate>Tue, 30 Nov 2010 17:30:28 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.donanimteknik.com/member.php?action=profile&uid=40152">asumanorhun</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.donanimteknik.com/hangi-programlama-ogrenmeli-klavuzu-13877</guid>
			<description><![CDATA[Arkadaşlar Merhaba,<br />
<br />
<br />
HANGİ PROGRAMLAMA DİLİNİ SEÇMELİSİNİZ KLAVUZU<br />
Hazırladık.<br />
<br />
Akiza Bilişim Akademisi, yazılım eğitmenleri tarafından hazırlanan dökümanı açıp okuyabilirsiniz.<br />
<br />
İlk defa yada yeni bir programlama dili öğrenecekseniz, programlama dilleri arasından seçim yapmanız gerekebilir.<br />
<br />
Dökümandaki bilgilerle, seçiminizi kolaylaştırabilirsiniz.<br />
<br />
Dökümanı indirmek için linke tıklayın.<br />
<a href="http://akiza.com/kursegitimnotlar/Hangi-Programlama-Dili-Java-Php-C-Python-Net-Egitimi-Kursu.doc.pdf" target="_blank" rel="noopener" class="mycode_url">http://akiza.com/kursegitimnotlar/Hangi-...su.doc.pdf</a><br />
<br />
Teşekkürler,<br />
AKİZA BİLİÞİM AKADEMİSİ]]></description>
			<content:encoded><![CDATA[Arkadaşlar Merhaba,<br />
<br />
<br />
HANGİ PROGRAMLAMA DİLİNİ SEÇMELİSİNİZ KLAVUZU<br />
Hazırladık.<br />
<br />
Akiza Bilişim Akademisi, yazılım eğitmenleri tarafından hazırlanan dökümanı açıp okuyabilirsiniz.<br />
<br />
İlk defa yada yeni bir programlama dili öğrenecekseniz, programlama dilleri arasından seçim yapmanız gerekebilir.<br />
<br />
Dökümandaki bilgilerle, seçiminizi kolaylaştırabilirsiniz.<br />
<br />
Dökümanı indirmek için linke tıklayın.<br />
<a href="http://akiza.com/kursegitimnotlar/Hangi-Programlama-Dili-Java-Php-C-Python-Net-Egitimi-Kursu.doc.pdf" target="_blank" rel="noopener" class="mycode_url">http://akiza.com/kursegitimnotlar/Hangi-...su.doc.pdf</a><br />
<br />
Teşekkürler,<br />
AKİZA BİLİÞİM AKADEMİSİ]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[PHP Tarih Gösterme]]></title>
			<link>https://www.donanimteknik.com/php-tarih-gosterme-12701</link>
			<pubDate>Fri, 30 Oct 2009 22:55:13 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.donanimteknik.com/member.php?action=profile&uid=9538">x3uqm4</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.donanimteknik.com/php-tarih-gosterme-12701</guid>
			<description><![CDATA[<div class="codeblock phpcodeblock"><div class="title">PHP Kod:</div><div class="body"><div dir="ltr"><code><span style="color: #007700">&lt;</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;&lt;</span><span style="color: #0000BB">font&nbsp;color</span><span style="color: #007700">=</span><span style="color: #DD0000">"#000000"&nbsp;</span><span style="color: #0000BB">size</span><span style="color: #007700">=</span><span style="color: #DD0000">"1"&nbsp;</span><span style="color: #0000BB">face</span><span style="color: #007700">=</span><span style="color: #DD0000">"Verdana,&nbsp;Arial,&nbsp;Helvetica,&nbsp;sans-serif"</span><span style="color: #007700">&gt;&nbsp;<br />&nbsp;&nbsp;&lt;?</span><span style="color: #0000BB">php<br />&#36;gunler&nbsp;</span><span style="color: #007700">=&nbsp;array(<br /></span><span style="color: #0000BB">0</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Pazar"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB">1</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Pazartesi"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB">2</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Salı"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB">3</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Çarşamba"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB">4</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Perşembe"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB">5</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Cuma"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB">6</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Cumartesi"<br /></span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#36;tarih&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">getdate</span><span style="color: #007700">();<br />echo&nbsp;</span><span style="color: #DD0000">""</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;gunler</span><span style="color: #007700">[</span><span style="color: #0000BB">&#36;tarih</span><span style="color: #007700">[`</span><span style="color: #DD0000">wday</span><span style="color: #007700">`]].&nbsp;</span><span style="color: #DD0000">"&lt;/b&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;<br /></span>&nbsp;&nbsp;,&nbsp;<br />&nbsp;&nbsp;<span style="color: #0000BB">&lt;?php<br />&#36;zaman&nbsp;</span><span style="color: #007700">=&nbsp;array();<br /></span><span style="color: #0000BB">&#36;zaman</span><span style="color: #007700">[</span><span style="color: #0000BB">gun</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">date&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">d</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#36;zaman</span><span style="color: #007700">[</span><span style="color: #0000BB">ay</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">date&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">m</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#36;zaman</span><span style="color: #007700">[</span><span style="color: #0000BB">yil</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">date&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">y</span><span style="color: #007700">);<br /><br />&nbsp;{<br />echo&nbsp;</span><span style="color: #0000BB">date&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">"d.m.y"</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">?&gt;<br /></span>&nbsp;&nbsp;&lt;/font&gt;&nbsp;&lt;font&nbsp;color="#000000"&nbsp;size="1"&nbsp;face="Verdana,&nbsp;Arial,&nbsp;Helvetica,&nbsp;sans-serif"&gt;&nbsp;<br />&nbsp;&nbsp;&lt;/font&gt;&lt;font&nbsp;color="#000000"&nbsp;size="2"&nbsp;face="Arial,&nbsp;Helvetica,&nbsp;sans-serif"&gt;&nbsp;&lt;/font&gt;&lt;/p&gt;&nbsp;<br /></code></div></div></div>]]></description>
			<content:encoded><![CDATA[<div class="codeblock phpcodeblock"><div class="title">PHP Kod:</div><div class="body"><div dir="ltr"><code><span style="color: #007700">&lt;</span><span style="color: #0000BB">p</span><span style="color: #007700">&gt;&lt;</span><span style="color: #0000BB">font&nbsp;color</span><span style="color: #007700">=</span><span style="color: #DD0000">"#000000"&nbsp;</span><span style="color: #0000BB">size</span><span style="color: #007700">=</span><span style="color: #DD0000">"1"&nbsp;</span><span style="color: #0000BB">face</span><span style="color: #007700">=</span><span style="color: #DD0000">"Verdana,&nbsp;Arial,&nbsp;Helvetica,&nbsp;sans-serif"</span><span style="color: #007700">&gt;&nbsp;<br />&nbsp;&nbsp;&lt;?</span><span style="color: #0000BB">php<br />&#36;gunler&nbsp;</span><span style="color: #007700">=&nbsp;array(<br /></span><span style="color: #0000BB">0</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Pazar"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB">1</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Pazartesi"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB">2</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Salı"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB">3</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Çarşamba"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB">4</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Perşembe"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB">5</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Cuma"</span><span style="color: #007700">,<br /></span><span style="color: #0000BB">6</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"Cumartesi"<br /></span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#36;tarih&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">getdate</span><span style="color: #007700">();<br />echo&nbsp;</span><span style="color: #DD0000">""</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;gunler</span><span style="color: #007700">[</span><span style="color: #0000BB">&#36;tarih</span><span style="color: #007700">[`</span><span style="color: #DD0000">wday</span><span style="color: #007700">`]].&nbsp;</span><span style="color: #DD0000">"&lt;/b&gt;"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;<br /></span>&nbsp;&nbsp;,&nbsp;<br />&nbsp;&nbsp;<span style="color: #0000BB">&lt;?php<br />&#36;zaman&nbsp;</span><span style="color: #007700">=&nbsp;array();<br /></span><span style="color: #0000BB">&#36;zaman</span><span style="color: #007700">[</span><span style="color: #0000BB">gun</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">date&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">d</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#36;zaman</span><span style="color: #007700">[</span><span style="color: #0000BB">ay</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">date&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">m</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#36;zaman</span><span style="color: #007700">[</span><span style="color: #0000BB">yil</span><span style="color: #007700">]&nbsp;=&nbsp;</span><span style="color: #0000BB">date&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">y</span><span style="color: #007700">);<br /><br />&nbsp;{<br />echo&nbsp;</span><span style="color: #0000BB">date&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">"d.m.y"</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">?&gt;<br /></span>&nbsp;&nbsp;&lt;/font&gt;&nbsp;&lt;font&nbsp;color="#000000"&nbsp;size="1"&nbsp;face="Verdana,&nbsp;Arial,&nbsp;Helvetica,&nbsp;sans-serif"&gt;&nbsp;<br />&nbsp;&nbsp;&lt;/font&gt;&lt;font&nbsp;color="#000000"&nbsp;size="2"&nbsp;face="Arial,&nbsp;Helvetica,&nbsp;sans-serif"&gt;&nbsp;&lt;/font&gt;&lt;/p&gt;&nbsp;<br /></code></div></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[PHP Aktif Kullanıcı Sayısı]]></title>
			<link>https://www.donanimteknik.com/php-aktif-kullanici-sayisi-12700</link>
			<pubDate>Fri, 30 Oct 2009 22:54:30 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.donanimteknik.com/member.php?action=profile&uid=9538">x3uqm4</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.donanimteknik.com/php-aktif-kullanici-sayisi-12700</guid>
			<description><![CDATA[&lt;font face="Tahoma" size="2" color="#FFFFFF"&gt;Sitemizde <br />
&lt;?php <br />
if(&#36;users=="0"){ die("1 user online"); }<br />
&#36;log_file="online.txt";<br />
&#36;min_online="1";<br />
if (&#36;HTTP_X_FORWARDED_FOR == "") {<br />
&#36;ip = getenv(REMOTE_ADDR);<br />
}<br />
else {<br />
&#36;ip = getenv(HTTP_X_FORWARDED_FOR);<br />
}<br />
&#36;day =date("d");<br />
&#36;month =date("m");<br />
&#36;year =date("Y");<br />
&#36;date="&#36;day-&#36;month-&#36;year";<br />
&#36;ora = date("H");<br />
&#36;minuti = date("i");<br />
&#36;secondi = date("s");<br />
&#36;time="&#36;ora:&#36;minuti:&#36;secondi";<br />
&#36;users_read = fopen("&#36;log_file", "r");<br />
&#36;users = fread(&#36;users_read, filesize("&#36;log_file"));<br />
fclose(&#36;users_read);<br />
&#36;to_write="&#36;ip|&#36;time|&#36;date";<br />
if(&#36;users==0){<br />
&#36;user_write = fopen("&#36;log_file", "w");<br />
fputs(&#36;user_write , &#36;to_write );<br />
fclose(&#36;user_write );<br />
}<br />
else{<br />
&#36;users=explode("<br />
",&#36;users);<br />
&#36;user_da_tenere=array();<br />
while (list (&#36;key, &#36;val) = each (&#36;users)) {<br />
&#36;user_sing=explode("|",&#36;val);<br />
if(&#36;date==&#36;user_sing[2]){<br />
&#36;h=explode(":",&#36;user_sing[1]);<br />
if(&#36;ip!=&#36;user_sing[0]){<br />
if((&#36;h[0]==&#36;ora)and((&#36;minuti-&#36;h[1])&lt;=&#36;min_online)){<br />
&#36;user_da_tenere[]=&#36;val;}<br />
if((&#36;h[0]==(&#36;ora-1))and(((&#36;minuti+2)-&#36;h[1])&lt;=&#36;min_online)){<br />
&#36;user_da_tenere[]=&#36;val;<br />
}<br />
}<br />
}<br />
}<br />
&#36;user_da_tenere[]=&#36;to_write;<br />
&#36;user_write = fopen("&#36;log_file", "w");<br />
fputs(&#36;user_write , "" );<br />
fclose(&#36;user_write );<br />
while (list (&#36;k, &#36;v) = each (&#36;user_da_tenere)) {<br />
&#36;new_file_log = fopen ("&#36;log_file", "a");<br />
fwrite(&#36;new_file_log,"&#36;v<br />
");<br />
fclose(&#36;new_file_log);<br />
}<br />
}<br />
&#36;users_online_read = fopen("&#36;log_file", "r");<br />
&#36;users_online = fread(&#36;users_online_read, filesize("&#36;log_file"));<br />
fclose(&#36;users_online_read);<br />
&#36;users_online=explode("<br />
",&#36;users_online);<br />
&#36;n_u_online=count(&#36;users_online)-1;<br />
echo "&#36;n_u_online";<br />
<br />
<br />
// Copyright Danny 2005<br />
// File that hit counts will be added to.<br />
&#36;file = "logger.txt"; <br />
<br />
// To open the above file again for counting.<br />
&#36;data = file("logger.txt");<br />
<br />
// Opens file and Counts the number of Hits<br />
&#36;total = count(&#36;data);<br />
<br />
// Opens file to add the hits<br />
&#36;fp = fopen("&#36;file", "a");<br />
<br />
// Adds the Hit<br />
fputs(&#36;fp, "1 Hit<br />
");<br />
flock(&#36;fp, 3); <br />
<br />
// Closes File<br />
fclose(&#36;fp);<br />
<br />
// Shows the Hits<br />
print(" kişi online, toplam &#36;total");<br />
<br />
?&gt; <br />
ziyaretçi&lt;/font&gt;]]></description>
			<content:encoded><![CDATA[&lt;font face="Tahoma" size="2" color="#FFFFFF"&gt;Sitemizde <br />
&lt;?php <br />
if(&#36;users=="0"){ die("1 user online"); }<br />
&#36;log_file="online.txt";<br />
&#36;min_online="1";<br />
if (&#36;HTTP_X_FORWARDED_FOR == "") {<br />
&#36;ip = getenv(REMOTE_ADDR);<br />
}<br />
else {<br />
&#36;ip = getenv(HTTP_X_FORWARDED_FOR);<br />
}<br />
&#36;day =date("d");<br />
&#36;month =date("m");<br />
&#36;year =date("Y");<br />
&#36;date="&#36;day-&#36;month-&#36;year";<br />
&#36;ora = date("H");<br />
&#36;minuti = date("i");<br />
&#36;secondi = date("s");<br />
&#36;time="&#36;ora:&#36;minuti:&#36;secondi";<br />
&#36;users_read = fopen("&#36;log_file", "r");<br />
&#36;users = fread(&#36;users_read, filesize("&#36;log_file"));<br />
fclose(&#36;users_read);<br />
&#36;to_write="&#36;ip|&#36;time|&#36;date";<br />
if(&#36;users==0){<br />
&#36;user_write = fopen("&#36;log_file", "w");<br />
fputs(&#36;user_write , &#36;to_write );<br />
fclose(&#36;user_write );<br />
}<br />
else{<br />
&#36;users=explode("<br />
",&#36;users);<br />
&#36;user_da_tenere=array();<br />
while (list (&#36;key, &#36;val) = each (&#36;users)) {<br />
&#36;user_sing=explode("|",&#36;val);<br />
if(&#36;date==&#36;user_sing[2]){<br />
&#36;h=explode(":",&#36;user_sing[1]);<br />
if(&#36;ip!=&#36;user_sing[0]){<br />
if((&#36;h[0]==&#36;ora)and((&#36;minuti-&#36;h[1])&lt;=&#36;min_online)){<br />
&#36;user_da_tenere[]=&#36;val;}<br />
if((&#36;h[0]==(&#36;ora-1))and(((&#36;minuti+2)-&#36;h[1])&lt;=&#36;min_online)){<br />
&#36;user_da_tenere[]=&#36;val;<br />
}<br />
}<br />
}<br />
}<br />
&#36;user_da_tenere[]=&#36;to_write;<br />
&#36;user_write = fopen("&#36;log_file", "w");<br />
fputs(&#36;user_write , "" );<br />
fclose(&#36;user_write );<br />
while (list (&#36;k, &#36;v) = each (&#36;user_da_tenere)) {<br />
&#36;new_file_log = fopen ("&#36;log_file", "a");<br />
fwrite(&#36;new_file_log,"&#36;v<br />
");<br />
fclose(&#36;new_file_log);<br />
}<br />
}<br />
&#36;users_online_read = fopen("&#36;log_file", "r");<br />
&#36;users_online = fread(&#36;users_online_read, filesize("&#36;log_file"));<br />
fclose(&#36;users_online_read);<br />
&#36;users_online=explode("<br />
",&#36;users_online);<br />
&#36;n_u_online=count(&#36;users_online)-1;<br />
echo "&#36;n_u_online";<br />
<br />
<br />
// Copyright Danny 2005<br />
// File that hit counts will be added to.<br />
&#36;file = "logger.txt"; <br />
<br />
// To open the above file again for counting.<br />
&#36;data = file("logger.txt");<br />
<br />
// Opens file and Counts the number of Hits<br />
&#36;total = count(&#36;data);<br />
<br />
// Opens file to add the hits<br />
&#36;fp = fopen("&#36;file", "a");<br />
<br />
// Adds the Hit<br />
fputs(&#36;fp, "1 Hit<br />
");<br />
flock(&#36;fp, 3); <br />
<br />
// Closes File<br />
fclose(&#36;fp);<br />
<br />
// Shows the Hits<br />
print(" kişi online, toplam &#36;total");<br />
<br />
?&gt; <br />
ziyaretçi&lt;/font&gt;]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[PHP Mysql Bağlantı kurma]]></title>
			<link>https://www.donanimteknik.com/php-mysql-baglanti-kurma-12699</link>
			<pubDate>Fri, 30 Oct 2009 22:53:54 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.donanimteknik.com/member.php?action=profile&uid=9538">x3uqm4</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.donanimteknik.com/php-mysql-baglanti-kurma-12699</guid>
			<description><![CDATA[&lt;?php<br />
&#36;sqlsunucu="SUNUCUADI,2875"; // sunucu adı ve portu<br />
&#36;sqlkullanici="KULLANICIADI"; // kullanıcı id<br />
&#36;sqlparola="PAROLA"; // parola<br />
&#36;sqlvt="VTADI"; // Veritabanı adı<br />
&#36;msbaglanti=@mssql_connect("&#36;sqlsunucu","&#36;sqlkullanici","&#36;sqlparola") ;<br />
&#36;msvt=mssql_select_db("&#36;sqlvt",&#36;msbaglanti);<br />
&#36;mssorgu ="select * from TABLOADI where ID =`&#36;birdeger`";<br />
&#36;mssonuc= mssql_query(&#36;mssorgu);<br />
if  (mssql_num_rows(&#36;mssonuc) == 0){ echo "Kayıt bulunamadı"; exit;}<br />
while (&#36;array = mssql_fetch_assoc(&#36;mssonuc)){ <br />
&#36;id= &#36;array["ID"];<br />
&#36;deger2= &#36;array["deger2"];<br />
&#36;deger3= &#36;array["deger3"];<br />
&#36;deger4= &#36;array["deger4"];<br />
&#36;deger5= &#36;array["deger5"];<br />
...<br />
<br />
Eğer döngü yaratılacaksa, parantezin içine html kodlarını yerleştirin. Başlı vs. ise while`ın üstüne atın...<br />
<br />
}<br />
?&gt;]]></description>
			<content:encoded><![CDATA[&lt;?php<br />
&#36;sqlsunucu="SUNUCUADI,2875"; // sunucu adı ve portu<br />
&#36;sqlkullanici="KULLANICIADI"; // kullanıcı id<br />
&#36;sqlparola="PAROLA"; // parola<br />
&#36;sqlvt="VTADI"; // Veritabanı adı<br />
&#36;msbaglanti=@mssql_connect("&#36;sqlsunucu","&#36;sqlkullanici","&#36;sqlparola") ;<br />
&#36;msvt=mssql_select_db("&#36;sqlvt",&#36;msbaglanti);<br />
&#36;mssorgu ="select * from TABLOADI where ID =`&#36;birdeger`";<br />
&#36;mssonuc= mssql_query(&#36;mssorgu);<br />
if  (mssql_num_rows(&#36;mssonuc) == 0){ echo "Kayıt bulunamadı"; exit;}<br />
while (&#36;array = mssql_fetch_assoc(&#36;mssonuc)){ <br />
&#36;id= &#36;array["ID"];<br />
&#36;deger2= &#36;array["deger2"];<br />
&#36;deger3= &#36;array["deger3"];<br />
&#36;deger4= &#36;array["deger4"];<br />
&#36;deger5= &#36;array["deger5"];<br />
...<br />
<br />
Eğer döngü yaratılacaksa, parantezin içine html kodlarını yerleştirin. Başlı vs. ise while`ın üstüne atın...<br />
<br />
}<br />
?&gt;]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Php döviz kuru fonksiyonu]]></title>
			<link>https://www.donanimteknik.com/php-doviz-kuru-fonksiyonu-11762</link>
			<pubDate>Wed, 20 May 2009 05:10:38 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.donanimteknik.com/member.php?action=profile&uid=1">KC</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.donanimteknik.com/php-doviz-kuru-fonksiyonu-11762</guid>
			<description><![CDATA[Döviz kurları veren php kodu. (Dolar ve Euro Alış, Satış TL tutarını verir.) Tarafımdan test edilmiştir çalışmaktadır. (20/05/09)<br />
<br />
<div class="codeblock phpcodeblock"><div class="title">PHP Kod:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">//bu&nbsp;kod&nbsp;www.donanimmerkezi.com&nbsp;adresinden&nbsp;indirilmiştir<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">kur</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;text</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB">&#36;ara</span><span style="color: #007700">=array(</span><span style="color: #DD0000">"&lt;ALIS&gt;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"&lt;/ALIS&gt;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"&lt;SATIS&gt;"</span><span style="color: #007700">,</span><span style="color: #DD0000">"&lt;/SATIS&gt;"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#36;degis</span><span style="color: #007700">=array(</span><span style="color: #DD0000">""</span><span style="color: #007700">,</span><span style="color: #DD0000">""</span><span style="color: #007700">,</span><span style="color: #DD0000">""</span><span style="color: #007700">,</span><span style="color: #DD0000">""</span><span style="color: #007700">);<br />return&nbsp;</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;ara</span><span style="color: #007700">,</span><span style="color: #0000BB">&#36;degis</span><span style="color: #007700">,</span><span style="color: #0000BB">&#36;text</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">&#36;kaynak&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"http://xml.altinkaynak.com/doviz.xml"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">&#36;dizi</span><span style="color: #007700">=</span><span style="color: #0000BB">file</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;kaynak</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#36;dolaral</span><span style="color: #007700">=</span><span style="color: #0000BB">kur</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;dizi</span><span style="color: #007700">[</span><span style="color: #0000BB">10</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">&#36;dolarsat</span><span style="color: #007700">=</span><span style="color: #0000BB">kur</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;dizi</span><span style="color: #007700">[</span><span style="color: #0000BB">11</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">&#36;euroal</span><span style="color: #007700">=</span><span style="color: #0000BB">kur</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;dizi</span><span style="color: #007700">[</span><span style="color: #0000BB">15</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">&#36;eurosat</span><span style="color: #007700">=</span><span style="color: #0000BB">kur</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;dizi</span><span style="color: #007700">[</span><span style="color: #0000BB">16</span><span style="color: #007700">]);<br />echo&nbsp;</span><span style="color: #0000BB">&#36;dolaral</span><span style="color: #007700">;<br />echo&nbsp;</span><span style="color: #0000BB">&#36;dolarsat</span><span style="color: #007700">;<br />echo&nbsp;</span><span style="color: #0000BB">&#36;euroal</span><span style="color: #007700">;<br />echo&nbsp;</span><span style="color: #0000BB">&#36;eurosat</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></code></div></div></div>]]></description>
			<content:encoded><![CDATA[Döviz kurları veren php kodu. (Dolar ve Euro Alış, Satış TL tutarını verir.) Tarafımdan test edilmiştir çalışmaktadır. (20/05/09)<br />
<br />
<div class="codeblock phpcodeblock"><div class="title">PHP Kod:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">//bu&nbsp;kod&nbsp;www.donanimmerkezi.com&nbsp;adresinden&nbsp;indirilmiştir<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">kur</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;text</span><span style="color: #007700">)&nbsp;{<br /></span><span style="color: #0000BB">&#36;ara</span><span style="color: #007700">=array(</span><span style="color: #DD0000">"&lt;ALIS&gt;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"&lt;/ALIS&gt;"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"&lt;SATIS&gt;"</span><span style="color: #007700">,</span><span style="color: #DD0000">"&lt;/SATIS&gt;"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#36;degis</span><span style="color: #007700">=array(</span><span style="color: #DD0000">""</span><span style="color: #007700">,</span><span style="color: #DD0000">""</span><span style="color: #007700">,</span><span style="color: #DD0000">""</span><span style="color: #007700">,</span><span style="color: #DD0000">""</span><span style="color: #007700">);<br />return&nbsp;</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;ara</span><span style="color: #007700">,</span><span style="color: #0000BB">&#36;degis</span><span style="color: #007700">,</span><span style="color: #0000BB">&#36;text</span><span style="color: #007700">);<br />}<br /></span><span style="color: #0000BB">&#36;kaynak&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"http://xml.altinkaynak.com/doviz.xml"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">&#36;dizi</span><span style="color: #007700">=</span><span style="color: #0000BB">file</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;kaynak</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#36;dolaral</span><span style="color: #007700">=</span><span style="color: #0000BB">kur</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;dizi</span><span style="color: #007700">[</span><span style="color: #0000BB">10</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">&#36;dolarsat</span><span style="color: #007700">=</span><span style="color: #0000BB">kur</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;dizi</span><span style="color: #007700">[</span><span style="color: #0000BB">11</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">&#36;euroal</span><span style="color: #007700">=</span><span style="color: #0000BB">kur</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;dizi</span><span style="color: #007700">[</span><span style="color: #0000BB">15</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">&#36;eurosat</span><span style="color: #007700">=</span><span style="color: #0000BB">kur</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;dizi</span><span style="color: #007700">[</span><span style="color: #0000BB">16</span><span style="color: #007700">]);<br />echo&nbsp;</span><span style="color: #0000BB">&#36;dolaral</span><span style="color: #007700">;<br />echo&nbsp;</span><span style="color: #0000BB">&#36;dolarsat</span><span style="color: #007700">;<br />echo&nbsp;</span><span style="color: #0000BB">&#36;euroal</span><span style="color: #007700">;<br />echo&nbsp;</span><span style="color: #0000BB">&#36;eurosat</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></code></div></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[kgCaptcha PHP Class v1.0 - Güvenlik Kodu]]></title>
			<link>https://www.donanimteknik.com/kgcaptcha-php-class-v1-0-guvenlik-kodu-11761</link>
			<pubDate>Wed, 20 May 2009 05:02:27 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.donanimteknik.com/member.php?action=profile&uid=1">KC</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.donanimteknik.com/kgcaptcha-php-class-v1-0-guvenlik-kodu-11761</guid>
			<description><![CDATA[<img src="http://image.donanimmerkezi.com/2009/images/dogrulamak.png" loading="lazy"  alt="[Resim: dogrulamak.png]" class="mycode_img" /><br />
<br />
kgCaptcha PHP Class v1.0 bir güvenlik kodu oluşturma çalışmasıdır. Yani formda ek bir textbox oluşturur bu alana resimde görülen kodu yazmanızı zorunlu kılar. Resimdeki yazı php ile rand komutu ile oluşturularak grafik ortamda gösterilir. Uygulamada farklı font ve arkaplan seçimini kolayca yapabilmektesiniz. <br />
<br />
Tarafımdan denenmiştir. Sorunsuz çalışmaktadır. Ekte gerekli kodlar ve kullanımını görebileceğiniz test.php yer almaktadır.<br />
<br />
<br />
<div class="codeblock phpcodeblock"><div class="title">PHP Kod:</div><div class="body"><div dir="ltr"><code><span style="color: #007700">&lt;</span><span style="color: #0000BB">img&nbsp;src</span><span style="color: #007700">=</span><span style="color: #DD0000">"captcha_image.php"</span><span style="color: #007700">&gt;&nbsp;<br /></span></code></div></div></div><br />
<br />
<a href="http://www.donanimmerkezi.com/depo/kgCaptcha_v1.0.zip" target="_blank" rel="noopener" class="mycode_url">kgCaptcha PHP Class v1.0 indir</a>]]></description>
			<content:encoded><![CDATA[<img src="http://image.donanimmerkezi.com/2009/images/dogrulamak.png" loading="lazy"  alt="[Resim: dogrulamak.png]" class="mycode_img" /><br />
<br />
kgCaptcha PHP Class v1.0 bir güvenlik kodu oluşturma çalışmasıdır. Yani formda ek bir textbox oluşturur bu alana resimde görülen kodu yazmanızı zorunlu kılar. Resimdeki yazı php ile rand komutu ile oluşturularak grafik ortamda gösterilir. Uygulamada farklı font ve arkaplan seçimini kolayca yapabilmektesiniz. <br />
<br />
Tarafımdan denenmiştir. Sorunsuz çalışmaktadır. Ekte gerekli kodlar ve kullanımını görebileceğiniz test.php yer almaktadır.<br />
<br />
<br />
<div class="codeblock phpcodeblock"><div class="title">PHP Kod:</div><div class="body"><div dir="ltr"><code><span style="color: #007700">&lt;</span><span style="color: #0000BB">img&nbsp;src</span><span style="color: #007700">=</span><span style="color: #DD0000">"captcha_image.php"</span><span style="color: #007700">&gt;&nbsp;<br /></span></code></div></div></div><br />
<br />
<a href="http://www.donanimmerkezi.com/depo/kgCaptcha_v1.0.zip" target="_blank" rel="noopener" class="mycode_url">kgCaptcha PHP Class v1.0 indir</a>]]></content:encoded>
		</item>
	</channel>
</rss>