MENU

Strict Standards: Non-static method Hatası Çözümü

Anasayfa » Bilgi » Strict Standards: Non-static method Hatası Çözümü
Strict Standards:  Non-static method Hatası Çözümü

Merhaba Arkadaşlar. Biliyorum sizde bu hatayı alıyorsunuz ve çözemediğiniz için çok rahatsızsınız merak etmeyin bugün bu problemi çözücez :)

İnternette bir çok siteyi inceledim didik didik ettim problemin çözümünü hep 1 yöntemle denemişler ancak ben size daha iyisini anlatmayı hedefliyorum. Öncelikle problemi bilmek lazım bizim bu hatayı alma nedenimiz şuydu;

Eski sunucu php versiyonu düşüktü yeni sunucu php versiyonu 5 yani daha yüksek. Eski sunucu php versiyonuna bakmadığım için tam sürüm yazamadım php 4.2. gibi. Bu yüzden eski diyorum. Ben bu hatayı Joomla sistemde aldım ancak vBulletin ve WordPress sistemde alan arkadaşlarıda görüyorum. Diğer scriptlerde yada kendi yazdığınız özel yazılımlardada bu hata çıkacaktır elbet. Şimdi gelelim sorunu çözme adımlarımıza.

http://4.bp.blogspot.com/-QRj12udkUcQ/Ur_thELsU8I/AAAAAAAAWk0/4UyTKMNWDBI/s1600/strict-standarts.gif

Joomla Strict Standards Çözümü

Öncelikle Joomla daha sonra diğer scriptlerde nasıl kullanıcağınızdanda bahsedicem. Joomla kurulu olan ana dizindeki index.php ve administrator klasörü içerisindeki index.php‘yi bir notepad++ programı ile açın ve “< ?php” den sonra alttaki kodu ekleyin.

ini_set('error_reporting', E_ALL & ~E_NOTICE);
ini_set('display_errors', 'Off');

Ben bu kodu ekledikten sonra site düzeldi ama sonra farkettimki daha büyük bir problem daha var o neydi? Site error_log hatalarını kaydetmeye devam ediyodu. Her sayfa yenilemede 1200 tane log yazıyo düşünsenize günlük siteye bin kişi giriyo :) apache hata yazmaktan kesinlikle durcaktır diycem ama ondan önce disk kotanız dolcaktır zaten. Bu sorunuda aşmanın yolunu buldum o da şu şekilde oldu.

public_html dizinine php.ini adında bir dosya oluşturun ve içine alttaki kodları yazın.

error_reporting = E_ALL & ~E_STRICT
display_errors = Off

Belkide sadece php.ini ile bu problemi çözebilirsiniz ama ben yaptığım işlemleride yazdığım için tüm hepsini yazdım. Burada bilmeniz gereken bir diğer konuda şu diğer internet sitelerinde araştırdığınızda size şunu yapmanızı söylüyorlar kesinlikle yapmayın;

Sunucunuzdaki php.ini dosyasını açıp “display_errors = off” yapınız diyorlar ben bunu sadece o siteye özel olması açısından public_html içerisine yazdım. Neden tüm sitelerde hataları kapatıyimki? Sürekli hata veren bir sistemim var ama ben nedenini bilmeden duramam yani hatalı olarak devam etmek saçmalık olucaktır. Yukarıda neden kapattın diyecek olursanız? onun zaten problemi belli php sürümü eski bu yüzden hatayı alıyordum oradaki amacım öncelikli olarak siteyi açmaktı şimdi siteyi o hatadan nasıl kurtarabilirim kısmına geldik.

Joomla 1.5’den Joomla 2.5 sürümüne güncellemek problemi çözücek. Bunun içinde bir araştırma yaptım ve sizlere bu konu hakkındada bilgi vericem.

Bu konudada Şenol Şengül‘ün güzel bir makalesini buldum çok açıklayıcı bir yazı okumanızı tavsiye ederim.

Joomla 1.5’den Joomla 2.5 sürüm yükseltme

Bu işlemi yapmadan önce şunu iyice kavrayın sürüm yükseltme işlemlerinde bazen beklenmedik hatalar çıkabilir bu yüzden sitenizden olabilirsiniz bunun önüne geçmek için sistemin full yedeğini almanız gerekiyor onun içinde şu bağlantıları takip edin;

Yukarıdaki içerikler yedek almanızda size faydalı olucaktır. Diyelimki sürüm yükseltirken hata aldınız ve tam yedeğinizle geri yüklemeye çalışıyorsunuz ama SQL yedeğiniz 120MB işte burada phpMyadmin devreye giremiyor çünkü onun upload limiti 50MB. Bununda bir çaresi var oda alttaki bağlantıya tıklayarak BigDump ile büyük veritabanını geri yükleyebilirsiniz.

Bu yazıma kadar şunu anlamışsınızdır çözümsüz birşeyimiz yok şükür. :)

Şimdi gelelim yükseltme işlemine 1.5’den 2.5’e yükseltirken jUpgrade eklentisine ihtiyacımız varmış Joomla uzmanları bu görüşte bildiğim kadarıyla. Öncelikle jUpgrade‘yi bilgisayarınıza indirin.

Kurulumunu sırasıyla anlatıyorum dikkatlice okuyun.

  1. Joomla Yönetim panelinde “Genel Yapılandırma” kısmında Sistem içerisindeki “Sistem Günlüğü Klasörü Yolu” ve Sunucu içerisindeki “Geçici Dosya Klasörü Yolu” bunları yeni sunucuya göre uyarlamanız gerekiyor yoksa eklentiyi yükleyemezsiniz. Dizin yolunu öğrenmek için Hosting sağlayıcınıza yada biliyorsanız mantığı örneğin linux gibi: /home/kullaniciadi/public_html/ logs & tmp gibi yazabilirsiniz.
  2. Yönetim panelinde Eklentiler -> Kur/Kaldır linkine tıklıyoruz ve jUpgrade eklentiyini buradan yüklüyoruz.
  3. Daha sonra panelde üst menüde Eklentiler -> Uyumlu Ek Yöneticisi kısmına tıklayıp “System – Mootools Upgrade” eklentisini aktifleştiriyoruz.
  4. Sonra Bileşenler kısmından jUpgrade’ye tıklıyoruz ve sağ üstteki “Özellikler” kısmından bir kaç ayar değişikliği yapıyoruz.
  5. SQL Driver -> MySQL seçili yapıyoruz.
  6. Enable migration debug -> Evet seçeneğini işaretleyip kaydediyoruz.
  7. Son olarak Start Upgrade butonuna basıp güncelleme işlemimizi tamamlıyoruz. Güncelleme esnasında alınacak hataları buraya yazın çözmeye çalışalım ancak buraya yazmadan önce ufak bir araştırma yaparsanız hatanın çözülmüşü vardır belki daha hızlı bulabilirsiniz. :)

Güncelleme işlemide tamamlandı ise artık yeni Joomla sistemini kullanıyorsunuz ve ilk başta yaptığımız php.ini’yi ve diğer kodları silebilirsiniz.

Diğer Scriptlerde Çözüm

Öncelikle hatanın PHP sürümü olduğunun farkındayız şimdi yukarıdaki gibi bir php.ini dosyası oluşturup public_html dizini altına atıyoruz.

error_reporting = E_ALL & ~E_STRICT
display_errors = Off

Sorunu bu şekilde aslında çözmüş olmuyoruz sadece yeni php kodlarına geçene kadar bu işlemi yapıyoruz.

Eğer WordPress eklentisi bu hatayı veriyorsa eklentiyi kaldırın güncellenmesini bekleyin yada aynı işi yapan farklı bir eklenti arayın.

Hatayı vBulletin’de alıyorsanız yukarıdaki gibi yapamayabilirsiniz belki ama vBulletin sisteminizi sürüm yükselterek bu problemden kurtulabilirsiniz. vBulletin 5 sürümü ideal bir sürüm MySQLi kullanılıyor.

Kendi yazdığınız bir yazılım ise yada internetten indirdiğiniz ücretsiz bir script ise bu yazılımdaki eski php kodlarını bulup yeniye göre uyarlamanız gerekiyor ancak bu şekilde hatayı çözersiniz. Yukarıdaki php.ini hataları sadece gizliyor aslında çözmüş olmuyorsunuz hatayı çözene kadar gitmenizi tavsiye ederim. :)

Rooteto Teknoloji Blogu

Rooteto WordPress, Sosyal Medya, Teknoloji, HD Resimler ve Video paylaşımında bulunan bağımsız olarak çalışan online haber teknoloji sitesidir.

Yaklaşık 1 Milyondan fazla tekil aylık ziyaretci ile Rooteto'yu büyük yapan teknoloji topluluklarıdır. 2009 yılında kurulan Rooteto'nun genel merkez ofisi İzmir / Bornova'dadır.