Forum Aski - Türkiye'nin En Eğlenceli Forumu
 

Go Back   Forum Aski - Türkiye'nin En Eğlenceli Forumu > Webmaster Dünyası > Webmaster Genel
Kayıt ol Yardım Kimler Online Bugünki Mesajlar Arama

canlı casino siteleri canlı casino siteleri sagedatasecurity.com casino siteleri takipçi satın al
porno diyarbakır escort bayan antalya escort malatya escort

PHP hata mesajı okuyabilmek

Webmaster Genel kategorisinde açılmış olan PHP hata mesajı okuyabilmek konusu , ...


Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Arama Stil
Alt 12.09.2014, 11:51   #1 (permalink)

Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
Standart PHP hata mesajı okuyabilmek

PHP hata mesajı okuyabilmek

PHP programlama dili de, diğer bir çok programlama dilinde olduğu gibi, herhangi bir hata durumunda kullanıcıyı elinden geldiğince bilgilendirir. Elinden geldiğince diyorum çünkü bir tek hatayı çözmediği kalır geriye, daha ne yapsın? Hatanın bulunduğu satırdan tutun da, tam olarak ne hatası olduğu, neyi unuttuğunuz ya da neyi fazla koyduğunuzu gibi temel parametreleri size hata mesajı halinde gösterir. Peki bizler, php web programcıları olarak bu hata mesajlarını ne kadar okuyabiliyoruz?
Aslında php geliştiricilerinin çok büyük bir sorunudur hata mesajı okumak. Hemen hemen her platformda geliştiricilerin karşılaştıkları hatalar ile ilgili mesajlarını görürsünüz. Hata mesajını yazarlar ve sorarlar, nerede hata yaptım diye… Oysa ki yapmaları gereken sadece php motoru tarafından kendilerine söylenen hata mesajını okumaktır. Okudukları zaman elleriyle koydukları gibi bulurlar hatanın sebebini.. Dilerseniz en çok karşılaşılan hatalara örnekler ile değinelim biraz.
Hata mesajı örnekleri

Kod:
<?php 
  
echo 'Merhaba Dünya' 
  
?>
Yukarıdaki kodları gördüğünüz an hemen söylemişsinizdir aslında satır sonunda noktalı virgül unutulduğunu. Ama bunu göremeyip, üstelik kodlara ya da hata mesajına bakmadan çeşitli platformlarda sorular soran arkadaşlar var. Bir de bunun hata mesajını yazalım isterseniz:

Kod:
Parse error: syntax error, unexpected end of file, expecting ‘,’ or ‘;’ in C:wampwwwhata.php on line 5
Gördüğünüz gibi, mesaj çok açık. İngilizce bilmeseniz bile, google translate kullanarak, bunun bir ayrıştırma hatası olduğunu söylebiliriz. Ancak hata mesajını okurken de dikkat etmek gerek. Öyle ki, mesajda 5. satır olduğu yazıyor ama aslında demek istediği hatanın 5. satırda olduğu değil. 5. satırdaki işlemi yapamadığını, çünkü öncesinde bir söz dizimi hatası olduğunu söylüyor php bize… Ve hatta olası eksiklerin virgül ya da noktalı virgül olabileceğini de söylemeden edemiyor.
Yukarıdaki örnek bile yeterli aslında hata mesajının nasıl okunması gerektiğini göstermeye ama bir örnek daha verelim isterseniz.,

Kod:
<?php 
  
echo 'Fatih'in iki farklı adı var.'; 
  
?>
Yukarıda ki kodlardan alacağınız hata mesajı da aşağıdadır:

Kod:
Parse error: syntax error, unexpected ‘in’ (T_STRING), expecting ‘,’ or ‘;’ in C:wampwwwhata.php on line 3
Hemen hemen bir önceki ile aynı hata mesajı. Fakat burada nokta atışı yapmış ve hatanın satır üçte olduğunu söylemiş. Aslında biraz incelediğinizde hiç bir fark olmadığını görürsünüz. Mesajda bize, ‘in’ diye birşey olamayacağını, bunun bir hata olduğunu söylüyor. Çünkü Fatih kelimesinden sonra tek tırnak var ve bizim sevgili php motorumuz tek tırnaktan sonra nokta, virgül ya da noktalı virgül arıyor. Göremeyince de soruyor, in yerine virgül ya da noktalı virgül mi koymak istedin acaba diye..
Biraz da insanı çıldırtan “Notice” damgalı hata mesajlarına bakalım. Aslında bunlar hata mesajı değil, bildirimdir. Ve genelde geliştirme aşamasında php geliştiricisini uyarmak için gösterilir. Tabi siz son kullanıcıya sistemi sunduğunuzda hata mesajı göstermeyi kapatmıyorsanız o zaman başka Bir tane notice damgalı hata mesajını örnekleyelim:

Kod:
<?php 
  
echo $_GET['dizi']; 
  
?>
Kodlara baktığınızda hiç bir problem yok gibi duruyor değil mi? Ancak kocaman bir notice damgalı hata mesajı sizi bekliyor olacak çalıştırdığınızda:

Kod:
Notice: Undefined index: dizi in C:wampwwwhata.php on line 3
Gördüğünüz gibi, tanımsız index ‘dizi’ şeklinde bir uyarı mesajı aldık. Neden böyle bir mesaj aldığımızı yorumlayalım hemen. Çünkü adres çubuğundan gelmesini beklediğimiz parametreyi ekrana yazdırmak istiyoruz ve $_GET global dizisi içinde adres çubuğundan herhangi bir parametre gönderilmediği eleman olmaz. Hata mesajımızda da bize bunu söylüyor aslında, ‘dizi isminde bir indeks tanımlanmamış’ diyor. Fakat hata.php?dizi=fatih dersek ekrana hatasız bir şekilde fatih yazdığını görüyoruz. Öyleyse bu hatadan kurtulmak için ne yapmamız gerekiyor? Doğru kod şudur arkadaşlar:

Kod:
<?php 
  
echo isset($_GET['dizi']) ? $_GET['dizi'] : ''; 
  
?>
Yukarıdaki kod ile, eğer dizi indeksi tanımlıysa ekrana yazdır, değilse yazdırma dedik. Kodu çalıştırdığımızda da göreceğimiz üzere ilk etapta ekrana hiç bir çıktı vermeyecektir. Ancak hata.php?dizi=fatih dediğimizde fatih değerini ekranda görebiliriz. Yukarıdaki kod size yabancı geldiyse hemen aşağıdaki kodun ikiz kardeşi olduğunu söyleyelim:


Kod:
<?php 
  
if(isset($_GET['dizi'])){ 
    echo $_GET['dizi']; 
}else{ 
    echo ''; 
} 
  
?>
Fazlaca hata mesajı ve bu mesajların ne işe yaradığı ile ilgili yazılabilecek sayfalarca cümle vardır ancak biz burada keselim. Çünkü mürekkep biter, yazacaklar bitmez.
Sonuç olarak;
Hata mesajlarının sonundaki satır sayısını değil, lütfen hata mesajlarını okuyalım. Çünkü çözüm her zaman hata mesajında gizlidir. Tam tersi bir durum size sadece vakit kaybettirir. 6 dakikada yazdığınız kodun bir hatası için 6 saat ve belki daha fazla zaman harcamak istemiyorsanız, 6 saniye daha verin ve mesajı dikkatlice okuyun.

__________________
Kadının gücünü
Hafife Alma.








Her Yol Sana Çıkar
Galatasaray !


EbruLi isimli Üye şimdilik offline konumundadır Alıntı ile Cevapla
Cevapla

Yukarı'daki Konuyu Aşağıdaki Sosyal Ağlarda Paylaşabilirsiniz.


Yetkileriniz
Konu Açma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Forum hakkında Kullanılan sistem hakkında
Forumaski paylaşım sitesidir.Bu nedenle yazılı, görsel ve diğer materyaller sitemize kayıtlı üyelerimiz tarafından kontrol edilmeksizin eklenmektedir.Bu nedenden ötürü doğabilecek yasal sorumluluklar yazan kullanıcılara aittir.Sitemiz hak sahiplerinin şikayetleri doğrultusunda yazılı, görsel ve diğer materyalleri 48 saat içerisinde sitemizden kaldırmaktadır. Bildirimlerinizi bu linkten bize yapabilirsiniz.

Telif Hakları vBulletin® Copyright ©2000 - 2016, ve Jelsoft Enterprises Ltd.'e Aittir.
SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.
yetişkin sohbet chatkamerali.net

Saat: 04:00