PHP 5.3'te kullanımdan kaldırılan hataları kapatın


127

Sunucum PHP 5.3 çalıştırıyor ve WordPress kurulumum bu hataları üzerime atarak session_start () işlevimin bozulmasına neden oluyor.

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 647

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 662

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 669

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 676

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 712

Bu can sıkıcı bir durum ama ekranda hata raporlamasını kapatmak istemiyorum. Bu rahatsız edici kullanımdan kaldırılmış uyarıları nasıl devre dışı bırakırım?

WordPress 2.9.2 çalıştırıyorum.


3.3.1, wordpress'in güncel sürümü değil mi?
Shadur

o eski wordpress ile eski bir php gibi görünüyor
Qchmqs

Yanıtlar:


203

Aşağıdaki işlevleri çağırarak bunu kod içinde yapabilirsiniz.

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

veya

error_reporting(E_ALL ^ E_DEPRECATED);

Teşekkürler Robus, Bu herhangi bir php hatası raporlamasını da öldürecek mi?
atwellpub

6
Hayır, birincisi temel olarak php'ye HATA / UYARI / PARSE / BİLDİRİM hatalarını göstermesini söyler, ikincisi ise php'ye KULLANIMDAN KALDIRILMIŞ hataları göstermesini söyler.
Robus

1
Ubuntu'da PHP 5.5.9 kullanımı "error_reporting = E_ALL & ~ E_DEPRECATED & ~ E_STRICT" Etkisi yok .... ama benim örneğimde, "@mysql_connect ();" hile :-(
molokoloco

@molokoloco, iki kez yanlış yaptın. İlk önce hiçbir şeyi tamir etmedin. Az önce susturdun. 2, hala mysqlkullanımdan kaldırılan kullanıyorsunuz . En azından mysqli
Marcin Orlowski

Çalışmıyor. Bir yerde üzerine mi yazılmış? Bunu nereye koyuyorsunuz?
Alex

22

Bunu uyarlamam gerekiyordu

error_reporting = E_ALL & ~E_DEPRECATED

21

Yalnızca uygulamanın çalışmamasına neden olan hataları almak için şunu kullanın:

error_reporting(E_ALL ^ (E_NOTICE | E_WARNING | E_DEPRECATED));

Bu, bildirimleri, uyarıları ve kullanımdan kaldırılan hataları göstermeyi durduracaktır.


13

Önceki cevapların tümü doğrudur. Hiç kimse PHP'deki tüm hataların nasıl kapatılacağına dair ipucu vermediğinden, burada bahsetmek istiyorum:

error_reporting(0); // Turn off warning, deprecated,
                    // notice everything except error

Biri onu faydalı bulabilir ...


11

Bir SEO eklentisinin blog diski kullanımımın plan sınırını aşmasına neden olan çok sayıda uyarı yayınladığı benzer bir sorunla karşılaştım.

Wp-config.php dosyasına wp-settings.php gereksiniminden sonra error_reporting komutunu eklemeniz gerektiğini öğrendim :

   require_once( ABSPATH .'wp-settings.php' );
   error_reporting( E_ALL ^ ( E_NOTICE | E_WARNING | E_DEPRECATED ) );

bunu yaparak hata günlüğü dosyanıza artık uyarılar, bildirimler veya kullanımdan kaldırılmış satırlar eklenmez!

WordPress 3.8'de test edildi ama sanırım her kurulum için çalışıyor.


9

Wp-config.php dosyasında sabit WP_DEBUG bulabilirsiniz. Yanlış olarak ayarlandığından emin olun.

define('WP_DEBUG', false);

Bu, WordPress 3.x içindir.


7

PHP yapılandırma dosyasını düzenlemelisiniz. Hattı bul

error_reporting = E_ALL

ve şununla değiştirin:

error_reporting = E_ALL ^ E_DEPRECATED

Yapılandırma dosyasına erişiminiz yoksa bu satırı PHP WordPress dosyasına ekleyebilirsiniz (belki headers.php):

error_reporting(E_ALL ^ E_DEPRECATED);

Bunu eklemek çok daha iyi wp-config.php. Yapılandırma ayarlarıyla düzenlenmesi amaçlanmıştır.
Nilpo

4

Bu yöntemi kullanma eğilimindeyim

$errorlevel=error_reporting();
$errorlevel=error_reporting($errorlevel & ~E_DEPRECATED);

Bu şekilde ihtiyacım olan bir şeyi yanlışlıkla kapatmam


1
Bu size daha az kontrol sağlar. Şu anda yapılandırılmış olanın doğru olduğunu varsayıyorsunuz. Örtüşen yapılandırmalara sahip olmamak için gerektiğinde doğrudan ayarlamak daha iyidir.
Nilpo

Anlama. Her durum farklıdır.
realtebo

1
Yine de en iyi cevap budur. Soruyu doğrudan cevaplayan tek cevap: herhangi bir yan etki olmaksızın yalnızca E_DEPRECATED'ı devre dışı bırakın.
Sygmoral

-2

php sürümünüzü değiştirdiğinizde bu hata oluşur: bu hata mesajını bastırmak çok basit

KULLANIMDAN KALDIRILMIŞ Hata mesajını bastırmak için, aşağıdaki kodu index.php dosyanıza eklemeniz yeterlidir:

init_set ( 'display_errors', yanlış);


bunu yapmayın, bu sadece amortismanlar için değil tüm hata mesajlarını gizler.
tanaydin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.