19 Aralık 2011 Pazartesi

PHP Hataları ve Çözümleri

Herhangi bir programlama dilini öğrenmeye ve kullanmaya başlayanlar mutlaka hatalarla karşılaşırlar ve bu hataları çözerek tecrübe kazanırlar. Ama daha önce hiç karşılaşılmayan hatalar mutlaka kafalarda bir soru işareti bırakacak ve çözmek için bazen saatlerinizi harcayabileceksiniz. Bu durumda en kısa yol daha önce bu hatayla karşılaşmış kişilerden alacağınız tavsiyelerdir.



Php diline yeni başlayan junior develepor arkadaşlarımız için küçük bir hata rehberi oluşturalım. Bu rehber en çok karşılaşabileceğiniz hataları ve çözüm yollarını içerecektir.
Syntax Errors (Sözdizimi-Yazım Hataları)
Syntax hataları genelde fonksiyonların adını tam yazamama, “;” unutma, parantez kapamayı unutma veya fazladan karakter ekleme şeklinde karşımıza çıkar. Bu gibi durumlarla az karşılaşmak için parantez açıldığında mutlaka hemen kapatılmalı, tırnaklar içerisinde string kullanılacağı zaman ilk önce tırnaklarımı kapatıp daha sonra içine metnimizi yazarak kullanmalıyız. Genelde sözdizimi(yazım) hataları karşımıza “syntax error” veya “unexpected …” şeklinde çıkar ve hatanın oluştuğu satır numarasını verir. Çözülmesi en kolay ama çok sık karşılaşılan hata türüdür.
Runtime Hataları
Fatal error: Call to undefined function my_function() in /home/mysite/public_html/test.php on line 2
yukarıdaki hata kodu “test.php” isimli php dosyamızın 2.satırında kullanmak istediğimiz “my_function()” isimli fonksiyonun tanımlanmadığını yani böyle bir fonksiyonun olmadığı uyarısını vermektedir. Böyle bir durumda kullanıcağınız fonksiyonun adını doğru yazdığınızdan ve fonksiyonun gerçekten varolduğundan emin olun.
Fatal error: Cannot redeclare my_function() (previously declared in /home/mysite/public_html/runtime.php:14) in /home/mysite/public_html/runtime.php on line 26
Yukarıdaki hata kodu; “runtime.php” isimli php dosyamızda 26.satırda tanımlamak(oluşturmak) istediğimiz “my_function()” isimli fonksiyonun aynı dosyada 14.satırda zaten tanımlandığını ve oluşturulduğunu, bu yüzden tekrar oluşturamacağımızı söylüyor.
Warning: move_uploaded_file(/home/mysite/public_html/upload/my_cat.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/mysite/public_html/upload.php on line 49
Php de bir dosyayı upload etmek için kullanılan komut move-uploaded file. Daha önce bloğumuzda bu konuya değinmiştik. Ayrıntılı bilgiye burdan ulaşabilirsiniz.Bu hatamızda dosya upload etmeye çalışırken gördüğümüz bir hata. “Permission denied” hatası upload etmek istediğimiz dosyayı yüklemeye çalıştığımız klasörün kullanıcı izinlerinin, uploada (yani dosya yazmaya) elverişli olmadığını belirtmektedir. Bunun için yapılacak tek şey upload etmek istediğimiz klasörün “izinlerini” kontrol etmek ve “777″ olmasını sağlamak.
PHP Warning: include(foo.php): failed to open stream: No such file or directory in /home/mysite/public_html/test.php on line 2
include(“dosya.php”); komutu, bulunduğumuz php sayfasına “dosya.php” yi include yani içine aktarmak için kullanılır. İçe aktaracağımız dosyadaki php komutları sanki çağrıldığı sayfadaymış gibi çalışır. Yukarıdaki include hatasında da foo.php dosyasını include etmeye çalışıyor ve bunu başaramadığı için “böyle bir dosya yada klasör bulunmamaktadır.” hatası veriyor. Böyle durumlarda çağıracağımız dosyanın adını kontrol edip, dosyanın bulunduğu konuma da dikkat etmemiz gerekiyor.

Hiç yorum yok:

Yorum Gönder