PHP söz dizimi kontrolü

Dün yayında olan bir PHP projesinde çeşitli değişiklikler yapmak durumunda kaldım. Test etme şansım olmadığından dosyanın bir kopyasını sunucuya atarak sunucu üzerinde test etmeye çalıştım. Gönderdiğim dosyayı çalıştırmayı denediğimde bomboş bir ekranla karşılaştım. Güvenlik nedeniyle sunucu, hata mesajlarını ekrana basmayacak şekilde ayarlanmıştı. Hata kayıtları da benim yetkim olmayan bir yerde duruyordu. Bir şekilde hatanın nerede olduğunu bulmam gerekiyordu. Çok fazla değişiklik yaptığım için eski dosya ve yeni dosya arasında bir karşılaştırma yapmak uzun sürecekti. Bir kaç kontrol yapmaya karar verdim.

İlk olarak söz dizimi kontrolü yaparak dosyanın PHP tarafından işlenebildiğinden emin olmak istedim. Bunun için PHP’yi komut satırından “-l” parametresi ile çalıştırıp ikinci parametre olarak dosyanın ismini verebilirsiniz. Eğer PHP klasörünüz PATH değişkeninde tanımlandıysa dosyanızın olduğu klasörde komut satırı açarak php -l dosyaismi.php şeklinde söz dizimi kontrolü gerçekleştirebilirsiniz. PATH değişkeninde tanımlı değilse php.exe’nin tam yolunu girmeniz gerekebilir (Örneğin: c:\php\php.exe -l dosyaismi.php)

Bu komut PHP dosyanızı kontrol edecek, bir hata bulamazsa sonlanacak ya da bulduğu ilk hatada hatanın olduğu satır numarasını ekrana basarak sonlanacaktır. İlgili hatayı düzelttikten sonra komutu tekrar çalıştırarak, dosyayı tekrar kontrol edebilirsiniz. Bu şekilde hiç söz dizimi hatası kalmayana kadar kodu tekrar tekrar çalıştırarak dosyanızı hatalardan arındırabilirsiniz.

Bu şekilde problemimi giderip dosyayı sunucuya tekrar yükledim. Problemim giderilmişti.

“Ambiguous match found” hatası neden kaynaklanır, nasıl düzeltilir?

UYARI!
Bu yazı güncelliğini yitirmiştir. Okumaya devam etmeyi planlıyorsanız lütfen yazıdaki bilgilerin artık geçerli olmayabileceğini göz önünde bulundurun.

ASP.NET ile uygulama geliştirirken çok ilginç bir sorunla karşılaştım. Biraz uğraştıktan sonra sorunu çözdüm. Şansıma çok büyük bir proje değildi ve yine şansıma küçük bir değişiklik yaptığım sırada karşıma çıktı. Bu yüzden problemi çok daha kolay tanımlayabildim ve bu da çözüme daha kolay ulaşmamı sağladı.

Problem derleme sırasında karşınıza çıkmıyor. Proje sorunsuz bir şekilde yapılandırılıyor fakat problemin olduğu web sayfasını açmak istediğinizde ilk satırda belirsiz eşleşme (Ambiguous match) bulunduğu ile ilgili bir hata mesajı alıyorsunuz ve sayfa açılmıyor. Aşağıdaki ekran görüntüsüne benzer bir görüntü ortaya çıkıyor.

Bir süre webde araştırınca sorunun neden oluştuğunu, nasıl çözüleceğini burada buldum. Temel olarak problem, web sayfasında tanımlanmış bir kontrol ile aynı isme sahip bir değişken tanımlandığında ortaya çıkıyor. C# büyük/küçük harf duyarlı bir dil olsa da nedense bu durumda düzgün çalışmıyor ve hata üretiyor. Yani sayfanızda “Metin” isimli bir kontrol bulunuyorsa “metin” isimli bir değişken kullanmamanız gerekiyor.

Karşımıza açıklayıcı bir hata mesajı çıkmadığı için bu davranışın bir bug olduğunu düşünüyorum. İşin ilginç yanı konuyla ilgili bulduğum makale 2006 yılına ait, yani en az 5 senedir bu problem var ve Microsoft tarafından konu ile ilgili bir geliştirme/açıklama/düzeltme söz konusu değil…

VMWare’e geçit vermeyen FixCamera.exe’yi öldürün!!!

İş yerinde kullandığım Orite RN3700 webcam ile beraber gelen kurulum dosyaları, bilgisayarın açılışında çalışmak üzere FixCamera.exe adlı bir uygulamayı da beraberinde kuruyor. Ne işe yaradığını bulamadığım bu uygulama VMWare uygulama dosyaları ve kurulum dosyaları ile çakışıyor ve ne uygulama dosyalarının, ne de kurulum dosyalarının çalışmasına izin veriyor. VMWare’i ya da VMWare kurulum dosyalarını çalıştırmak istediğinizde, hiç bir hata mesajı almıyorsunuz ve çalıştırmak istediğiniz uygulama da çalışmıyor. Görev Yöneticisinde de VMWare ile ilgili bir iz göremiyorsunuz. Benim gibi olayın FixCamera.exe’den kaynaklandığını bilmiyorsanız bir çok VMWare kaldırma/yeniden kurma vb işlemleri yapmaya çalışabilir, değerli vaktinizi boşa harcayabilirsiniz.

Bir çok başarısız yeniden yükleme denemesinden sonra, probleme farklı bir açıdan yaklaşıp, çalışan diğer uygulamalarla çakışma ihtimalini göz önüne aldım ve görev yöneticisini açıp, bilgisayarın çalışmasını engellemeyecek, çalışan harici uygulamaları teker teker sonlandırmaya başladım. Her uygulamayı sonlandırdıktan sonra VMWare’i tekrar çalıştırmayı deneyim. FixCamera.exe’yi sonlandırdıktan sonra VMWare çalıştı. Mevzuyu hemen yetkili mercilere taşıyıp, yalnız olup olmadığımı kontrol ettim ve yalnız olmadığımı gördüm. Benim gibi bu dertten muzdarip bir kaç kişi daha varmış. Ben de konuyla ilgili Türkçe bir çözümün de internetlerde yer alması için bu yazıyı yazayım dedim.

FixCamera.exe’yi bilgisayarın açılışından gönül rahatlığıyla kaldırabilirsiniz. Kameranız çalışmaya devam edecektir. Açılıştan kaldırmadan VMWare çalıştırabilmek isterseniz bu durumda Görev Yöneticisinden FixCamera.exe uygulamasını sonlandırmanız gerekecektir.

C# ile SEO uyumlu daha anlaşılır web adresleri hazırlama

PHP ile bu işi nasıl yapabileceğimizi daha önce anlatmıştım. C# ile geliştirdiğimiz bir uygulamada da gerekli olunca biraz araştırdım. PHP ile olan deneyimlerimden yola çıkarak ihtiyaç listesi çıkarttım ve bu ihtiyaçlar doğrultusunda biraz araştırma yaptım. Bu araştırmalardan bir tanesi HTML etiketlerinin temizlenmesi konusuydu ki ondan da bahsetmiştim. Geriye çentikli karakterlerin (ğ,ü,ş,ö,ç, ì, é vb.) çentiksiz hallerine ulaşmak gibi bir problem kalmıştı. Problemin çözümüne burada ulaştım.
Okumaya devam et C# ile SEO uyumlu daha anlaşılır web adresleri hazırlama

Internet Explorer iFrame çerezlerini (cookie) neden engelliyor?

UYARI!
Bu yazı güncelliğini yitirmiştir. Okumaya devam etmeyi planlıyorsanız lütfen yazıdaki bilgilerin artık geçerli olmayabileceğini göz önünde bulundurun.

Gün geçmiyor ki Internet Explorer yeni bir arızayla beni çıldırtmasın. Bugüne kadar hep standartları takip etmediği için çıldırtmıştı, bugün ise yeni bir standardı direkt desteklemeye başladığı için çıldırttı. IFrame içinde yer alan sayfalar Internet Explorer’da tarayıcıya çerez (cookie) gönderemeyince problemi araştırmaya başladım ve buradaki yazıya ulaştım.

Okumaya devam et Internet Explorer iFrame çerezlerini (cookie) neden engelliyor?