<?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>Muhittin Özer &#187; PHP &amp; MySQL - Muhittin Özer - Kişisel Karalama Bölgem</title>
	<atom:link href="http://www.muhittinozer.com/tag/php-mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.muhittinozer.com</link>
	<description>Kişisel Karalama Bölgem</description>
	<lastBuildDate>Sat, 04 Feb 2012 08:25:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>EzSQL Veritabanı sınıfında güncelleme hatası</title>
		<link>http://www.muhittinozer.com/2010/03/03/ezsql-veritabani-sinifinda-guncelleme-hatasi/</link>
		<comments>http://www.muhittinozer.com/2010/03/03/ezsql-veritabani-sinifinda-guncelleme-hatasi/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 17:41:58 +0000</pubDate>
		<dc:creator>Muhittin Özer</dc:creator>
				<category><![CDATA[Kendime Not]]></category>
		<category><![CDATA[PHP & MySQL]]></category>
		<category><![CDATA[ezSQL]]></category>
		<category><![CDATA[PHP Classes]]></category>

		<guid isPermaLink="false">http://www.muhittinozer.com/?p=206</guid>
		<description><![CDATA[Eminim PHP için ezSQL veritabanı sınıfını kullananların çok kez başına gelen bir durumdur. &#8220;UPDATE&#8221; sorgusu yaptığınızda eğer mevcut verilerde bir değişiklik yapılmamış ve yine aynı veriler UPDATE edilmişse $db-&#62;query() fonksiyonu false olarak dönmektedir ve güncelleme işlemi hata vermektedir. Bunun sebebi ezSQL sınıfında $db-&#62;query() fonksiyonunun sorgudan etkilenen satır sayısını geri döndürmesidir. Eğer böyle bir durumda hata [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-207" title="306-thumb" src="http://www.muhittinozer.com/wp-content/306-thumb.png" alt="" width="160" height="160" />Eminim PHP için <a href="http://www.woyano.com/jv/ezsql" target="_blank">ezSQL</a> veritabanı sınıfını kullananların çok kez başına gelen bir durumdur.<span id="more-206"></span> <strong>&#8220;UPDATE&#8221;</strong> sorgusu yaptığınızda eğer mevcut verilerde bir değişiklik yapılmamış ve yine aynı veriler <em>UPDATE</em> edilmişse <strong>$db-&gt;query()</strong> fonksiyonu <em><strong>false</strong></em> olarak dönmektedir ve güncelleme işlemi hata vermektedir.</p>
<p>Bunun sebebi ezSQL sınıfında <em><strong>$db-&gt;query()</strong></em> fonksiyonunun sorgudan etkilenen satır sayısını geri döndürmesidir. Eğer böyle bir durumda hata almak istemiyorsanız <strong>ez_sql_mysql.php</strong> dosyasında 221. satırda aşağıdaki değişikliği yapmanız yeterlidir.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Return number fo rows affected</span>
<span style="color: #000088;">$return_val</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">rows_affected</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//eklenecek kodlar:</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">preg_match</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/^(update)\s+/i&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$return_val</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
		<span style="color: #000088;">$return_val</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>ezSQL veritabanı sınıfı ve kullanımı hakkında daha detaylı bilgiye <a href="http://www.yakuter.com" target="_blank">yakuter</a>&#8216;in hazırladığı <a href="http://www.yakuter.com/ezsql-veritabani-sinifinin-kullanimi/" target="_blank">ezSQL veritabanı sınıfının kullanımı</a> makalesinden ulaşabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muhittinozer.com/2010/03/03/ezsql-veritabani-sinifinda-guncelleme-hatasi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Class&#8217;ları mı arıyorsunuz?</title>
		<link>http://www.muhittinozer.com/2009/01/21/php-classlari-mi-ariyorsunuz/</link>
		<comments>http://www.muhittinozer.com/2009/01/21/php-classlari-mi-ariyorsunuz/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 22:11:42 +0000</pubDate>
		<dc:creator>Muhittin Özer</dc:creator>
				<category><![CDATA[PHP & MySQL]]></category>
		<category><![CDATA[kaynaklar]]></category>
		<category><![CDATA[PHP Classes]]></category>

		<guid isPermaLink="false">http://www.muhittinozer.com/?p=115</guid>
		<description><![CDATA[Hemen hemen 3-4 senedir PHP ile içli dışlıyım ancak nasıl oldu böyle bir kaynağı henüz 1.5 ay önce keşfettim hiç bilemiyorum. Arayabileceğiniz her konuda yazılmış PHP Class (sınıf)&#8217;larını bulabileceğiniz bir site olduğunu biliyor muydunuz siz de? Bilenler hemen tahmin etmiştir tabi ki çünkü bu site abartısız PHP geliştiricileri için bir memba. Çok mu reklam yaptım [...]]]></description>
			<content:encoded><![CDATA[<p>Hemen hemen 3-4 senedir PHP ile içli dışlıyım ancak nasıl oldu böyle bir kaynağı henüz 1.5 ay önce keşfettim hiç bilemiyorum. Arayabileceğiniz her konuda yazılmış PHP Class (sınıf)&#8217;larını bulabileceğiniz bir site olduğunu biliyor muydunuz siz de?</p>
<p>Bilenler hemen tahmin etmiştir tabi ki çünkü bu site abartısız PHP geliştiricileri için bir memba. Çok mu reklam yaptım <img src='http://www.muhittinozer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Girdiğinizde siz de hak vereceksiniz eminim ki..</p>
<p>Bahsettiğim site <strong><a href="http://www.phpclasses.org/" target="_blank">PHP Classes</a></strong>..</p>
<p>Sizin de aradığınız classlar varsa burdan anında bulabilirsiniz <img src='http://www.muhittinozer.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.muhittinozer.com/2009/01/21/php-classlari-mi-ariyorsunuz/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP ve MySQL’de sık yaşanan Türkçe karakter problemleri</title>
		<link>http://www.muhittinozer.com/2008/07/21/php-ve-mysql%e2%80%99de-sik-yasanan-turkce-karakter-problemleri/</link>
		<comments>http://www.muhittinozer.com/2008/07/21/php-ve-mysql%e2%80%99de-sik-yasanan-turkce-karakter-problemleri/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 19:58:35 +0000</pubDate>
		<dc:creator>Muhittin Özer</dc:creator>
				<category><![CDATA[PHP & MySQL]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[türkçe karakter]]></category>
		<category><![CDATA[utf-8]]></category>

		<guid isPermaLink="false">http://www.muhittinozer.com/?p=92</guid>
		<description><![CDATA[Benim de önceleri sıkça yaşadığım ama sonunda kesin sonuca ulaştığım ve web tasarımla ilgilenen daha doğrusu ilgilenmeye başlayan birçok arkadaşın da sıkca yaşadığı bir problemin kesin ve net çözümünden bahsetmek istiyorum.. Evet problemimiz PHP ve MySQL ile işlem yapan sistemlerde yaşadığımız karakter sorunumuz. Herşeyden önce ben tüm sistemlerinizde evrensel karakter seti olan UTF-8 kodlamasını tavsiye [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Benim de önceleri sıkça yaşadığım ama sonunda kesin sonuca ulaştığım ve web tasarımla ilgilenen daha doğrusu ilgilenmeye başlayan birçok arkadaşın da sıkca yaşadığı bir problemin kesin ve net çözümünden bahsetmek istiyorum.. Evet problemimiz PHP ve MySQL ile işlem yapan sistemlerde yaşadığımız karakter sorunumuz. Herşeyden önce ben tüm sistemlerinizde evrensel karakter seti olan UTF-8 kodlamasını tavsiye ediyorum. Ve yapacağım tüm işlemleri UTF-8 üzerine anlatacağım.</p>
<p><span id="more-92"></span></p>
<p style="text-align: left;">İsterseniz konumuz olmasa da öncelikle UTF-8 nedir, ne değildir bundan bahsedelim. UTF-8, 8 bitlik bir karakter kodlamasıdır kısaca ve Unicode Transformation Format teriminin kısaltmasıdır. Evrensel bir kodlama formatıdır ve tüm dillerdeki karakterleri kapsar. Bu nedenle UTF-8 kodlamasını kullanmakla evrensel standartlarda bir karakter kodlaması kullanmış oluruz. Unutmayın ki Google da UTF-8 karakter kodlamasını öneriyor. ( SEO&#8217;culara duyurulur <img src="/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" /> )</p>
<p style="text-align: left;">Evet şimdi de &#8220;Bu karakter kodlamalarını sistemimize nasıl tanıtacağız ki yazdığımız scriptler ve sistemlerde karakter sorunu yaşamayalım?&#8221; sorusunun cevabına geçelim yavaş yavaş <img src="/wp-includes/images/smilies/icon_smile.gif" alt=":)" /></p>
<p style="text-align: left;">Herşeyden önce yapmanız gereken kodlarınızı UTF-8 karakter setinde kodlama yapan bir derleyicide yazmak olmalı. Ve karakter kodlamasını <strong>BOM olmadan</strong> seçeneğiyle yazmak. Bu konuda detaylı bilgiyi <a href="http://www.yakuter.com/" target="_blank">yakuter</a>&#8216;in blogundaki <a href="http://www.yakuter.com/utf-8-bom-byte-order-mark-nedir/" target="_blank">UTF-8 BOM (Byte Order Mark) Nedir?</a> yazısında bulabilirsiniz.</p>
<p style="text-align: left;">Sistemimizi yazmaya başladığımızda ilk yapmamız gereken şey sayfalarımızın HTML karakter yorumlamasını başlık kısmında belirtmek. Bunun için aşağıdaki kodları sayfalarımızın &lt; head &gt; &#8230; &lt; /head &gt; kısmına yerleştiriyoruz:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;meta</span> <span style="color: #000066;">http-equiv</span>=<span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">&quot;text/html; charset=UTF-8&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>Bu işlem sayesinde tarayıcılarımız karakterlerimizi UTF-8 formatında yorumlayacaklardır. Ardından MySQL tablolarımızın tüm karakter kodlamalarını UTF-8 formatına çevirmek için aşağıdaki kodu php ile çalıştırıyoruz:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ALTER DATABASE veritanabi_adı
CHARACTER SET utf8
DEFAULT CHARACTER SET utf8
COLLATE utf8_unicode_ci
DEFAULT COLLATE utf8_unicode_ci
&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>veya aşağıdaki kodu phpMyAdmin aracılığıyla SQL sorgusu olarak çalıştırıyoruz:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">DATABASE</span> veritanabi_adı
<span style="color: #993333; font-weight: bold;">CHARACTER</span> <span style="color: #993333; font-weight: bold;">SET</span> utf8
<span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #993333; font-weight: bold;">CHARACTER</span> <span style="color: #993333; font-weight: bold;">SET</span> utf8
<span style="color: #993333; font-weight: bold;">COLLATE</span> utf8_unicode_ci
<span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #993333; font-weight: bold;">COLLATE</span> utf8_unicode_ci
;</pre></div></div>

<p>Eğer ortada bir veritabanımız yoksa ve yeni bir sistem kuracaksak oluşturduğumuz tüm tablolar ve field&#8217;leri utf8_unicode_ci karakter kodlamasında oluşturuyoruz.</p>
<p>Ardından sistemimizde MySQL bağlantı ayarlarını yaptığımız satırların altına aşağıdaki kodu yazıyoruz:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SET NAMES 'utf8'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SET CHARACTER SET utf8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SET COLLATION_CONNECTION = 'utf8_unicode_ci'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Son olarak sayfalarımızın başına aşağıdaki PHP kodunu eklemek eğer sunucu varsayılan karakter seti farklıysa sayfalarımızdaki UTF-8 karakter sorununu çözecektir.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Content-Type: text/html; charset=UTF-8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Eğer tüm sayfalarınızda include ettiğiniz bir dosya varsa (config.php, ayar.php vs.) yukarıdaki kodu sadece o dosyanın başında yazmanız yeterli olacaktır.</p>
<p>Tüm bu işlemleri uyguladıysanız artık karakter problemi diye birşey lügatimizde kalmadı. Tüm işlemlerinizde dilediğiniz gibi Türkçe karakterlere yer verebilirsiniz.</p>
<p><strong>Not: </strong>Hala Türkçe karakterlerde sorun yaşıyorsanız muhtmelen server karakter ayarlarını da değiştirmeniz gerekecektir. Eğer server yöneticisi değilseniz bunu hosting firmanızdan isteyin. Yerel sunucunuzda bu problemleri yaşıyorsanız Apache&#8217;nin conf dosyasını düzenlemelisiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muhittinozer.com/2008/07/21/php-ve-mysql%e2%80%99de-sik-yasanan-turkce-karakter-problemleri/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>PHP ile Resim Upload ve Yeniden Boyutlandırma</title>
		<link>http://www.muhittinozer.com/2008/05/31/php-ile-resim-upload-ve-yeniden-boyutlandirma/</link>
		<comments>http://www.muhittinozer.com/2008/05/31/php-ile-resim-upload-ve-yeniden-boyutlandirma/#comments</comments>
		<pubDate>Sat, 31 May 2008 19:44:37 +0000</pubDate>
		<dc:creator>Muhittin Özer</dc:creator>
				<category><![CDATA[PHP & MySQL]]></category>
		<category><![CDATA[resim upload]]></category>
		<category><![CDATA[yeniden boyutlandırma]]></category>

		<guid isPermaLink="false">http://www.muhittinozer.com/?p=90</guid>
		<description><![CDATA[PHP ile resim upload etme ve edilen resmi yeniden boyutlandırma işleminin nasıl yapıldığından bahsetmek istiyorum bu yazımda.. Burada daha çok ortaya hazır bir kod çıkartmaktan ziyade bu işlemin nasıl yapıldığını anlatmak ve okuyanların kendi yorumlarını ekleyerek daha gelişmiş uygulamalarda kullanabilmelerini sağlamak istiyorum.. Yapacağımız işlem bir form aracılığı ile JPEG formatında bir resmi upload etmek ve [...]]]></description>
			<content:encoded><![CDATA[<p>PHP ile resim upload etme ve edilen resmi yeniden boyutlandırma işleminin nasıl yapıldığından bahsetmek istiyorum bu yazımda..</p>
<p>Burada daha çok ortaya hazır bir kod çıkartmaktan ziyade bu işlemin nasıl yapıldığını anlatmak ve okuyanların kendi yorumlarını ekleyerek daha gelişmiş uygulamalarda kullanabilmelerini sağlamak istiyorum..<span id="more-90"></span></p>
<p>Yapacağımız işlem bir form aracılığı ile JPEG formatında bir resmi upload etmek ve bunu sabit 300 genişlikte ve yükseklik-genişlik oranını sabit tutarak yeniden boyutlandırmak ve <em>resimler/</em> klasörümüzde <em>&#8220;yeniresim-Dosya Adı&#8221;</em> adında oluşturmak.</p>
<p>Öncelikle upload edilecek resmi alacağımız html sayfasını hazırlayalım:</p>
<p><strong>index.html</strong></p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;html<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;head<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>;Resim Upload<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;meta</span> <span style="color: #000066;">http-equiv</span>=<span style="color: #ff0000;">&quot;Content-Type&quot;</span> <span style="color: #000066;">content</span>=<span style="color: #ff0000;">&quot;text/html; charset=utf-8&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/head<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;body<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;form</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;upload&quot;</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">&quot;post&quot;</span> <span style="color: #000066;">action</span>=<span style="color: #ff0000;">&quot;upload.php&quot;</span> <span style="color: #000066;">enctype</span>=<span style="color: #ff0000;">&quot;multipart/form-data&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;file&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;resim&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;resim&quot;</span> <span style="color: #000066;">lang</span>=<span style="color: #ff0000;">&quot;tr&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;br</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;input</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;gonder&quot;</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;gonder&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;Yükle&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/form<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/body<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/html<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Şimdi de bu formdan gelen resmi <em>resimler</em> klasörümüze kaydedip boyutunu 300px genişlikte olacak şekilde sabitleyelim:</p>
<p><strong>upload.php </strong></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;gonder&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">&quot;Yükle&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$kaynak</span>		<span style="color: #339933;">=</span> <span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;resim&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;tmp_name&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Yüklenen dosyanın adı</span>
	<span style="color: #000088;">$klasor</span>		<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;resimler/&quot;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Hedef klasörümüz</span>
	<span style="color: #000088;">$yukle</span>		<span style="color: #339933;">=</span> <span style="color: #000088;">$klasor</span><span style="color: #339933;">.</span><span style="color: #990000;">basename</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'resim'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">move_uploaded_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$kaynak</span><span style="color: #339933;">,</span> <span style="color: #000088;">$yukle</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$dosya</span>		<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;resimler/&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'resim'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$resim</span>		<span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatefromjpeg</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dosya</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 	<span style="color: #666666; font-style: italic;">// Yüklenen resimden oluşacak yeni bir JPEG resmi oluşturuyoruz..</span>
		<span style="color: #000088;">$boyutlar</span>	<span style="color: #339933;">=</span> <span style="color: #990000;">getimagesize</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dosya</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 		<span style="color: #666666; font-style: italic;">// Resmimizin boyutlarını öğreniyoruz</span>
		<span style="color: #000088;">$resimorani</span>	<span style="color: #339933;">=</span> <span style="color: #cc66cc;">300</span> <span style="color: #339933;">/</span> <span style="color: #000088;">$boyutlar</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> 			<span style="color: #666666; font-style: italic;">// Resmi küçültme/büyütme oranımızı hesaplıyoruz..</span>
		<span style="color: #000088;">$yeniyukseklik</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$resimorani</span><span style="color: #339933;">*</span><span style="color: #000088;">$boyutlar</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> 	<span style="color: #666666; font-style: italic;">// Bulduğumuz orandan yeni yüksekliğimizi hesaplıyoruz..</span>
		<span style="color: #000088;">$yeniresim</span>	<span style="color: #339933;">=</span> <span style="color: #990000;">imagecreatetruecolor</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;300&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$yeniyukseklik</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Oluşturulan boş resmi istediğimiz boyutlara getiriyoruz..</span>
&nbsp;
		<span style="color: #990000;">imagecopyresampled</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$yeniresim</span><span style="color: #339933;">,</span> <span style="color: #000088;">$resim</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;300&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$yeniyukseklik</span><span style="color: #339933;">,</span> <span style="color: #000088;">$boyutlar</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$boyutlar</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Yüklenen resmimizi istediğimiz boyutlara getiriyoruz ve boş resmin üzerine kopyalıyoruz..</span>
		<span style="color: #000088;">$hedefdosya</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;resimler/yeniresim-&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'resim'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Yeni resimin kaydedileceği konumu belirtiyoruz..</span>
		<span style="color: #990000;">imagejpeg</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$yeniresim</span><span style="color: #339933;">,</span> <span style="color: #000088;">$hedefdosya</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 		<span style="color: #666666; font-style: italic;">// Ve resmi istediğimiz konuma kaydediyoruz..</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">//Kaydettiğimiz yeni resimin yolunu $hedefdosya değişkeni taşımaktadır..</span>
		<span style="color: #990000;">chmod</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$hedefdosya</span><span style="color: #339933;">,</span> <span style="color: #208080;">0755</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// chmod ayarını yapıyoruz dosyamızın..</span>
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Resim Upload&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
Resminiz başarıyla yüklenmiştir..&lt;br /&gt;
&lt;img src=&quot;'</span> <span style="color: #339933;">.</span><span style="color: #000088;">$hedefdosya</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot; alt=&quot;Yükelenen Resim&quot; border=&quot;0&quot; /&gt;
&lt;/body&gt;
&lt;/html&gt;'</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">else</span> 
		<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Resim Yüklenemedi&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// Eğer resim yüklenemediyse move_uploaded_file fonksiyonundan değer false olacağından bu hatayı yazdırırız ekrana</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span> 
	<span style="color: #990000;">header</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Location: index.html&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Kodlar içerisinde de gerekli açıklamaları yaptım ancak yine de kodlarımızı biraz açıklamakta fayda var sanıyorum..</p>
<p>Öncelikle 2. satırda post değerlerinin dönüp dönemediğine bakıyoruz. Eğer formdan post yoluyla değer almıyorsak <em>index.html</em> dosyamıza yönlendiriyoruz sayfamızı. Ardından formdan gelen tek değer olan resim dosyamızı <strong>$kaynak</strong> değişkenine atıyoruz. Dosyamızı yükleyeceğimiz klasörün yolunu da <strong>$klasor</strong> değişkenimize atıyoruz. Ve de <strong>$yukle</strong> değişkenimizle dosyamızın yeni yerini belirtiyoruz. <em><strong>move_uploaded_file</strong></em> fonksiyonu yüklenen dosyayı 1. parametre olarak alır ve 2. parametresinde de yeni yolunu ister bizden. Bu fonksiyon bir true/false fonksiyondur ve eğer yüklenen dosya istediğimi konuma aktarıldıysa true değerini verir. Burada dosyanın yüklenme işlemi bitmiştir..</p>
<p>Resmimizi boyutlandırma işlemi if bloğumuz içerisinde kalan kısımdadır. <strong>$dosya</strong> değişkenimize yeniden boyutlandırılacak resmimizin yolunu verdik.  <strong>$resim</strong> değişkenimize de <em><strong>imagecreatefromjpeg</strong></em> fonksiyonuyla yeni oluşturduğumuz resmimizi atadık. Bu fonksiyon JPEG formatındaki resimlerde kullanılır GIF,PNG formatındaki resimler için <em><strong>imagecreatefromgif, </strong></em> <em><strong>imagecreatefrompng</strong></em> fonksiyonları kullanılabilir. <strong>$boyutlar</strong> değişkenine <em><strong>getimagesize</strong></em> fonksiyonu ile resim dosyamızın boyutlarını aldık. Bu değişken bir dizi değişkendir ve ilk değeri genişlik ikinci değeri yüksekliktir. Daha sonraki 2 satırda resmin genişliğini 300 olacak şekilde yüksekliğin alması gereken değeri hesaplıyoruz. <strong>$yeniresim</strong> değişkenimize <em><strong>imagecreatetruecolor</strong></em> fonksiyonu ile istediğimiz yeni boyutlarda bir resim oluşturuyoruz. <em><strong>imagecopyresampled</strong></em> fonksiyonu ile oluşturduğumuz resme yüklediğimiz resmi yeni boyutlarına indirilmiş hali ile kopyalıyoruz. <strong>$hedefdosya</strong> değişkenine verdiğimiz değer ise oluşturduğumuz yeni resmin yolu. <em><strong>imagejpeg</strong></em> fonksiyonu ise yaptığımız tüm bu işlemlerin sonucunda oluşan resmin çıktısını alıp istediğimiz yolakaydetmemizi sağlar. Burada fonksiyonun 3. parametresi olan 100 resim kalitesidir. Eğer alan sıkıntısı çekiyorsanız kaliteyi düşürebilirsiniz. Ayrıca yine bu fonksyion JPEG formatındaki resimlerde kullanılır. GIF,PNG formatındaki resimler için <em><strong>imagegif, </strong></em><em><strong>imagepng</strong></em> fonksiyonlarını kullanabilirsiniz. Son olarak bazı sunucular default CHMOD olarak yetersiz izinler atıyor dosyalara. Yazacağımız kodların her ortamda çalışabilmesi için <em><strong>chmod</strong></em> fonksiyonu ile dosya izni ayarlarını da yapıyoruz..</p>
<p>İşlemler bu kadar tabi benim yaptığım balık tutmayı anlatmaya çalışmak.. Sadece bu kodlar sizi tatmin etmiyecektir. Özellikle her formattaki resmi şekillendirecek güvenlik önlemlerini alacak bir script yazmayı size bırakıyorum..</p>
<p>Kolay gelsin&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muhittinozer.com/2008/05/31/php-ile-resim-upload-ve-yeniden-boyutlandirma/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
	</channel>
</rss>

