Alan Adı Kaydı Alan Adı Transferi Alan Adı Yenileme .TR Alan Adı Kaydı Whois Sorgulama Alan Adı Uzantıları
Bireysel Hosting Kurumsal Hosting Wordpress Hosting Multi Hosting
Türkiye VDS Sunucu Avrupa VDS Sunucu Özel Masaüstü Sunucu FOREX Sunucu
Türkiye Fiziksel Sunucu Avrupa Fiziksel Sunucu Yarı Fiziksel Sunucu Sunucu Barındırma Kirala Senin Olsun
Kurumsal E-posta IP Adresi Hizmeti Yedekleme Hizmeti
Veri sorumlusu sıfatıyla tarafımızca toplanan, saklanan ve işlenen kişisel verileriniz için KVKK'nın Veri Sorumlusunun Aydınlatma Yükümlüğü başlıklı 10.maddesi uyarınca faaliyette bulunmaktayız.
Detay Tamam

Deprecated: Assigning the return value of new by reference is deprecated in Hatası ve Çözümü

Merhaba arkadaşlar bugün sunucunun PHP 5.3 gibi üst sürümlere geçildiğinde vbulletin versionu düşük olan bazı forumlarda oluşan hataları ve bu hataları nasıl giderebileceğimiz üzerinde makalemizi ele alacağız.

Öncelikli şunu belirtmek isterim ki, sunucu php sürümünü yükselttiğinde o sunucuda barınan site sahiplerine bilgi vermeyebilir genellikle de vermemektedir. Böyle bir durumda bir bakarsınız ki vbulletin tabanlı forumunuz açılmamaktadır. Sebebini hizmet aldığınız destek ekibine ilettiğinizde "bizden kaynaklı değil, php sürümü yükseltildi, vbulletin sürümünüzü upgrade yani version güncellemenizi yapın" gibi benzer cümleler kuracaklardır. Bu da manuel yapmanız gerekecektir ki işi işten işte riske atmanıza neden olacaktır. 

PHP sürümü yükseltildiğinde bazı vbulletin sürümleri (Örneğin: 3.8.x) yeni PHP sürümüne göre eskiden kullanılan bazı verileri çekemeyecek veya PHP if sorgusunda bazı fonksiyonlar çalışmayacak haliyle forum açılamayacaktır. Bu durumda alınan hata ise şu şekildedir;

Alıntı:
Deprecated: Assigning the return value of new by reference is deprecated in ../public_html/includes/init.php on line 49

Deprecated: Assigning the return value of new by reference is deprecated in ../public_html/includes/init.php on line 101

Deprecated: Assigning the return value of new by reference is deprecated in ../public_html/includes/init.php on line 105

Deprecated: Assigning the return value of new by reference is deprecated in ../public_html/includes/init.php on line 113

Deprecated: Assigning the return value of new by reference is deprecated in ../public_html/includes/init.php on line 124

Deprecated: Assigning the return value of new by reference is deprecated in ../public_html/includes/init.php on line 128

Deprecated: Assigning the return value of new by reference is deprecated in ../public_html/includes/init.php on line 136

Deprecated: Assigning the return value of new by reference is deprecated in ../public_html/includes/init.php on line 205

Deprecated: Assigning the return value of new by reference is deprecated in ../public_html/includes/init.php on line 383

Deprecated: Assigning the return value of new by reference is deprecated in ../public_html/includes/class_core.php on line 2552
Böyle bir hata alındığında biliniz ki Sunucu PHP sürümü yükseltilmiştir. Bunu halletmeniz için çözüm kısmına gelelim.

ÇÖZÜM

1- Öncelikle değişiklik yapacağımız PHP dosyalarının kodlama türünün değişmemesi için Notepad++ adındaki editör programını bilgisayarınıza indiriniz. (Sizde benzer bir program varsa bu kısmı atlıyoruz) 
-
2- Herhangi bir ftp programı ile sitenizin ftpsine bağlanıp includes klasöründe mevcut olan hata veren .php dosyalarını masaüstünüze alınız. (class_core.php , init.php bazen de usercp.php vs)
-
3- Bu hata veren dosyalarınızı masaüstüne aldıktan sonra kesinlikle yedekleyiniz.
-
4- Foruma girip hata mesajındaki ilk dosyayı açıyoruz. Aynı php dosyasında birden fazla satırda hata vermiş olabilir. Bu yüzden bir tane dosyada kaç tane sorunlu satır vars o satırlara tek tek gideceğiz.Bu php dosyalarını sırayla Notepad++ gibi editörlerimizle açıyoruz.
-
5- Hatalı satırlara gittiğimizde o satırda =& şeklinde bir kısım göreceksiniz. Burda =& yerine sadece = bu işareti bırakıyoruz. Kaç tane satırda hata vermişse o satırlara gidip bu işlemi tek tek yapıyoruz. Tüm dosyalarda bu işlemi yapıp düzenlediğimiz php dosyalarını includes klasörüne attıp ftp programı ile yenilediğimizde foruma girildiğini göreceksiniz. Bazı sürümlerde bu işlemle forum açılmakta hiçbir sorun kalmamaktadır. Eğer ki sorununuz bu şekilde halledilmişse 6. adımı uygulamanıza gerek yoktur.
-
6. Beşinci adımı yapıp foruma girdiğinizde header gibi bölümlerde bazı php dosya hatası veya karakter problemi hatasını verirse bu sefer ise, includes klasöründeki config.php dosyasını masaüstüne indirip editörümüzle açıyoruz.

Açtığımızda;

Alıntı:
<?php 
/*================================================= =====================*\ || ################################################## ################## || 
|| # vBulletin 3.8.2 || #
bu şekilde başlamaktadır. Siz ise <?php kısmının hemen altına 

Alıntı:
ini_set(display_errors, 0);
bunu ekleyip dosyayı kaydedip, ftp yolu ile includes klasörüne atıyor ve yeniliyorsunuz. 
Yani şu şekilde olacaktır.

Alıntı:
<?php 
ini_set(display_errors, 0); 
/*================================================= =====================*\ || ################################################## ################## || 
|| # vBulletin 3.8.2 || #
Bu sayede karakter sorunları da ortadan kalkacaktır. Php'nin yeni sürümünden yararlanıp vbulletin versionunundan vazgeçmeyerek rahatlıkla kullanabilirsiniz. Tabiki bundan sonra isterseniz gerekli sürümlere yükseltir, temanızda gerekli değişiklere gidersiniz. 

Böyle problemle karşılaşıp bu makaleyle sorunlarını halledenlere geçmiş olsun, okuyup bilgi alanlara da keyifli okumalar dilerim..


  • Assigning the return value of new by reference is deprecated in
  • Bu dökümanı 4 kullanıcı yararlı buldu.
Bu cevap yeterince yardımcı oldu mu?

Bunlar da yardımcı olabilir