[Eski] Biraz PHP, biraz tasarim, biraz HTML

Bu başlık 2011 ve öncesi açılmış Müziktek Forumu başlıklarından biridir

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Tunç Akın

Aktif üye
Merhabalar,

Okulum nedeniyle hali hazirda Java ve C bilmekteyim. Cok derin olmasda donguler, diziler, classlar hakkinda bilgim mevcut. Fakat okulda bunlari ders olarak gormektense kendim kesfetmek istiyorum. Cunku isin icine ders tanimi girdi mi garip bir sogukluk olusuyor bende.

Ilk sorum geliyor,

Ozellikle Java'yi internet uzerinden bir hobi olarak (okulda da 2 donem daha Java alacagim) nasil nereden gelistirebiliri? Onereceginiz guzel siteler var midir?

Daha sonra Dreamweaver'e merak saldim. Su anda super olmasa da bir site hazirlamaya yetecek kadar bilgim mevcut. Fakat dreamweaver'in sadece grafik arayuzu ile ilgili bir seyler yapabiliyorum. Fakat bildigim kadariyla, veritabani olusturulamasada (ki emin degilim) cesitli formlar yapilabiliyor dreamweaverde.

O yuzden 2.sorum geliyor,

Dreamweaver'in incigini cincigini ogrenmek istiyorum. Hali hazirda kafamda olan bilgilere guzel sekilde nasil bir ekleme yapabilirim?

3.sorum ise tasarim tabanli. Sadece sitede beyaz sayfa uzerine bir iki table ekleyip icine bir seyler yazmak istemiyorum. Yani illaki yapacagim fakat ne bileyim, o table'nin yanina guzel grafikler tasarlamak istiyorum.

Bunun icin sanirim Adobe Photoshop onereceksiniz. Fakat Photoshop'i baya bir kurcalamama ragmen, (ornek vermek gerekirse www.optiktunali.com.tr sitesinde, orta kismi cevreleyen renk gecisli grafikler mesela) istedigim tarzda bir grafigi nasil yapabilirim bunu bulamadim.

Sizin bu konuda onerebileceginiz ne gibi seyler var?

Ve son olarakta PHP ile hasir nesir olmak istiyorum. Ozellikle veritabanlari (ki okulda bunu da ders olarak gorecegim fakat ders olacagi icin cok eglenecegimi ve ilgi gosterecegimi dusunmuyorum) bilgilenmek istiyorum.

Bir form olusturayim, adam ona bilgilerini girsin ve bu bir veritabanina aktarilsin mesela.

Biliyorum diyeceksiniz zaten bunlar web tasarimin olmazsa olmazlari, ama bir yerden baslamak gerek, o yuzden burada tecrubeli insanlar olabilecegini dusundum.

Ve dedigim gibi programlamaya karsi bir soguklugum var (ozellikle Java) ve bu soguklugu ancak ne bileyim mesela Java Script kodu yazarken asabilecegimi dusunuyorum.

O yuzden yardimci olursaniz sevinirim, tesekkur ederim.
 
İnternet'teki dersleri de takip edebilirsin, piyasadaki kitapları da alıp okuyabilirsin, verdikleri CD'lerin örnekleri üzerinden gidebilirsin. Bunların neyi nerede bulabileceğini bilmek gibi bir faydası olur. Ama acil bir iş bitirmesi gereken biri için değil, zamanı olup bilgisini artırmak isteyen biri için böylesi iyi.

Bitirmen gereken bir iş varsa, belirli bir site yapmak istiyorsan, üzerine koyacağın grafikleri kafanda şekillendirmiş, yazıları hazırlamışsan, onları nasıl yapacağını öğrenmeye bak. Artık kitapların ve derslerin dizinlerine bakarak ihtiyacın olan bilgileri bulursun ya da buraya sayfa aç, yardımcı olabilen olsun.
 
Sabi-R Hanim ve Vedat Abi, tesekkur ederim.

Dun incelerken, Google'in Picasa adli programina raastladim. Cok basit fakat cok guzel galeri templateleri var kendi icerisinde.

Dediginiz yollardan devam edecegim. Cok acelem yok, her seyi severek ve oturakli sekilde ogrenmeyi tercih ederim cabuk ogrenmektense.

Tesekkur ederim tekrardan.
 
Yine ben :p

Aklima bir sey geldi. Dreamweaver ile kullanmak uzere, Access'i veri tabani olarak kullanmamiz mumkun mu? Basit bir sekilde bir veri tabani olacak. 3-5 tane veri tutacak icinde, zaten daha cok deneme amacli kullanacagim.
 
Mümkün. DW'ın içinden Site>bir dosya açıp (önceden oluşturduğun) sonra Application>Databases'ı seçip oradan devam edersin.
 
Peki bir şey daha soracağım, yanlış biliyor olabilirim ama.

PHP dosyasını Compile edebilmemiz için, mutlaka bir server'e upload etmemiz gerektiğini duydum sayfayı.

Ne kadar doğrudur? Daha doğrusu belki bir database ile kullanırken böyleydi. Tam hatırlamıyorum, zaten sadece duyduğum bir bilgi.

Ama öyle değilse de DW içindeki Database ile PHP dosyasını ''binding'' içinden birleştiremedim. Bu yüzdendir diye düşündüm yine.

Ayrıca, database olarak göstereceğim, içinde table'lar filan olacak dosya, Access'in kendi dosyası mı olmalı? Yoksa başka bir şey mi?
 
Google'dan basit aramalar yaparak, bu sorduğun soruların tümüne Türkçe açıklamalar bulabilirsin. Bu konuda pek çok forum, site ve eğitim yazısı var hazır durumda. Özellikle access db kullanımı ile ilgili resimli anlatımlar olduğunu biliyorum...

Bir php dosyasını kendi makinende de çalıştırıp test edebilirsin. Bunun için bilgisayarına basit bir web sunucu kurman yeterli olacaktır. WAMP bu konuda oldukça kullanışlı ve kolaydır, öneririm.

Kolay gelsin.
 
Başlamak için bir dili seçmen gerek bence PHP ve Mysql'i öneririm ben, Yerel sunucu için de phptriad olabilir. Eğer phptriad'a karar verirsen kurulum için yardımcı olabilirim.
 
Veri tabanlari dersinde MySQL'i gelecek donem okulda alacagim. Aslinda guzel bir secim olabilir, onceden fikir sahibi olma acisindan.

Fakat su anda sadece konu hakkinda fikir sahibi olmak icin ugrasacagim icin MySQL'e giris yapmak ne derece dogru onu bilemiyorum. O yuzden Access uzerinden gitmek istedim.

Sevgili insect, yardimlarin icin tesekkurler. Su anda Macintoshtayim. Windows'a gecip biraz kurcalamam lazim. Bakalim ne cikacak. Tesekkur ederim, tekrar basini agritacagim. :?
 
Tunç, bahsettiğin konularla yıllardır içiçeyim. Elimden geldiğince yardımcı olmaya çalışayım. Bilgisayarı rendera bıraktım, 20 saat yazabilirim artık :)

İlk olarak hatırlatmam gereken şey, bir web uygulaması geliştirken grafik tasarımı ve programlama aşamalarının ayrı olduğudur. Yani PHP, SQL, JavaScript vs. bilmen sana grafik tasarım konusunda pek yardımcı olmayacak.

İkinci olarak Dreamweaver gibi programlar gerek tasarım gerekse programcılık öğrenmene pek yardımcı olmazlar. Bu programların kullanıcıları itiraz edebilirler ama yazımı sonuna kadar okurlarsa neden olduğunu anlayacaklardır.

Benim önerdiğim PHP öğrenme yöntemi işin en temelinden başlamaktır. C dilinden fonksiyon kullanımıda ve Java'dan nesnelere zaten alışık olduğun için PHP öğrenmek senin için çok kolay olacaktır. Hiç programlama bilmeyen biri için bile PHP oldukça iyi bir başlangıç noktasıdır.

PHP konusunda bilmen gereken ilk şey PHP'nin C gibi derlenen (compiled) bir dil değil, yorumlanan (interpreted) bir dil olduğudur. Yani PHP ile ikili (binary) yani çalıştırılabilir (executable) bir dosya oluşturmayız. Betik (script) her defasında yeniden yorumlanır.

PHP'nin temel çalışma prensibini canlı bir örnek ile -yüzeysel olarak- anlatmaya çalışayım.

Önce sadece bir HTTP server ile çalıştığımızı düşünelim. Sunucu uygulaması olarak Apache kullandığımızı varsayalım. Önermesem de IIS gibi şeyler de var.

Eğer özel bir ayar yapmadıysan Apache sunucuya gelen http isteklerine htdocs dizini altındaki dosyaları gönderek cevap verir. Örneğin, dosya bir html dosyasıysa dosyayı olduğu gibi aktarır, ve istemci bu dosyayı bir ağ tarayısıyla (Firefox, IE, Safari, Opera vs.) istemişse bu tarayıcı gelen html dosyasını önce parse eder, yani okur, sonra render eder, yani tarayıcı sayfasına çizer. Eğer sayfa içinde grafik gibi elemanlar varsa bunlar için de sunucuya istek gönderir ve sunucudan gelen grafiği (jpeg, png, bmp, svg vs.) gerekli yere yerleştirir. Eğer tarayıcıda Flash, Quicktime gibi eklentiler yüklü ise bunları yorumlaması için ilgili eklentiyi çağırır.

Yani; tarayıcının adres satırına adresi (URL) yazıp gönder tuşuna basmamızla birlikte tarayıcı bir HTTP istemi (HTTP request) oluşturur, bunu TCP/IP paket yönetimine uygun kapıyı (port) kullanarak bildirir, istem Internet'e çıkar ve sunucuya ulaşır, sunucu (1) istemin yapıldığı portu dinliyorsa (2) o isteme cevap verecek uygulamaya sahipse (ve düzgün ayarlanmışsa) istemi dikkate alır ve ilgili uygulamayı haber verir, bizim örneğimiz de Apache devreye girer, eğer istenilen dosya mevcutsa o dosyayı sunucu üzerindeki TCP/IP yöneticisine iletir, dosya paketlenir ve istemciye doğru yola çıkar. Aslına arada çalışan başka programlar var, ben özetliyorum, tam isabetli bir anlatım olmuyor.

Şimdi bu sunucuya bir de PHP sunucusu ekleyelim. Bu kez Apache kendine gelen isteği değerlendirirken, istek yapılan dosya içinde PHP betiği var mı diye bakar. Eğer PHP betiği varsa bu kez dosyayı istemciye olduğu gibi göndermez. Dosya PHP uygulaması tarafından değerlendirilir ve Apache'ye geri gönderilir, Apache, PHP'den geri gelen dosyayı istemciye yollar.

Şimdi bir html dosyasının içinden PHP'yi nasıl harekete geçirebileceğimize ve neler yapabileceğimize bakalım. PHP'yi göreve çağırmak için normalde HTML içinde bulunmayan etiketleri (tag) kullanırız, "<?PHP" ile başlayıp "?>" ile biten blok PHP'nin işleyeceği bloktur.

Peki PHP'ye neden ihtiyaç duyarız? PHP kullanarak statik HTML ile yapamayacağımız şeyler yapabiliriz. PHP bize sunucu tarafında çalışan bir programlama ortamı sunar. Matematiksel işlemlerden, veritabanı erişimine, grafik işlemlerinden, veri madenciliğine kadar pek çok şeyi mümkün kılar.

Eğer sunucu ile istemci arasında hızlı bir bağlantı varsa bilgisayarımızdan yerel olarak kullandığımız pekçok program tamamen sunucu üzerinde çalışacak şekilde yeniden tasarlanabilir. AJAX kullanımıyla da program oldukça akıcı hale gelir. Bunun pek çok örneği de var.

Bu arada bu işler için tek yol PHP değildir, başka yollar da var. PHP'nin yetersiz, yavaş kaldığı yerlerde, örneğin C ile hatta Assembly dili ile sunucu tarafı uygulamaları geliştirilebilir. Perl, Python, Ruby gibi diller de bu işler için yaygın olarak kullanılır.

PHP'ye alternatif bir de Coldfusion var. Hakkında çok fazla bilgim yok.

Veritabanı erişiminde de durum Apache ile PHP'nin iletişimine benzer. Apache PHP etiketini gördüğünde dosyanın işlenmesi için PHP'ye başvuruyordu. PHP de veritabanı işlemleri için veritabanı sunucusuna başvurur, üretilen sonucu alır, işler, ve Apache'ye aktarır.

Bu arada belirtmem gereken bir nokta var, Apache en sade kurulumda PHP'yi tanımaz. PHP ile iletişimini sağlamak için çeşitli ayarlar yapmak gereklidir. PHP de benzer şekilde en sade kurulumunda hiç bir veritabanı sunucusunu tanımaz, tanıştırmak için ayar yapmak gerekir.

Bu ayarlar özel yazılımlarla otomatik olarak yapılabilir. Apache+PHP+MySQL gibi paketler var. Tek kurulumla tüm ilişkilendirmeyi yapıp sistemi çalışır halde teslim ediyorlar. Ama ben teker teker kendim kurup elle ayarlamayı tercih ediyorum.

Örneği iyice pratiğe dökelim....

PHP ile veritabanı işlemi yapan bir web uygulaması geliştirmek istersek ilk olarak sunucuları yüklemememiz gerekecek. Önce Apache kurup, sonra PostgreSQL'i yüklerip en son PHP kurulumu ile sunucu tarafını hazır hale getiririz. Sunucu çalıştığımız bilgisayarın kendisi de olabilir. Yani aynı makine hem sunucu hem istemci olabilir. Eğer yerel ağda bulunan başka bir bilgisayarı sunucu yapmak istersek, bu sunucuya bir de FTP sunucusu kurmamız gerekecek.

Ben örneğimde istemci ve sunucunun yanı bilgisayar olduğunu varsayacağım.

Sunucu kurulumu tamamlandıktan sonra bir metin düzenleyicisine ihtiyacımız olacak. Aslında Windows üzerinde notepad bu iş için yeterli. Ama notepad'den daha iyi imkanlar sunan programcılara özel metin düzenleyicileri var. Bu programlar bize bazı kolaylıklar sağlarlar;

- Sözdizim yardımı yani syntax high-lighting; yazdığımız metni her an inceleyip komutları ayrı renk, parantezleri yarı renk, yorum satırlarını yarı renkte gösteriler. Bu bize çok büyük bir kolaylık sağlar.
- Bazı programların komutları tamamlama özelliği vardır, leb deyince leblebeyi anlarlar yani :)
- If-Else, Switch-Case gibi sık kullanılan program bloklarını kolayca koda ekleyebilirler.
- Bütünleşik yardım sistemi sunarlar. İmleç bir komutun üzerindeyken yardım istendiğinde o komutun manuel sayfasını açarlar.
- Bütünleşik FTP istemcisi barındırırlar, sunucuya başlanıp bir php dosyasını çekerler, istediğiniz düzenlemeyi yaparsınız, dosyayı FTP'ye koyarlar.

Daha pek çok kolaylık sayılabilir. Bunlar aklıma ilk anda gelenler. Tüm özelliklerden vazgeçebilirim ama sözdizimi yardımı olmadan çok fazla hata yapıyorum ben.

DZSoft PHP Editor, PHP Expert Editor gibi programlar var Windows için. Ben iki örnek verdim ama onlarca var piyasada, bazıları ücretsiz ve gayet iyi programlar. Mac için ne var bilmiyorum. GNU'da ise yüzlerce editör var, hepsi özgür yazılım, hepsi ücretsiz.

Metin düzenleyicimizi seçtikten sonra PHP ile programlamaya başlayabiliriz. Benim genelde kurulumdan sonra ilk yaptığım şey phpinfo() komutu ile sistemi test etmek...

Yani önce metin düzenleyicisinde şöyle bir program yazıyorum;

Kod:
<?php
phpinfo();
?>

Sonra bunu Apache kurulumunu nereye yaptıysam oradaki htdocs dizini altına info.php olarak kaydediyorum* ve Firefox'u açıp localhost yada 127.0.0.1 yada bilgisayarın IP adresini giriyorum. (Sunucu başka bir bilgisayarsa IP adresini girmek gerekir)

Karşıma PHP bilgi sayfası çıkıyor ve isteğim tüm bileşenlerin yüklü olduğunu görüyorsam (veritabanı bağlantısı gibi) yoluma devam ediyorum. Sorun varsa gidermeye çalışıyorum.

Bu aşamada en yaygın sorunlar, Apache'nin HTTP kök dizini ayarlarındaki hatalar, Apache ayar dosyasında PHP ile ilgili ayarlardaki hatalar, PHP'nin veritabanı sunucusu ayarları ve yerelleştirme (localization) hatalarıdır.

PHP ve Apache ikilisi sağlıklı çalışıyorsa ikinci basamak PHP ile PostreSQL bağlantısını sınamaktır. Veri tabanı sunucusu ilk kurulumda örnek bir veritabanı ile gelir. Bu veritabanına bağlantı yaparak bağlantımızı sınayabiliriz. Ben genelde sisteme bir de veritabanı sorgu sistemi kuruyorum. Bu sistemler iki çeşit olabilir, (1) PGAdmin, SQLMaestro çalıştırabilir (exe) programlar (normal yükleme yapılan programlar) (2) PHPMyAdmin gibi PHP tabanlı, Apcahe htdocs altına kopyalanıp, tarayıcı üzerinden çalışan sistemler. Bu sistemler PHP kullandıkları için eğer veritabanına bağlanabiliyorlarsa PHP+SQL sistemi çalışıyor demektir.

Böyle bir programı kurduktan sonra o program içinden önce bir veritabanı sonra bu veritabanı için bir tablo oluşturarak devam ediyorum.

MySQL için;
Kod:
<?php
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    or die('Could not connect: ' . mysql_error());
echo 'Connected successfully';
mysql_select_db('my_database') or die('Could not select database');
?>

PostgreSQL için;
Kod:
<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=mary")
   or die("Could not connect");
echo "Connected successfully";
pg_close($dbconn);
?>

Eğer bağlantı başarılıysa veritabanı oluşturaya ve sorgulamaya geçiyorum. Aslında bunları yazmak isterim ama çok gereksiz bişey olucak zira Internet bunları anlatan site dolu... PHP ve veritabanı konusunda biraz daha ilerlediğinde veritabanı tasarımı, güvenlik, kod optimizasyonu vs. konularda konuşuruz. Temel konularda çok sayıda kaynak var zaten.

Benim önereceğim kaynak ise www.php.net

PHP'nin başı sonu herşeysi burada... http://id2.php.net/docs.php

İster bilgisayarına indir, ister siteden oku... Ben Extended HTML sürümünü öneririm. Ben ne öğrendiysem oradan öğrendim. Çok az undocumented şey var, onlar da ilk günlerde çok gerekli değil... Hatta belki yeni manuel sürümlerine dahil edilmişlerdir.

Bir de phpfreaks.com var. Uzun zamandır bakmıyordum, formatı değişmiş. Buradan da faydalanabilirsin.

Ayrıca PHP konusunda takıldığın yerde ben de yardımcı olmaya çalışırım. Bu yazıda da açıklık getirmemi istediğin yer varsa bildir.

Grafik tasarımı konusundaki soruna gelelim; Sen tabloyu nasıl çervelemişler, etrafına ve içine nasıl renk ve grafik vemişler onu mu soruyorsun, yoksa bu grafik nasıl yapılır, nasıl üretilir onu mu soruyorsun anlayamadım.

Tahmin ettiğin gibi Photoshop, GIMP gibi programlarda yapılabilir. Grafiğin nasıl yerleştirildiğini öğrenmek için html kaynağına bakabilirisin. Photoshop'ta nasıl üretildiğini öğrenmek için de Google'dan PS tutorialleri arayabilirsin.

HTML'de tablolara ve CSS konusunu biraz bilmen yeterli bunu yapmak için. Photoshop kısmı ise daha kolay... Buradan nasıl yazacağımı bilemedim ama... :) İstersen sana çok basit bir tablo yapıp en sade haliyle gönderebilirim. Yaparken ekran görüntüleri de alıp tutorial haline dönüştürebilirim. Ama eminin bu konuda da binlerce tutorial vardır.

Örneğin;
http://www.sitepoint.com/article/design ... -photoshop
http://www.allwebdesignresources.com/we ... ntbox.html

Ama dediğim gibi, teklifim hala açık... Bunlar kesmedi dersen, bir örnek yaparım.

Dreamweaver ve Access konusuna gelince... Bence ikisini de unut... Aslında unut değil başla bişey demem gerek ama ağır olacak...

HTML'yi iyice öğrenmeden asla Dreamweaver, Frontpage vs. kullanma... Önce elle yazmayı öğren... Sonra gerek duyarsan bakarsın böyle şeylere...

Access yerel veritabanları için kullanılan bir program. VisualBasic felan kullanarak veritabanı uygulaması geliştirebilirsin. Çok iyi bildiğim ve hiç sevmediğim şeyler. Sertifikam bile var bu salak şeyler üzerine... Niye aldım hiç sorma...

Neyse... Özetle ben herşeyin önce manuel yolunu öğrenmek gerek diyorum... Şuradan template, oradan kod parçası aşırıp web uygulaması geliştirdim diye gezen vatandaşlardan olmamak lazım.



* Böyle bir dosyayı, halka açık bir sunucu üzerinde asla bırakmamak gerekir. phpinfo() komutu kötü niyetli kişiler için sistem hakkında çok güzel bilgiler sağlar.
 
Oktay Bey ne diyeyim ansiklopedi gibi bilgi olmus, tesekkur ederim kafamdaki bir cok soruya cevap oldu. Hehe keske Turkiyede olsaydiniz :) Ama sizin acinizdan daha iyi benden olabildigince uzak durmak :p

http://www.wampserver.com/en/download.php

diye bir paket buldum. Saniyorum benim isime yarayacak bir paket bu. Galiba Netbeans, yada JCreator gibi programlardada syntax'i kontrol ederecektir. (En azindan Javada oyleydi, PHP oyle ise ne guzel alistigim bir sey en azindan :) )

Yukaridaki paketi kurup kurcalayacagim. Daha sonra buyuk ihtimalle ayarlarindan bir seyleri beceremem, zaten sizin basinizi bolca agritirim.

Fakat bir sey soracagim. Her ne kadar siz kodu elle yazmayi savunsanizda, mesela isin tasarim kismini DW ile halletsem ve DW icine <?php ?> yapip PHP ile ilgili olan kismimi (mesela cok basit soyluyorum, DW ile bir Text Area yazsam, bir Submit butonu yapsam, daha sonra yine cok basit soyluyorum Access'i kullanarak bu text area'ya yazilan seyleri veri tabanina aktarsam) elle kod seklinde girsem isin cok basitine mi kacmis olurum? En azindan ilk bas icin PHP uzerine daha cok yogunlasmami saglar, nitekim dedigim gibi DW'de usta olmasamda 3-5 sey biliyorum.

Her neyse, oturup bu kadar seyi erinmeden yazdiginiz icin tesekkur ederim. Ve yine dedigim gibi eminim ki beceremedigim bir kismi cikar, orada da yardiminiza basvuracagim.

Tekrarda tesekkurler.
 
Tunç, şu anda HTML, JavaScript, PHP, SQL vs. hakkında be kadar bilgin olduğunu bilemiyorum, o yüzden hiç bilmeyen biri için önerdiğim yol haritasını yazayım, sen istediğin noktadan devam et.

1. HTML öğrenin. Önceki mesajımda bahsettiğim syntax highlighting özelliği olan bir editör kullanmanızı öneririm. Basit web sayfaları yapın. Özellikle tablolara iyi hakim olun ve CSS öğrenin. HTML bilginizi iyi bir noktaya getirmeden diğer basamaklara geçmeyin.

Mesela bu forumdaki tablo yapısının bir benzerini yapamıyorsanız diğer basamaklar için erken demektir. Tabloları manuel olarak yapabilmenin önemini PHP ile veritabanından okuyup tablolara yazarken anlayacaksınız.

Tablolara ve CSS'ye gerçekten hakim olmak biraz zaman alabilir. Özellikle IE ve Firefox arasındaki farklardan dolayı zor zamanlar yaşayabilirsiniz.

Bu arada HTML'de renk kullanımı (HEX renk kodları), font boyutlandırma ve metin formatlama gibi konuları iyice öğrenin. Bunları daima CSS ile yapın.

W3C kurallarını öğrenin ve göz ardı etmeyin.

2. Photoshop veya GIMP yada başka bir grafik programını öğrenin. Bir resim nasıl slice'lara bölünür öğrenin. Tasarımlarınızda renk uyumuna dikkat edin. Müzikteki armoni gibi renklerde de armoni vardır. Bu konuda gözünüzü eğitin. Bu renk uyumu konusu tabloların, yazıların, zeminin vs. renkleri için de geçerli.

3. JavaScript öğrenin. JavaScript kullanarak HTML'in bazı kısıtlamalarını aşabilirsiniz. İlk bakışta karışık gelebilir, zira sözdizimi biraz tuhafdır ama JavaScript kolay ve eğlenceli bir dildir.

İlk üç aşamayı geçtiğinizde durağan (statik) sayfalardan oluşan web siteleri yapabilirsiniz. Bu sitelerdeki sayfa sayısı arttıkça PHP'ye gereksinimiz artacak. Diyelimki on sayfadan oluşan bir site yaptınız, ve her sayfanın en üstünde logo, bir altında menü, bir altında içerik kısmı ve en altta telif hakları bildirgesi olsun istiyorsunuz. Her sayfanın html dosyası içinde bu kısımlar olmalı... Hepsinde aynı... Tekrar... tekrar... En küçük bir değişiklik durumunda on dosyayı da teker teker açıp düzenlemek gerekecek. Önce frame'lerle bu sorunun üstesinden gelmeye çalışın. İleriki dönemlerde PHP ve AJAX ile angaryadan kurtulacaksınız.

Bu noktada "şunları baştan öğrensek ya" diye itiraz edenler olabilir... Bu işin enstürman çalmayı öğrenmekten çok farklı olmadığını söylemeliyim. Başlangıçta biraz sıkıcı gelse de temel çalışmalar iyi bir programcı/enstrümantalist olmanızı sağlar. İnanmayan denesin görsün... :)

4. PHP ile programlamaya başlangıç yapın. PHP algoritma kurma, fonksiyon kullanma, nesne kullanma açısında diğer programlama dillerinden farklılık göstermez. PHP bir web tasarım dili değildir. O yüzden programcı formasyonu ile adım adım öğrenin.

Sağdan soldan snippet kopyalayıp yapıştırmakla programcı olunmaz. O yüzden bir kitap alın ve sayfa sayfa takip edin. O'Reilly kitaplarını tavsiye ederim. Bu arada bir önceki mesajımdaki PHP Official Manual tavsiyemi de unutmayın.

Tüm fonksiyonları, tüm formatlamaları ezberlemeye çalışmayın ama arada manuele göz gezdirin. Elinizin altında nasıl fonksiyonlar olduğunu öğrenin. Bazen işlerinizi çok kolaylaştıracak fonksiyonlar gözünüzden kaçabiliyor. Yada okuduğunuz kitap, yada takip ettiğiniz tutorialler eski bir sürümü anlatıyor ve yeni özellikler gelmiş olabilir.

Bu aşamada problemlerinizi önce kendiniz çözmeye çalışın. Hemen google'a koşmayın. Bunun iki nedeni var, (1) çabalayarak ulaştığınız bilgi kalıcı olur (2) programcılık konusunda zihniniz bakir ise herkesten daha iyi bir yöntem bulabilirsiniz. Taklitçilerin bişey icad ettiği görülmemiştir.

Tabiki bu tüm dünyaya gözlerinizi kapatın demek değil. Boş zamanlarınızda, programcılık sorunlarına diğer programcılar nasıl çözümler getirmişler bakın. Daha iyi ve daha hızlı çözümler bulmaya çalışın.

Yazdığınız kodların hatasız ve hızlı olmasına dikkat edin. Aceleyle yazarken yaptığınız küçük bir hatayı tespit etmek çok zamanınızı alabilir.

Bazı programcılık kitaplarında KISS diye bir prensipten bahsederler. Keep it Simple, Stupid, yani kodu basit tut, anlaşılır tut... Fazla karmaşık hale getirme... Ben KISS prensibini kabul etmiyorum. Programcılıkta amaç hatasız, etkin ve mümkün olan en hızlı programı yazmaktır. Programlar insanlar okusun diye yazılmıyor, bilgisayarlar okusun diye yazılıyor. O yüzden ahmaklar okuyunca anlamıycak diye barok bir program yazmaktan çekinmeyin. Bazen bir tekerleme gibi görünen çok kompleks kodlar en iyi çözümdür. Tabi bu işi yokuşa sürün demek değil. Herşey için bilmece gibi kod yazın, kimse işin içinden çıkamasın demek değil. Ama daha etkin kod yazmak için zekanızı kullanmaktan çekinmeyin, basitlik görecelidir, anlamayan anlamasın. Corporate programcılar, yani programcılığı sevdiği için değil, mesleği olduğu için yapan ve şirketlerde programcılık yapan adamlar için geçerli prensipler "I like challanges, and I like to challange" diyen hacker programcılar için geçerli değildir. Bilişim sektörü para kazandırmaya başladığından beri çok sayıda ahmak bu sektöre girdi. Bunun sonucu olarak programcılıkta genel zeka seviyesi düştü. Müzikte de aynısı var işte. Bu tuzağa düşmeyin...

PHP'de biraz ilerledikten sonra başka dillere de göz atın. Birden fazla programlama dili öğrenmeniz hakimiyetinizi ve dilleri anlayışınızı geliştirir. Sıradan PHP programcılığı gelenekleri dışına çıkmak, diğer dillerdeki stratejileri PHP'ye uyarlamak programcılığınız için iyidir.

5. SQL öğrenmeye başlayın. Benim önerim PostreSQL kullanmanız. SQL sorgularını iyice öğrenin. Bazı SQL fonksiyonları veri sorgulamada çok büyük kolaylıklar sağlarlar. Eğer bir iş SQL sorgusu ile yapılabiliyorsa bu işi PHP'ye bırakmayın.

Veritabanı konusunda en önemli nokta veri tabanının tasarımıdır. Yani her bir tablo hangi verileri tutacak, alan büyüklükleri ve türleri ne olacak, tablolar arası ilişkilendirmeler nasıl yapılacak en kritik sorulardır. Veritabanı tasarımı çok ciddi planlama gerektiren bir konudur. Yanlışınızdan dönmeniz güç olabilir. Veritabanını tasarladınız, tabloları oluşturdunuz ve veri giren ve sorgulayan kodları yazdınız, bu aşamadan sonra veri tabanında yapacağınız tasarım değişiklikeri PHP kodlarını da değiştirmenizi gerektirecektir. Bu yüzden veritabanı tasarımı aşamasında çok dikkatli olun. Ben bu aşamada tüm sistemin algoritmasını kafamda kuruyorum. Bol bol not alıyorum. Kağıt üzerinde veri sorgulama senaryolarımı sınıyorum. Bu aşamanın önemini vurguluyorum ama öğrenilmesi güç bir şey değil. Basit veritabanlarından karmaşığa doğru ilerledikçe tasarım becerisi artıyor.

Veritabanından PHP ile sorgu yapma ve bunu HTML ile formatlamayı öğrenin. Zaten tablolara ve PHP ile döngü kurmaya hakim olduğunuz için bu sizin için kolay olacaktır.

İşin teorik kısmını burada noktalıyorum. Bu konularda sorularınız olursa bildiğim kadarıyla yardımcı olmaya çalışırım.

Bu arada Tunç, bana siz diye hitab etmene gerek yok, bey de demene gerek yok... Zaten yaşlanıyorum, komplekse sokma iyice...

WAMP, LAMP gibi paketler var. Ama dediğim gibi teker teker kendin kurmanı tavsiye ederim. Ben bir kere üşenip xampp kurdum, herşey otamatik, çok kolaydı ama sonra PHP update etmem gerekti ve hepsini kaldırıp kara düzen teker teker kurdum...

xampp web site: http://www.apachefriends.org/en/xampp.html

Bu Access'e neden taktın sen anlamadım... :) Boşver Access'i felan... Boş zamanlarında oyun diye solitare ve mine oynuyorsan bilemem tabi... :)

Eğer Dreamweaver'da herşeyi manuel olarak yazacaksan tamam, ama tasarım moduna geçip mouse ile tablo çizeceksen öğrenemezsin. Tablo yaparsın ama sonra PHP ile tablo üretmeye gelince en başa dönersin.

Veritabanı işlemleri için acele etme... Önce biraz işin temelini öğren... Yukarıda yazdıklarımı göz ardı etme. Kolay gelsin :)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Geri
Üst