GD Resim Boyutlandirma-Kayit Etme-Görüntüleme
Posted by ahmetozaydin in GD Kütüphanesi on Aralık 14, 2010
gd_info(); adından da anlışalabileceği gibi eğer yüklüyse gd kütüphanesi bilgilerini taşıyan komuttur. Php’deki phpinfo() komutu gibi.
GD kütüphaneniz hakkında bilgi almak isterseniz tarayıcıya çıktı olarak; aşağıdaki komutları index.php olarak kaydedin ve hostunuza atarak (yada www klasörünüze) çalıştırın.
<?php
foreach(gd_info() as $key => $value)
{
echo "$key : $value <br>";
}
?>
Eğer gd kütüphanesine sahip değilseniz, gd kütüphanesini BURADAN indirebilirsiniz.
İlk önce yeni gd ile yeni bir resim oluşturalım. Keza bunun için iki yöntem kullanılıyor. Biri imagecreate() diğeri imagecreatetruecolor().
imagecreate(): Yeni boş bir paletli resim oluşturmak için
imagecreatetruecolor(): Yeni boş bir gerçek resim oluşturmak için
Aralarındaki farka bende tam olarak hakim değilim. Lakin şöyle bir açıklama bulmuştum.
GIF gibi PNG de paletli resimleri destekler, piksel başına 1, 2, 4 ya da 8 bitlik paletli resimler oluşturulabilir. Bunun dışında, gerçek renkli resimler için kanal başına 8 ya da 16 bit kullanılır. PNG gri ton ya da kırmızı, yeşil ve mavi renkli kanalların yanı sıra renk kanallarıyla aynı duyarlılıkta bir saydamlılık kanalı da destekler; GIF’de saydamlık, bir renk değerinin saydam olarak işaretlenmesiyle elde ediliyordu.
Ne ise onu da tam anlamıyla kavrayınca bloga yazarız. Biz şimdi işimizi jpeg üzerinden görelim bu yüzden de imagecreatetruecolor fonksiyonunu kullanalım.
Öncelikle kendi fonksiyonlarımızı yazalım, sonra bu fonksiyonların içindeki gd fonksiyonlarını tek tek ele alalım ve inceleyelim. Sürekli olarak proje yaparak ve yeni ürünler ortaya koyarak öğrendiğim için sizlere de bu şekilde paylaşım sunacağım. Daha kalıcı olması açısından ben böyle düşünüyorum.
KODLAR AÇIKLAMALI-> http://pastebin.com/embed_iframe.php?i=wbdNFRhT
KODLAR AÇIKLAMASIZ-> http://pastebin.com/embed_iframe.php?i=sCmWYKEs
NOT: Boyutlandırılmış resmi kaydedeceğiniz KLASÖR daha önceden açılmış ve yazılabilir durumda olmalıdır. Yoksa Hata ile karşılaşırsınız.
Kodları ben yazdım fakat renkli olması açısından pastebin sitesini kullandım. Buraya embed edemiyorum malesef.
Tam anlamıyla açıklamaları yapamamış olabilirim. Keza her bir gd fonksiyonunu tek tek açıklamak 2-3 satır ile olmaz. Belki onları da açıklayıcı yazılar yazarım. Ben size ham halini veriyorum eğer isterseniz siz pişirebilirsiniz. IF-Else While ıvır zıvır kontroller eklemedim isterseniz ekleyebilirsiniz. Tercihinize göre pişiriniz. Tuzu limonu size ait.
Her hangi bir konunuzda yardım isteğinde yorum yaparak ulaşabilirsiniz.
SELAMETLE.
GD Kütüphanesi – Giriş
Posted by ahmetozaydin in GD Kütüphanesi on Aralık 14, 2010
Merhaba arkadaşlar,
Php’de GD kütüphanesini bir çok coderin kullandığı bir kütüphanedir. Özellikle grafik içeren web sayfaları yada sistemler için gerçekten çok ideal bir kütüphane. Belki de artık Photoshop’a bile elveda edersiniz.
GD Kütüphanesi Kurulumu için:
http://www.php.net/manual/tr/image.setup.php adresini ziyaret ediniz. Türkçe dil desteği ile bu sayfayı inceleyiniz.
PHP dili sadece text çıktıları sağlamaz aynı zamanda JPG, TIFF, GIF, PNG, WBMP, XPM 5.3.3(sanırım) versiyonunda .ICO dosyalarını dahi yaratma, biçimlendirme, değiştirme, ve bunların direk olarak tarayıcıya gönderimini yapar. Örneğin index.php dosyamızda GD kütüphanesi ile siyah bir kare oluşturduk ve direk tarayıcıda görüntüledik. Şimdi burada bir kaç şey dikkatinizi çektireceğim.
- Hostumuzda yani www yada public_html dosyalarında kare.(jpg,png,gif) dosyası olmamasına ragmen tarayıcıda resim gösterebiliyoruz.
- Aynı zamanda resmi sağ tıklayıp farklı kaydet dediğimizde index.php dosyası olarak kaydediyor browser fakat windows resim görüntüleyici ile açınca yine de resim olarak açılıyor.
Bu yöntem bir çok işimize yarayabilir. Örneğin bir web sayfam var ve bu sayfamda avatar yani kullanıcı resmi seçme sistemim var. Kullanıcılar kendi avatarlarını yükleyebilecekler. Bu avatar resimleri “kullanici_avatar” adli bi klasöre kayıt olacaksa klasörü 777 CHMOD ayarlandırması yapmamız gerekecek. Yada Php’den dosyayı yazarken klasörü 777 sonra tekrar 775 yapmasını söylücez. Her ne ise fakat ben yine de güvenliğimden şüphe ediyorum ve Avatarlara sağ tıklanınca resim özelliklerine bakıldığında bu avatarın hangi PATH(yol) da olduğunun görülmesini istemiyorum.
Path dediğim örneğin nette dolaşırken bir resme sağ tıklayın ve eğer mozilla ise Resim Bilgilerini Göster‘e – IE ise Özellikler‘e tıklayın. Mozilla’da Konum IE’de Adres(URL) yazılarının karşısındaki adres resmin direk adresidir.
İşte şimdi GD kütüphanesi ile avatar resmini alır ve Tarayıcıda GD ile gönderirsek bu resim yolunu kullanıcı göremez ve avatar klasörümü de göremeyeceği için bir nebze de olsa güvenliği biraz arttırmış olurum.
Unutmayın ki, bir zincir en zayıf halkası kadar güçlü olabilir. O yüzden sadece bir yeri güvenli hale getirmek sistemin güvenli olduğu anlamına gelmez. Sadece örnek açısından söyledim.
CSV convert SQL
Posted by ahmetozaydin in İp uçları on Aralık 12, 2010
Merhaba arkadaşlar,
Bu yazıda csv dosyalarını nasıl sql dosyası haline getireceğimizi basit bir şekilde öğreneceğiz. Bir php class dosyası yazmak üzereyken karşıma çıkan bu csv sorunu canımı çok sıktığından uğraştım ve sizlerle paylaşmak istedim. Nette bulduğum csv2sql convert programları 49$ dan başlıyordu. Tabi daha ayrıntılı olabilirler fakat benim işime yarayanı ben şu şekilde yaptım.
Haydi bismillah;
Ön koşullar:
Apache, PHP, MYSql, Yada üçü için WampServer, birazcık PHP, SQL, Windows, Not defteri bilgisi
Öncelikle csv dosyasına sağ tıklayarak birlikte aç diyoruz ve dosyayı Not defteri(notepad) ile açıyoruz.
Sonrasında bu açılan dosyayı “Farklı Kaydet” seçeneği ile .txt dosyası olarak kaydediyoruz. Örneğin ben dosya.txt diye kaydettim.
Daha sonra not defterini açarak şöyle bir php kodu yazıyoruz.
<?php
#Önce dosya adını bir değişkene atıyoruz.
#Siz ne ad verdiyseniz .txt dosyanıza onu yazın.
$file = “dosya.txt”;#Dosyamızı fopen komutu ile okuma modunda açıyoruz.
$dosyaAc = fopen($file, “r”);#dosya sonuna kadar okumasını istiyoruz.
while(!feof($dosyaAc))
{
#fgets komutu ile satır satır okumasını istiyoruz.
$islem = fgets($dosyaAc,1024);
/*bu ereg fonksiyonu opsiyoneldir. Bendeki dosyanın hücrelerinde kayıtlar ” bu işaret ile içeri alınmıştı ben o işareti ‘ bu işaret olarak değiştirdim. Sadece buna yarar.*/
$islem2 = ereg_replace(“\”",”‘”,$islem);/*Burada ise çıktıların nasıl çıkacağını gösteren sql kodunu satırlara tek tek ekliyoruz.*/
echo ‘INSERT INTO sehir (sutun1,sutun2,sutun3,sutun4,sutun5,sutun6) VALUES (‘ . $islem2 . ‘);<br>’;
}#dosya kapatıyoruz.
fclose($dosyaAc);?>
Tabi ben bu kodları basit olarak yazdım. if else kontrollerini yazmadım. is_file is_readable falan fişman gerek yok şu anda. Siz geliştirebilirsiniz.
Daha sonra localhosttan php dosyamızı çalıştırıyoruz php dosyamız ve txt dosyamız aynı klasörde olmalı eğer path belirlemediyseniz php dosyası içerisinde. ekranda çıkan sonuçların tamamını kopyalıyoruz.
Eğer anlamadıysanız ve bu durumdan muzdaripseniz yorum yapabilir yada email ile ulaşmaya çalışırsanız yardımcı olmaya çalışırım. Daha ayrıntılı anlatmaya çalışırdım fakat zamanım bulunmamakta…
Belki ilerde bu tür bir programı vb.net ile yazabilirim 48,9$ dan satarım.
Apache Localhost Adresi Değiştirme
Posted by ahmetozaydin in İp uçları on Ekim 5, 2010
Merhaba,
Öncelikle internet cafelerde bulunan AKINSOFT programı 127.0.0.1(localhost) adresini engellemektedir.
Wampserver, apache, IIS vb. localhost yani kendi bilgisayarınızda asp ve php dosyalarınızı görüntülemeniz için kurulur. Keza bunları bildiğinizi farzetmek durumundayım yoksa anlatacaklarımı yapabileceğinizi sanmıyorum. Yürümeden önde uçmaya benzer bu işe kalkışmak.
Localhost üzerinde wampserver kurduğumuzu farzedersek(ben öyle kullanıyorum) size de tavsiye ederim. Default olarak PHP dosyalarınızı C:\Wamp\www klasörü içine atmanız gerekmektedir. Php dosyalarınızı attıktan sonra http:\\localhost veya http:\\127.0.0.1 adresiyle “www” klasörü içerisindeki index.php(default ayarı index.php’dir) dosyasını otomatik olarak ekrana getirecektir kullandığınız tarayıcı.
Peki şimdi localhost’a ulaşamıyorsak veya yasak ise ne yapacağız?
Öncelikle localhost adımı engelli yoksa ip adresi ve ikisimi engelli onu öğreneceğiz. http://localhost ve http://127.0.0.1 adreslerini browserimize gireceğiz eğer ikisi de engelliyse işimiz uzun eğer sadece http://localhost yazınca engel çıkıyorsa çok basit.
1. Eğer localhost engelliyse sadece
C:\Windows\system32\Drivers\etc klasörü altında Hosts dosyası bulunur. Bu dosyayı Not defteri ile açtığımızda
127.0.0.1 localhost
böyle bir satır vardır. Başında # işareti olmaması gerekiyor. Bu satırdaki localhost adını değiştirin. Örneğin; benimadim.com yazin ve sonra tarayicinizda http://benimadim.com girdiğinizde tarayici sizi 127.0.0.1 adresine yönlendirecek ve sorun ortadan kalkmış olacaktır.
2. Eğer her ikisi de engelliyse (keza anlatmak istediğim bu)
a. Öncelikle yukarıdaki localhost adını değiştirme olayı yerine bu sefer Host dosyasında “127.0.0.1 localhost” satırının altına “127.1.1.1 localpost” yazıyoruz.
127.0.0.1 localhost
127.1.1.1 localpost
Resim: Host dosyası değişikliği
NOT: 127.0.0.1 loopback adresini değiştirmek imkansızdır. Bu yüzden başka bir ip adresine başka bir domain yönlendireceğiz. 127.0.0.1′i değiştirmeye çalışmayın ben çok aradım belamı buldum ama mevlamı bulamadım.
host dosyasını Ctrl+S’ye basarak kaydedip çıkıyoruz. Burada localpost domainine 127.1.1.1 ip adresini yönlendirdik.
b. Şimdi Apache’nin configuration dosyasına (httpd.conf) dosyasına girip
Listen: 80 satırını Listen: 127.1.1.1:80
Allow from 127.0.0.1 satırını Allow from 127.1.1.1
şeklinde değiştirin. Ctrl + F tuşuna basarak Listen ve 127.0.0.1 diye aratırsanız satırlara çok daha kolay ulaşırsınız. Dosyayı kaydedip çıkıyoruz.
NOT: Başında # olan satırlara karışmayın onlar açıklama satırı.
c. http://localpost veya http://127.1.1.1 yazdığımızda artık php dosyalarımıza ulaşbiliriz. Fakat veritabanlı bir uygulama yapıyorsak eğer PhpMyadmin lazım olacak bu durumda phpmyadmin’e girmeye çalışırsanız Forbidden hatası alacaksınız. Onu düzeltmek için ise Resim2′deki gibi Phpmyadmin’in Alias dosyasını düzenleyeceğiz.
Bunun için wampservere bir kere tıklayıp > apache > Kısayol adresleri > http://localhost/phpmyadmin > Edit Alias’a tıklamanız gerekiyor.
Resim2:
Daha sonra Allow from 127.0.0.1 yazan satırı Allow from 127.1.1.1 olarak değiştirin. Sayfayı kayıt edin. Tabi bir çok ayar daha değiştirilmesi gerekebilir. Bundan ötürü en kısa zamanda doğru düzgün localhostu açan bir yerde çalışmanızı tavsiye ederim.
Resim3:
Hello world! (Merhaba Dünya!)
Posted by ahmetozaydin in Uncategorized on Ekim 5, 2010
Merhaba,
Bir bilgisayar kullanıcısı ve aynı zamanda coderi olmaktan dolayı her programlamanın başlangıç aşaması olan “Hello world(Merhaba Dünya!)” klasiğini devam ettirmek biz bilgisayar yazarlarının kutsal görevlerinden birisidir.
Sizlerle blog sayfamda paylaşacaklarım umarım dertlerinize sıkıntılarınıza bir nebze derman olur.


