PHP’de Oturum (Session) Yönetimi

PHP’de Oturum (Session) Yönetimi

PHP’nin olmazsa olmazı nerdeyse her php ile kodlanan sayfada bulunan oturum (session) yönetimi hakkında sizlere bilgi vereceğim. PHP’de 5 tane oturum yönetimi fonksiyonu vardır. Bu oturum yönetim fonksiyonları ve dökümantasyon bağlantıları:

Şimdi bunların anlatımına geçelim:

session_start()

Bu fonksiyonu oturumları kullanıcağımız her sayfanın başında belirtmeliyiz. Bu fonksiyon kullanıcı ilk defa giriyorsa kullanıcı için serverda bir dosya yaratır ve kullanıma hazırlar. Eğer daha önce girmişse onu kullanmaya hazırlar sadece. Her kullanıcı için uzun bir kod üretir. Bu kod sayılardan ve harflerden oluşur.

Eğer php.ini dosyasında otomatik olarak oturum başlatma seçeneği aktif değilse bu işlemi yapmak zorundayız. Oturum fonksiyonları eğer bir oturum açılmamışsa (session_start) hata verecektir. Her sayfanızın başında bu fonksiyonu çağırarak bu sorunu rahatlikla çözebilirsiniz. Öneri olarak, her sayfanızda çalıştırdığınız (include) sayfanız varsa bu sayfaya ekleyin.

session_register()

Sunucuda sizin için açılmış olan dosyaya bir değer yazar. Aynı cookie gibi işler ancak dosyalar zamana göre silinmez, kullanıcı oturumunu kapatınca silinirler. Kullanıcının oturum kapatması ise, o andaki tarayıcı programının oturumu kapatması ile olur. Çoğu tarayıcı, oturumunu tüm pencereleri kapandığı zaman kapatmış olur.

$isim değerini nazim olarak atayıp sonra da oturumumuza kaydettik.

Oturum değişkenleri ve değerleri cookie’ler gibi bir dizide tutulur. $_SESSION ($HTTP_SESSION_VARS) dizisidir. Bu dizinin normal bir diziden hiçbir farkı yoktur. Atamaları da buna benzer bir teknik ile yapabiliriz.

Önce $isim diye bir oturum bilgisi yaratıp sonra bilgiyi güncelledik.

session_is_registered()

Bir oturumun kayıtlı olup olmadığını veya bir oturum değişkeninin kaydedilip edilmediğini öğrenmemize yaran bir fonksiyondur.

“isim” oturumunun kayıtlı olup olmadığına bakar.

session_unregister()

Kaydettiğiniz bir oturum değişkenini silmek için kullanılır.

Daha önce oluşturduğumuz isim adlı oturum bilgisini siler.

session_destroy()

Kayıtlı olan tüm oturum bilgilerini yok eder.

Geçerli olan tüm oturum verilerini yok eder.

Şimdi ufak bir uygulama yapalım :

Giriş/Çıkış İşlemi

Günümüzde neredeyse her sitede bi üyelik sistemi var (forumu veya interaktif hizmeti olmamasina rağmen), bence çoğu site için gereksiz.
Basitçe bir giriş/çıkış sistemi yapalım. Bu iş için giris.php, cikis.php, index.php dosyalarimiz olacak.

Basit bir index sayfamız var. Burada giriş formu var. Bunu sitenizin istediğiniz köşesine koyabilirsiniz.
Ziyaretçi adını girip Giris’e tıkladığı zaman giris.php dosyasına post edilecek.

Şimdi ansayfamizi gelistirmemiz gerek. Giriş yapmış ziyaretçilere hitap eden kısımları küçük bir sargı ile çevreleyeceğiz.

İşte oldu, anasayfamız giriş kontorlu yaparak kullanıcı daha önce giriş yapmışsa tanıyor.

Çıkış dosyamız ise çok basit. oturumu öldürecek.

Hepsi bu kadar 🙂

Hazırlayan : Nazım Akmandil

PHP’de verileri sayfa sayfa göstermek!

Opsiyonların belirlenmesi:

Sayfanın en başında ayarlamalar açıklaması ile sayfadaki değişken kavramları belirleyelim. Bunlar, sayfa başına listelenecek kayıt sayısı ve gösterimde kullanacağınız değişimleri içeren değişkenler olabilir.

Kaynakların belirlenmesi:

Sayfalamak istediğimiz veri büyük ihtimalle mysql’den gelen bir sonuç kümesi olacaktır. Ancak bazen kendi oluşturduğumuz bir dizi de olabilir. İkisinde de sayfalama işlemimiz neredeyse aynı, farklı kısımları döküman boyunca ayrı ayrı belirterek inceleyeceğim zaten.

A) Kaynağımız çok boyutlu bir dizi ise:

Dizimizi örnek kullanım için rastgele sayılarla dolduracağım;

100×3’lük bir matris şeklinde dizimizi 1-100 arasında rastgele sayılarla doldurmuş olduk. Şimdi bu diziyi 10’ar 10’ar sayfalatalım. Öncelikle dizinin boyutlarını biliyor olmamız için dizinin en başta belirlenmiş yani elemanlarının girilmiş olması gerekir. Ardından

değişkeninde kayıt sayımızı tutacağız.

Kaynak mysql sonuç kümesi ise:

Herhangi bir vertabanına bağlandıktan sonra bir tablodaki verileri sayfalayarak listelemeye çalışalım. Öncelikle tablodaki veri sayısını belirleyelim :

Bu sorgu çıktısını fetch edip $kayit_sayisi değişkenine atalım :

Sayfa sayısının hesabı:

Şimdi kayıt sayısını, sayfanın başında belirlediğimiz sayfa başına listelenecek kayıt sayısına göre hesaplatalım.

Sondaki +1’in nereden çıktığını değerler verek çözebiliriz. Örneğin 5 kayıt varken 5/10 = 0.5, bunun alta yuvarlanışı 0 verir. 25 kayıt varken 25/10 = 2.5, alta yuvarlanışı 2. Bu değerlere 1 eklememiz gerekir.

Sayfa sayısı hatası ve çözümü:

Sayfa başına listelenecek kayıt sayısı değerinin tam katları kadar kayıt olduğunda küçük bir sorunla karşılaşıyoruz. Mesela 49 kayıt varken 5 sayfa olması gerekir. yukarıdaki hesapta da doğru olarak çıkar. Ancak 50. kayıtın da 5. sayfada bulunduğunu biliyoruz. 50 kayıt varken sayfa sayısı 6 çıkar. Bu hatayı göz ardı ederek yazdığımız scriptde 6 sayfa bulunur ve 6. sayfada hiç kayıt listelenmez. Bunu kontrol ettirerek sayfa sayısı değerinde oynamamız gerekir. Tam katı olduğunu o sayının, sayfa başına listelenecek kayıt sayısına olan modunun 0 olması ile anlarız ($kayit_sayisi%$liste=0 ise).

Bunu sayfa sayısını belirlerken ters kontrol ile eklenilmesi gereken 1’i kontrol ile ekleyerek de yapabiliriz.
Böylece doğru olarak sayfa sayısını hesaplamış olduk.

Sayfa kontrolü ve limitlerin belirlenmesi:

PHP kodumuzun en başında GET metodu ile gelen değişkenlerden “sayfa” değişkenini alacağız. Bu değişkenin içeriğinin geçerli olup olmadığını kontrol ettireceğiz;

Ters kontrol ile sayfa değişkeni ile gelebilecek hataları engellemiş olduk.
Bundan sonra alt ve üst limitlerimizi oluşturacağız.

Hemen değerler vererek aklımızda kurduğumuz alt limitin doğruluğunu kontrol ediyoruz :
2. sayfada isek 10 indisli kayıt’dan (yani 11. kayıttan) 19’a kadar olanların (aradaki kayıt sayısı 10’dur inanmayanlar saysin 🙂 ) görüntülenmesini bekleriz; 2*10=20, yanlış çıktı. Dizinlerdeki 0 indisinin olması gibi bir sorundur bu ve $sayfa’yı 1 azaltma ile giderebiliriz:

işlemi ile alt limiti belirlemiş oluruz. Üst limit de bu sayıya $liste kadar değer eklenmesi ile buluruz. Ancak eğer son sayfa ise ve limitimizin altında kayıt varsa (genellikle böyle olacaktır), üst limit olarak kayıt sayısını atarız.

Bunu yapmazsak çıktı verirken döneceğimiz for içerisinde fazla satırlar yazdırılacaktır.

Sonuçların seçilmesi ve gösterim :

A) Kaynağımız çok boyutlu bir dizi ise:

Dizide basit bir for döngüsü ile bunu halledeceğiz.

B) Kaynak mysql sonuç kümesi ise:

MySQL’de “limit” sayesinde belirli aralıktaki kayıtları seçebiliyorduk. Bunu kullanarak tek sql sorgusunda halletmiş olacağız.

Sorguda dikkat ettiyseniz üst limiti kullanmadık, çünkü mysql’de limit kavramının kullanımı “… limit baslangic,kac_kayit” şeklindedir. Başlangıcı hesaplamk yeterlidir. Bu sorguyu while ile fetch edip istediğiniz şekilde yazdırabilirsiniz. Eğer o andaki limit kadar kayıt yoksa var olanlar gösterilir.

Sayfa linklerinin gösterilmesi:

Önceki ve sonraki sayfaları sayfa ve sayfa sayısı değişkenlerine göre belirleyeceğiz. 2 küçük kontrol ile bunu halledebiliriz :

Örnek çıktı:

PHP’de fonksiyonlar

Fonksiyonlar, matematikteki gibi bazı işlem gruplarını sık sık kullandığımız alanlarda bize oldukça kolaylık sağlar. PHP’de de aynı şekilde, belli işleri yapan ve sonuçta bazı durumlara göre uygulamanın ilerleyişini değiştiren çoğu işlemde kolaylık sağlar. Bu fonksiyonları komplike uygulamaların sık tekrarlanan parçaları olarak görebiliriz.
Fonksiyon yapılarını, aslında PHP içinde farkında olmadan, sık sık kullanıyoruz. (Biz her ne kadar farkında olmasak da onlar hep fonksiyondu ve fonksiyon olarak kalacaklar 🙂

Örneğin, print() ya da echo(), php içerisinde en sık kullandığımız fonksiyonlardandır. “print();” yazarak bu fonksiyonu çağırmış oluyoruz ve bize bir sonuç veriyor. Fonksiyonlar parametre alarak çalışırlar.

Buradaki “Selam Gençler” metini, print(); fonksiyonunun almış olduğu parametredir. Tabi fonksiyonların aldığı parametreler sadece string türünde olmayabilir. Bu parametre değer, değişken, dizi, sabit veya başka bir fonksiyonun sonuç kümesi olabilir.

Bu örneğimizde, bir önceki örnekteki ile aynı sonucu verecektir, yani ekrana “Selam Gençler” yazdıracaktır.

PHP nin kendi içerisinde hazır olarak bulunan bu fonksiyon örneklerini çoğaltmak mümkündür (substr(), strlen(), mysql_fetch_array()…) Örnek olarak verdiğimiz bu fonksiyonlar parametre alarak çalışırlar. PHP nin parametre almadan çalışan fonksiyonları da vardır.

PHP yorumlayıcısı bu satırı (fonksiyonu) gördüğünde sayfanın fonksiyondan sonrasını dikkate almayacaktır.Yani çalışma işlemi bu noktada duracaktır.
Göründüğüz üzere exit(); fonksiyonu hiçbir parametre almadan çalışmaktadır. (phpinfo(), break()…)

PHP nin kullanılmak üzere bizlere sunduğu bu fonksiyonlara yerleşik fonksiyonlar adını verebiliriz.
Burada asıl amacımız, kendi fonksiyonlarımızı yazmak. Bu yüzden ilk olarak PHP nin yerleşik olan, kendi fonksiyonlarını yüzeysel olarak inceledik.
Temel olarak bir fonksiyon yazarken kullanacağımız komut dizisi şöyledir;

Vermiş olduğumuz bu fonksiyon örneği, parametreler kullanarak işlem yapmaktadır. Yerleşik fonksiyonlarda olduğu gibi, kendi yazdığımız fonksiyonlar da parametre almadan işlem yapabilirler.

Fonksiyonumuzu yazdıktan sonra artık kullanıma hazır hale gelmiş olur. Sıra yazmış olduğumuz fonksiyonu çağırmaya geldi.

Bu örneğimizde yazmış olduğumuz fonksiyonu parametre girmeden kullanıyoruz. Parametre alan fonksiyonumuzu ise şu şekilde çağırmalıyız;

Fonksiyon yazım kurallarını gördükten sonra, konunun daha iyi anlaşılması için artık çalışır bir fonksiyon yazabiliriz. Örneğin PHP nin yerleşik fonksiyonlarından biri olan print() fonksiyonunu Türkçeleştirelim. (ama sakın bu örneği uyguladıktan sonra yerleşik fonksiyonları tümünü Türkçeleştirmeye kalkmayın) 🙂

Bu fonksiyonu yazıp, yukarıdaki haliyle çağırdıktan sonra ekranda fonksiyona girmiş olduğumuz metini, yani “merhaba arkadaşlar” yazısını göreceğiz. $girilen_metin, fonksiyonumuza ait parametremiz. Bu parametre, ekrana yazdırmak istediğimiz metini tutuyor. Parametre olarak yazdığımız metin $girilen_metin değişkenine depolanıyor, böylece fonksiyonumuz kendi içerisinde kullanılmak üzere bir veriye sahip oluyor. Daha sonra bu veri fonksiyon içerisinde gerekli yerlerde kullanılıyor.

Önemli NOT : Fonksiyonlar içerisinde olan bütün olaylar içeride kalır. İçeride atanan değişkenler, İçerideki sorgulamalar ve diğerleri. Aynı şekilde bir fonksiyon dışarıdan verileri TEK yolla alır. Onlar da parametrelerdir. Bunun dışında bir fonksiyon içerisinde sabitler ve ortam değişkenleri dışında hiçbir şekilde dış değişkenler direk kullanılamaz. Bunun için $GLOBALS dizisi kullanılır. Dışarıda atanan bir değişkene bu dizi içerisinde atanmış bir eleman gibi erişebiliriz.

Ufak bir uygulama yapalım

Öyle bir fonksiyon yazalım ki kullanıcıdan aldığımız metnin karakter sayısını bulsun ve ekrana hem bu metni, hem de bu metnin kaç karakterden oluştuğunu yazdırsın.
İlk olarak kullanıcıdan alacağımız bilgi giriş sayfasını yazalım;

— uzunluk.html —

— uzunluk_hesapla.php —

Oldukça kolay değil mi? Uzunluk adında bir fonksiyon oluşturduk ve parametre olarak (girilen verileri depolaması için) $deger adında bir değişken belirledik. Daha sonra $deger değişkenimizin (bu değişkenin fonksiyonumuza ait parametremiz olduğunu söylemeye gerek yok sanırım) uzunluğunu bulabilmek için, PHP’nin yerleşik fonksiyonu olan strlen()’i kullandık. Bu değeri $kac_karakter değişkenine atadık. Böylece kullanıcıdan alacağımız değerin ($deger değişkeninin) uzunluğu artık, $kac_karakter değişkenimize depolanmış oldu.

Echo fonksiyonunu kullanarak bu verileri ekrana yazdırdık. İlk önce kullanıcıdan alarak $değer değişkeninde depoladığımız metini, ardında da metinimizin, $kac_karakter değişkeninde tuttuğumuz uzunluğunu.
Son olarak da “uzunluk($metin);” komutuyla fonksiyonumuzu çağırdık. buradaki $metin değişkeni (tahmin ettiğiniz gibi) uzunluk_gonder.htm dosyamızdan PHP sayfamıza POST metoduyla göndermiş olduğumuz string i tutuyor)

Parametrelere değer verilmezse?

Fonksiyonlar her sayfada kullanılacağı için fonksiyonlarımızı seçeneklere bağlı hale getirebiliriz. Eğer kullanıcı fonksiyona bir parametre göndermemişse fonksiyon sapıtabilir. Örneğin print() fonksiyonu kullanırken herhangi bir şekilde parametre kullanılmadan çağırılırsa fonksiyon boş değer döndürür (false değil NULL). Eğer fonksiyonunuz işlerinizde ölümcül bir işi yapıyorsa fonksiyonu kullanırken bunu denetleyebilirsiniz. Mesela;

Eğer bir parametre verilmezse fonksiyon programsal yanlış dönecektir. Kontrolle işlerimize devam ederiz.
Başka bir kullanımda; uygulamanın herhangi bir noktasında bir fonksiyon kullanılıyor ve işletilememesi uygulamanın hatalar getirmesine yol açıyorsa;

Şeklindeki kullanımla bu hataları önleyebilir veya uygulamanın başka yollarda devam etmesini sağlayabiliriz.
Gördüğünüz gibi parametrelere gelen değerleri geçerli olarak belirleyebiliyoruz. Bunun farklı bir kullanım alanı da şöyledir; fonksiyona gönderilen birden çok parametre sürekli farklı ayarlamalar yapıyor ve çok değişik kombinasyonlar çıkabiliyorsa, bu opsiyonların belirlenmemesi durumunda (yani parametrelerin boş olması durumunda) fonksiyonun kendimizce belirlediğimiz standart opsiyonlarda gitmesini sağlamak için fonksiyonu tanımlarken geçerli değerleri belirleyerek bu isteğimizi gerçekleştirmiş oluruz.

Hazırlayan: Sezgin Bilketay

PHP’de döngüler

Döngü Ne Demektir?
Döngüler bazı görevlerin bazı koşullar ile tekrarlanmasını sağlar. Mesela 1’den 100’e kadar ekrana sayılar yazdırmak istiyorsak 100 tane print kullanmayız. for veya while gibi döngülerle bu işlemi yapmamız çok çok daha kolaydır. Kullanım ve çalışma yapısına göre farklı döngüler vardır. Bunlar;

while Döngüsü

Bir koşul sağlanana kadar ya da bir koşulun sağlanmamasına kadar (while’a göre False verene kadar.) içeride belirtilen işlemlerin dönülmesini sağlar.

koşullar False olduğu zaman döngü biter. (0 = False)

for Döngüsü

Koşullar dışında bir koşulun başlama kriteri ve döngü ilerledikçe yapılacak değişimi de beltirmemizi sağlayan döngüdür.

Döngü dönerken bir sayaç tutulur. Bu sayaç değeri bu örneğe göre $i değişkeninde saklanır. $i=0 sayacımızın başlangıç değerini ifade eder. $i<10 koşulu için sayaç koşulun sağlanmasına kadar dönülecektir. $i++ ise döngü her dönüşünde sayaç değişkeninin nasıl değişeceğini ifade eder. Bu örnekte döngü her döndüğünde $i bir atrırılacaktır.

break

break bir döngünün bitmesini beklemeden döngüyü terketmektir.

Bu kodda döngü 0’dan 9’a kadar sayacaktır. Ancak aradaki kontrolde $i 5’e eşit olduğunda break ile döngü bitecektir.

continue

continue ise bir döngüde döngünün bir sonraki adıma geçmesini sağlarız.

Bu örnekte ise aradaki kontrolde, $i 3’ün katı değilse yani $i mod3 sıfıra eşit değilse döngünün bir sonraki adımına atlar. Eğer $i 3’ün katı ise devam eder ve $i’yi yazdırır. Böylece 1’den 100’e kadar 3’ün katı olan sayıları yazdırır. (tabi $i 3’den başlayıp atama işlemi $i=$i+3 yapılırsa da aynı iş yapılmış olur.)

PHP’de kontrol yapıları (if,else if,switch/case)

Kontrol Yapıları

Kontrol yapıları programların neredeyse her 5 kodundan birinde vardır. Çünkü kontroller şartlar değiştiğinde sonuçları değiştiren yapılardır. Eğer böyle bişey olmasa idi program diye birşey olmaz statik yapılar olurdu. Kontrol yapıları çok çeşitlidir. Ancak sık kullanılan 2-3 tanesini ele alacağım.

if Kontrolü

Basit bir yapıdır. Basitçe kullanımı:

şeklindedir. Koşullar gerçeklendiği sürece işlemler yapılacaktır.

if else Kontrolü

if kontrolüne koşulun olmadığı zaman da görev verilenidir.

if else if kontrolü

Bir if else kontrolünde else yani ilk koşulun sağlanmaması halindeki duruma bir if eklenirse yani üsttekilerin sağlanmaması ve burada tanımlanan koşulun sağlanması halidir.

switch / case Yapısı

switch / case yapısını çok sonuçlu olayları kontrol ederken kullanırız. Mesela bir olay sonucu $deg değişkeni 3 değer alabilsin (“1x”,”2x”,”3x”). Burada if’leri kullanmaktansa switch / case yapılarını kullanmak daha kısadır.

Kontrol yapıları aslında programlamada en sık kullanılan yapılardır. Farkında olmadan çok kez bu yapıları defalarca defalarca yazarız. Kullanımlarını, esnekliklerini iyi bilmek gerektiğini düşünüyorum.

PHP’de sabitler, server ve ortam değişkenleri

PHP Dışından Değişken Nasıl Gelir?

PHP’de işlerimizi çok kolaylaştıran bazı özel değişkenler vardır. Bu özel değişkenler olmasa php’de yapılabilecekler çok sınırlandırılırdı.
Mesela bir çerez kontrolü yaparken $_COOKIE dizisini kullanırız. Ya da bir betik dosyamızda hata kontrolü yaparken dosya ismini değişimlere rağmen koruyabileceğimiz değişkenler, kodun hangi satırında hata olduğunu tutan başka bir değişken vardır.

Şimdi bu değişkenleri; sabitler, php değişkenleri ve sunucu değişkenleri olarak üçe ayıracağız.

Sabitler

$ gibi degişken işareti almadan doğrudan kullanılır. Örneğin:

Sunucu Değişkenleri

Sunucu değişkenlerini bir ortam değişkeni olan $_SERVER dizisinin indisleri olarak düşünürsek örnek olarak şu şekilde kullanacağız:

Ortam Değişkenleri

Ortam değişkenleri ise tahmin ettiğiniz gibi doğrudan değişken olarak kullanabilirsiniz.

Bu değişkenleri çok çeşitli scriptlerde görmek mümkün. Dediğim gibi bu değişkenleri kullanamamak php’nin olanaklarını çok fazla biçimde kısıtlamak hatta neredeyse php’yi kullanılmaz hale getirmektir. Çünkü php gibi dinamik bir dil kullanmadaki ana amaçlardan biri, kullanıcının hareketlerine tepki veren uygulamalar yazmaktır. Kullanıcı tepkisini ise bu değişkenler yardımı ile belirleriz.

PHP nedir? PHP’ye nereden ve nasıl başlamalı?

PHP Nedir?

PHP sunucu tabanlı html içine gömülmüş (html-embed) bir betik(script) dilidir. Daha açık bir anlatım ile, internetteki forum, anket, oyunlar, mesaj tahtaları gibi kullanıcının aktif bir şekilde müdahalede bulunduğu yapıları oluşturmaya yarayan web programlama dillerinden biridir. PHP ile inanılmaz yetenekli, yazılımsal sayfalar oluşturabilirsiniz. Örnek olarak burada dökümanlara puan verebiliyor, kaç kişinin okuduğunu görebiliyorsunuz. Veya forumda istediğinizi yazıp cevaplar alabiliyorsunuz. Bunlar dinamik olarak kullanıcının hareket/isteklerine göre değim gösteriyor. Bunlar php ile yapabileceğiniz basit uygulamalar. Çok daha karmaşıklarını da görmüşsünüzdür/yapabilirsiniz. PHP dili C, Java ve Perl dilleri üzerinde geliştirildiğinden bu dilleri bilen arkadaşların php’yi öğrenmeleri zor olmayacaktır.

PHP’ye Nereden Ve Nasıl Başlamalı?

PHP’ye bence başlamanın iki yolu var. Eğer zaman çok önemli değilse, internetteki makaleleri inceleleyerek bol bol basit ve fonksiyonel kodlar yazmak. Bu sayede kodlardaki hatalarla uğraşırken, farklı yöntemler ararken inanılmaz bir pratik ve php bilgisi kazanırsınız. Kendiniz kodlar üreterek de php’yi daha iyi sindirerek öğrenmiş olursunuz.
İkinci yol ise zamanı kısıtlı ve/veya bir an önce öğrenmek isteyenlere… Öncelikle bir kitabevine gidip 1-2 saat php kitaplarını inceleyin. Aralarında en güzel ve en kolay öğreneceğinizi düşündüğünüz kitabı alın. Aslında kapağını sevmeniz bile yeterli. Zira hepsinin içeriği hemen hemen yakın ve giriş seviyesi için teorik bilgi dışında çok fazla uygulama içermiyorlar. Kitaptakileri teker teker uygulayın. Örnek kodları yazarak işin püf ve teorik genel kısımlarını öğrenmiş olursunuz. Bundan sonra internetteki makaleleri okuyarak php’nin içine girebilirsiniz. Kitapta öğendikleriniz php’nin “p”sini bile oluşturmaz. Çünkü php açık kaynak bir dil olduğundan, sürekli yeni kütüphaneler, her yeni kütüphane içinde yüzlerce yeni fonksiyon gelir. Şu anda php manual’daki fonksiyonların sayısı benim göz kararım ile 3-5 bin civarındadır. (Sadece listeye bir göz atmıştım.) Bu fonksiyonların hepsini öğrenmek için ne beyin dayanır ne de göz. İşinize yarayacak kütüphaneleri ve fonksiyonları öğrenmeniz için php ile neler yapılabilir? sorusunun yanıtısı iyi bulmanız gerekir.
PHP ile önereceğim kısımlar şimdilik bunlar; her iki yolda da interneti iyi kullanıp php manual’ı iyi kullanmanızı öneririm.