"Başlık bilgileri eklenemiyor - başlıklar zaten gönderildi" sorununu çözme. Http başlıkları nedir (Http başlıkları)

"Başlık bilgileri eklenemiyor - başlıklar zaten gönderildi" sorununu çözme. Http başlıkları nedir (Http başlıkları)

Bugün mesajın ne anlama geldiği hakkında konuşmaya karar verdik. "Uyarı: Başlık bilgileri değiştirilemiyor - zaten gönderilen başlıklar (çıktı /home/..." konumunda başladı), ana içeriği yerine site sayfasında görünen.
Anlaşıldığı üzere, ağ bu konuda yeterince yazdı, ancak bunun ne anlama geldiğine ve ondan nasıl kurtulacağına dair genelleştirilmiş bir talimat yok.
Bu sorunla bizzat karşılaştığımız için bu konudaki engin bilgi denizine birkaç damla eklemeye karar verdik.

Bir süre önce, birkaç müşteri sitesinin bir barındırmadan diğerine transferini gerçekleştirdik.
Her şey yolunda gitti, siteler müsaitti ama yöneticiye gitmeye çalıştığınızda. panel, kullanıcı adını ve şifreyi girdikten sonra kontrol paneli yerine beyaz bir sayfa belirdi.
Diğer sitelerde kontrol edildi - aynı şey.
öğrenmek için Olası nedenler, hata görüntülemeyi etkinleştirdik.
Bunu yapmak için, sitenin kök dizininde bulunan .htaccess dosyasını FTP aracılığıyla düzenlemeniz ve ona şu satırı eklemeniz gerekir:

php_flag display_errors açık

Bundan sonra, yönetici panelinde oturum açarken, "Uyarı: Başlık bilgileri değiştirilemiyor - /home/.../public_html/wp-login.php'de 362 satırında (çıktı /home/.../functions.php:1552'de başladı) zaten gönderilen başlıklar" gibi birkaç mesaj belirdi.

Arama sonucunda, bu mesajın başlık bilgilerinin değiştirilemeyeceğini bildirdiği bilgisi bulundu, çünkü başlıklar (hakkındaki bilgiler) daha önce gönderilmiş ve ayrıca bunun hangi satırlarda hangi dosyalarda yapıldığı parantez içinde belirtilmiştir.


Başlıklar (başlıklar) sitenin bulunduğu sunucunun hizmet bilgisidir. Tarayıcı sitenin içeriğini görüntülemeden önce, sunucudan çeşitli verileri gösteren başlıkları alır: sayfa önbelleğe almanın etkin olup olmadığı, kodlaması, sayfa içerik türü ve diğerleri. Site içerik yönetim sistemlerinde başlıklar, site içerisinde yer alan fonksiyonlar tarafından oluşturulur. çeşitli dosyalar sistemler.
Zorunlu koşul Başlıklar, sayfanın ana içeriğinden (içeriğinden) önce gönderilmelidir.


Site içeriği başlıklardan önce iletilirse, "Uyarı: Başlık bilgileri değiştirilemiyor - başlıklar zaten ... tarafından gönderilmiş ..." mesajı ile uyarıldığımız bir durum ortaya çıkıyor.

Bu hangi durumlarda ortaya çıkabilir? Daha önce de belirtildiği gibi, modern CMS'de başlıklar bir veya daha fazla işlevin sonucudur. İşlevin kendisi, başlangıç ​​arasında bulunan bir kod parçasıdır. ve son ?> etiketler.

Bu etiketlerin dışındaki her şey sayfa içeriği olarak kabul edilir.
Böylece, sayfanın başında başlık gönderen işlevler varsa ve "Uyarı: Başlık bilgileri değiştirilemez ..." mesajını alıyorsak, sayfa içeriğiyle ilgili bazı bilgilerin başlıklardan önce sunucudan gönderildiği ortaya çıkıyor.

Bu bilgi nedir ve nasıl bulunur? Çoğu zaman bunlar boşluklar ve boş satırlardır.

Bir boşluk veya boş bir dize, sayfanın ana içeriği için karakter olarak yorumlanır, bu nedenle ana içeriğin bir kısmı başlıklardan önce gelir ve önce tarayıcıya gönderilir.

"Uyarı: Başlık bilgileri değiştirilemez ..." mesajlarında belirtilen dosyaları indirmeniz gerekir. yerel bilgisayar, bir kod düzenleyicide açın (NotePad++ kullanıyorum) ve dikkatlice kontrol edin boş satırlar ve boşluklar:

Aynı zamanda, çözüm arama süresini önemli ölçüde artırabilen önemli bir özellik vardır.
Dosya boş satırlar ve boşluklar içermeyebilir, ancak UTF-8 kodlamasıyla kaydedilmişse, dosyanın oluşturulduğu düzenleyici tarafından belgenin en başına gereksiz bir karakter eklenebilir. Bu karakter, sıfır genişlikli bir boşluğa eşit bir UTF-8 tanımlayıcısıdır ve editörde hiç görüntülenmeyebilir, ancak sunucuda ana içerik olarak algılanacak ve başlıklardan önce görüntülenecektir.

Bu tanımlayıcıdan kurtulmak için indirilen dosyaları şu biçimde yeniden kaydetmeniz gerekir: Malzeme Listesi olmadan UTF-8(BOM olmadan UTF-8).

NotePad++ bu işi iyi yapıyor.

Bu işlemlerden ve sunucudaki dosyaların güncellenmesinden sonra, mesaj kaybolmalıdır ve site her zamanki gibi çalışacaktır.

05/04/2017 Perş - 12:55 tarihinde eklendi

Belirli bir sorunun açıklaması

Düğmeye tıkladıktan sonra bir hata görüntülenir:

Uyarı: Başlık bilgileri değiştirilemez - C:\OpenServer\domains\testsite\WEB\5_phpRedirect.php on line 12'de (çıktı C:\OpenServer\domains\testsite\WEB\5_phpRedirect.php:10'da başlatıldı) tarafından zaten gönderilen başlıklar

Kod, bu konudaki koda benzer:

Deneysel Web

İndirmek için bir komut dosyası seçin

Komut dosyası işleyicisi:

Ne zaman oldu

Hata (uyarı) türü:

Uyarı: Başlık bilgileri değiştirilemez - başlıklar zaten tarafından gönderildi

Tarayıcı başlıklarının ayarlanmasını gerektiren bir şeyi zaten yaptıysanız ve şimdi bunların üzerine yenilerini yazmak istiyorsanız oluşur. Örneğin, metni zaten görüntülediyseniz, php başlıkları gösterir (özellikle, konum-- bu, istemci tarayıcıya (yanıtında) nasıl davranılacağını göstermek için istenen sayfada kalıp kalmayacağınızı veya başka bir sayfaya gitmeniz ve zaten orada olan isteğe bir yanıt almanız gerekip gerekmediğini gösterir.

sorunun kökü

Büyük olasılıkla, sizin durumunuzdaki sorun, zaten içerik (dosyada komut dosyasıyla karıştırılmış html etiketleri) veriyor olmanızdır. önce komutlar:

yankı başlığı($yönlendirme);

Header() işlevinin yalnızca istemci şu durumlarda çağrılabileceğini unutmayın: henüz veri gönderilmedi. Yani çıktıda ilk sırada gelmeli, çağrılmadan önce herhangi bir HTML etiketi, boş satır vb. Çoğu zaman kodu okurken bir hata oluşur. dosya işlevleri içerme veya gerektirme gibi, bu kodda header() çağrısından önce yazdırılan boşluklar veya boş satırlar vardır. Tek bir PHP/HTML dosyası kullanılırken aynı sorunlar ortaya çıkabilir.

Yani, komut dosyası işleyicisini html'den kaydetmek gerekir - sonuçta, aslında kendisi hiçbir şey çıkarmaz, ancak onu başka bir adrese aktarır - bu ilk.

başlık($yönlendirme);

yankı başlığı($yönlendirme);

Deney

echo() aslında yazdığı için http yanıt gövdesi, ve üstbilgilerde değil ve üstbilgi, yukarıda belirtildiği gibi, void döndürür (yani, değerler döndürmez), o zaman echo() kullanmanın bir anlamı yoktur, ancak
Ancak, bir deney yapmayı öneriyorum:

  1. html'yi kaldır
  2. yankıyı kaldırma

Header() aslında echo()'dan önce çağrıldığından (header(), echo()'nun bir argümanı olduğundan) ve bu nedenle return -- aynı zamanda işlevin null döndürüp döndürmediğini de kontrol edeceğiz -- bunun boş bir dize olarak mı yorumlanacağı yoksa (daha kesin olarak) echo çalışmaya bile başlamaz mı, çünkü bir yeniden yönlendirme zaten gerçekleşecektir.

nedenini tekrar gözden geçirelim

Onlar. header() çağrılmadan önce hiçbir içerik görüntülenmemelidir(Fonksiyonun açıklamasında ne yazıyor: http://php.net/manual/ru/function.header...)

  • 1) yankı olmadan
  • 2) html-metninin tarayıcıya olağan dökümünün yardımıyla değil.

Bizim durumumuzda, görünüşe göre, yankı hiçbir şeyi etkilemiyor, ancak işleyicideki html gerçekten etkiliyor.

sorun çözüldü

Tavsiyeniz üzerine kaldırıldı. HTML etiketleri. Artık yönlendirme doğru bir şekilde gerçekleşiyor, işleyici betiği şuna benziyor:

Yankı işlevi işi gerçekten etkilemez, yani. S. Holzner gibi bırakabilirsiniz:

Ayrıca, yönlendirme için kod tasarlarken, geçişin yapıldığı dosyanın uzantısına dikkat etmelisiniz: önerilen sözdizimiyle, başlık bağımsız değişkeninde belirtilmelidir.

  • Yorum yazmak için giriş yapın

Ama çalışmasını sağlayabilirsin

Ancak önceki işleyiciyi de çalıştırabilirsiniz.

Kullanıcı yönlendirmesi

seçeneği php.ini dosyasında ayarlarsanız

Çıktı_arabelleğe alma = 4096

  • Yorum yazmak için giriş yapın

Başlıkları yeniden göndermek yasaktır, HTTP protokolü böyle çalışmaz! Ama sonra ne yapmalı? Sayfadaki çıktıdan sonra oturumu başlatmanız ve tanımlama bilgisini de koymanız gerekiyorsa? - Çıktı tamponlamayı unutmayın.

Yani, sıfır olmayan bir arabellek boyutu ayarlandığında, dolana kadar başlıkları değiştirmek hala mümkündür. Sıfır arabellek boyutuyla, içeriğin çıkışından sonra hemen geri dönüşü önceden HTTP yanıt başlıklarını istemciye iletmek.

Ve zaten ağ üzerinden müşteriye "uçup giden" başlıkları değiştirmek istediğimiz ortaya çıktı (bu, onları düzeltmenin artık mümkün olmadığı anlamına gelir - özellikle başlık konum, istenen sayfada kalıp kalmayacağınızı veya başka bir istekte bulunacağınızı belirtir - "yönlendirici" komut dosyasının yanıtı (bizim durumumuzda, bu bir form işleyicisidir) sadece başka bir sayfa istememiz gerektiğini söyler), bu da php'nin bizi uyardığı.

Ancak: Elbette sorunu bu şekilde çözmek imkansız (çok doğru değil, daha doğrusu).

_____________
matfak vgu ve diğer klasikler =)

  • Yorum yazmak için giriş yapın

Bu hata mesajı genellikle PHP ile başlayan programcılar tarafından görülür. Bu hatanın neden oluştuğunu anlamak, bir çözüm bulmanıza yardımcı olacaktır.

PHP, siz istemeden sizin için web sayfaları oluşturma işinin çoğunu yapar. Bir web sayfasının iki bölümü vardır: başlık ve gövde.

Bu yaygın PHP hatası, bir programcı başlıkların işlenmesinde veya oluşturulmasında hatalar yaptığında görülür. İşte bir örnek:

Uyarı: Başlık bilgileri değiştirilemez – başlıklar zaten 12. satırda /home/usr1/public_html/includes/theme-header.php içinde (çıktı /home/usr1/public_html/sent.php:42'de başladı) tarafından gönderildi.

Otomatik olarak oluşturulduğundan ve sayfa, sunucu ve çerez hakkında bilgiler içerdiğinden, genellikle başlık hakkında endişelenmenize gerek yoktur. Başlıktaki bilgiler önemlidir, ancak genellikle kullanıcı tarafından görülmez. İşte bazı örnekler:

Tarih: 10 Temmuz 2006 Pazartesi 18:51:59 GMT Sunucusu: Apache/2.2.0 (Unix) mod_ssl/2.2.0 OpenSSL/0.9.7g İçerik Kodlama: gzip İçerik Türü: text/html

Bazen programcılar bazı başlık değerlerini değiştirmek isterler. Örneğin, PHP XML çıktısı üretiyorsa, bunu belirtmek için İçerik Türü değiştirilmelidir. Diğer bir yaygın örnek, bu makalede açıklandığı gibi, kullanıcının tarayıcısını Konum başlık öğesini kullanarak başka bir web sayfasına yönlendirmektir.

Başlık, web sunucusundan gelen yanıtta önce gelmelidir ve gövdeden bir boş satırla ayrılır. Bu hatanın nedeni, web sayfasının gövdesinin bir kısmının, başlık değeri ayarlanmaya çalışılmadan önce kullanıcıya gönderilmiş olmasıdır. PHP sizin için pek çok şeyi kolaylaştırdığından, sorun her zamanki yerinde saklanıyor olabilir. Sorunu bulmak için bazı yönergeler şunlardır:

  1. Soruna neden olan header() talimatını bulun. Hata bu satırın üzerinde veya öncesinde olmalıdır.
  2. Bu başlık talimatından önce çıktıyı kullanıcıya yönlendirebilecek herhangi bir talimat olup olmadığına bakın. Bir veya daha fazla bulursanız, başlık ifadesini onlardan önce taşımak için kodu değiştirin. Karmaşık koşullu ifadeler sorunu karmaşıklaştırabilir, ancak sorunun çözülmesine de yardımcı olabilir. Alternatif olarak, PHP betiğinin en üstüne, başlık değerini olabildiğince erken belirleyen ve orada ayarlayan bir koşul uygulayabilirsiniz.
  3. Başlangıç ​​ve bitiş PHP etiketlerinin dışında boşluk olmadığından emin olun. Oysa başlangıç ​​etiketinden önce boş bir satır
  4. Dosyanızı UTF-8 kodlamasında kaydederseniz, dosyanın imzasız (BOM olmadan) kaydedildiğinden emin olun. İmza, dosyanın başına eklenen bir bayttır ve PHP betiği bu biçimde kaydedilirse, bu bayt sayfa gövdesinin çıktısının bir parçası olarak algılanacaktır ve bu, düşündüğümüz sorundan kaçınmasına izin verilmemelidir.

Bu yazımızda hangisinin neyden sorumlu olduğuna dair detaylara girmeden başlıkların ne işe yaradığına bakacağız. En yaygın başlıkların rollerinin açıklaması aşağıdaki makalelerde verilecektir.

Serideki tüm makaleler:

HTTP Köprü Metni Aktarım Protokolü (Köprü Metni Aktarım Protokolü) anlamına gelir. Bir protokol, farklı cihazların iletişim kurduğu bir dizi kuraldır. 1990'larda oluşturuldu. Artık internette hemen hemen her yerde kullanılmaktadır. Tarayıcı penceresinde gördüğünüz her şey bu protokol aracılığıyla alındı. http başlıkları muhtemelen cihazlar arasındaki iletişimdeki ana şeydir. Kurulmakta olan bağlantı ve bu bağlantı üzerinden iletilen bilgiler hakkında temel bilgileri iletirler.
İki cihazın iletişim şemasına bir göz atalım. Bu cihazların bilgisayarınız ve İnternet'teki bir sunucu olmasına izin verin:

Gördüğünüz gibi, tarayıcı bir http isteği gönderdi. Bunun gibi bir şey görünebilir:

GET /other-19 HTTP/1.1
Sunucu: www.scriptsite.ru
Kullanıcı Aracısı: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Kabul et: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Kabul Dili: ru,en-us;q=0.7,en;q=0.3
Kabul-Kodlama: gzip,deflate
Kabul Karakter Kümesi: windows-1251,utf-8;q=0.7,*;q=0.7
Hayatta Kal: 300
Bağlantı: canlı tutma

Bu durumda, ilk satır bir sorgu dizesidir, diğer tüm satırlar istek, bu bilgiyi isteyen müşteri ve diğer pek çok şey hakkında ek bilgiler taşıyan http başlıklarıdır.
İsteğimize yanıt olarak, sunucu aşağıdaki başlıkları gönderebilir:

Sunucu: Apache/2.0.61 (Unix) mod_ssl/2.0.61 OpenSSL/0.9.8k mod_dp20/0.99.2 PHP/5.2.5 mod_python/3.3.1 Python/2.5.1 mod_ruby/1.2.6 Ruby/1.8.6(2007-09-24)

X-Powered-By: PHP/5.2.5

Set-Cookie: PHPSESSID=ft47gokfee6amv3eda3k1p93s3; yol=/

Önbellek Kontrolü: depolama yok, önbellek yok, yeniden doğrulama yapılmalı, kontrol sonrası=0, ön kontrol=0

Pragma: önbellek yok

Hayatta Kal: zaman aşımı=10, maks=1024

Bağlantı: Hayatta Kal

Aktarım Kodlaması: parçalanmış

İçerik Türü: metin/html

İlk satır durum satırıdır. Satırların geri kalanı başlıklardır. Şemada sayfa içeriğinin de yüklendiği gösterildi. Ancak bu içerik genellikle başlıkları görüntüleyen eklentilerde görüntülenmez. Ve sayfanın içeriği sadece özel bir durumdur. Protokole göre sayfanın iletilmesi gerekmez. Bunun yerine bir resim, bir ses dosyası ve bir video aktarılabilir. Ve hepsinin çok farklı başlıkları var.

http başlıklarını nasıl görebilirim?

http başlıklarını görmek için, firefox tarayıcısı için aşağıdaki eklentileri öneriyorum:

Chrome tarayıcı kullanıyorsanız, ayarlar düğmesi - araçlar - geliştirici araçları'na tıklayarak tüm bilgileri görüntüleyebilirsiniz. ağlar sekmesi.
Opera tarayıcısı kullanıcılarına tavsiyede bulunamam çünkü bu tarayıcıyla arkadaş değilim. Eklentileri kurup çalıştırdıktan sonra sayfayı yenilemeyi deneyin. Tarayıcınızın sunucuyla iletişim kurduğu büyük istek ve yanıt listelerini hemen göreceksiniz.

Http başlıkları ve bunlara php ile erişim

Bir php geliştiricisiyseniz, istek başlıklarına getallheaders() işlevini kullanarak erişebilirsiniz. Nasıl çalıştığını anlamak için aşağıdaki kodu çalıştıralım:

Ve bir dizi başlığın çıktısını alıyoruz.

Ancak daha sıklıkla bunlara $_SERVER global değişkeni aracılığıyla erişilir. Hemen hemen her http başlığı, HTTP_header_name ilkesi tarafından oluşturulan bu değişkende benzer bir öğe adına sahiptir. Yani aynı 'User_Agent' için $_SERVER['HTTP_USER_AGENT'] değişkeni vardır;

Sunucunun kullanıcıya göndereceği başlıkları almak için headers_list() işlevini kullanın. Kural olarak, sunucu eksik zorunlu başlıkları zaten tüm komut dosyalarının çalışmasının sonunda oluşturur. Bu nedenle, bu dizi, sunucunun komut dosyası yürütmeye başlamadan önce oluşturduğu (ve değiştirilmeyecek) veya manuel olarak ayarladığımız başlıkları içerecektir. İşlev başlığını ("başlık metni"); kullanarak bunları manuel olarak ayarlayabilirsiniz;
Aşağıdaki kodu çalıştıralım:

İşlev çağrıldığında gönderilmeye hazır başlıkların bir çıktısını göreceğiz:

İlk başlık otomatik olarak ayarlanmıştır ve betiğin üzerinde çalıştığı sunucunun adını taşır. İkincisi tarafımızdan manuel olarak kurulur. Tarayıcının "Fruit" başlığına ihtiyacı varsa, onu sunucunun http yanıtından alır ve kullanırdı. Ancak tarayıcımızın buna ihtiyacı olmadığı için anlamadığı satırı yok sayar.

http istek yapısı

Talebimiz şuna benziyor:

İçindeki ilk satır, daha önce de belirtildiği gibi, sorgu dizesidir. Üç bölümden oluşur:

  • yöntem(yöntem) - ne tür bir istek olduğunu gösterir. En yaygın yöntemler şunlardır: GET, POST, HEAD. Bir sonraki paragrafta tartışılacaklar.
  • yol(yol) - Bu genellikle URL'nin etki alanından sonra gelen kısmıdır. Örneğin, adres çubuğuna http://www.scriptsite.ru/about/ girerseniz, yol değeri /about/ olacaktır.
  • protokol(protokol) - Kullanılacak protokol. Tipik olarak "HTTP" ve protokol sürümünden oluşur. genellikle, içinde modern tarayıcılar sürüm 1.1 kullanılıyor

Ardından, "Ad: değer" biçimindeki dizeler biçimindeki başlıklar gelir.
Bu arada, çerezlerle ilgili veriler de bu istekte başlıklardan biri olarak iletilir. Bu satırların çoğu isteğe bağlıdır. Sorgu tamamen iki satıra indirgenebilir:

GET /article/show/4/ HTTP/1.1

Sunucu: scriptsite.ru

Talep Yöntemleri

ELDE ETMEK

Alma isteği, genellikle bazı parametreleri ileterek bir belge istemek için kullanılır.
Bu, html sayfaları, resimler, css ve JavaScript dosyaları, vesaire.
Parametrelerin herhangi bir şey olabilmesi ve sunucunun bunların nasıl işlendiği konusunda herhangi bir kısıtlaması olmaması nedeniyle, bilgi aktarımı için genellikle veri istekleri yöntemi kullanılır. Örneğin şöyle bir formumuz olacak.

Bu durumda, bu parametreler tarayıcının adres çubuğunda görünecektir.

POSTALAMAK

Post, sunucuya veri göndermek için kullanılan yöntemdir. Tarayıcının adres çubuğu aracılığıyla GET yöntemini kullanarak sunucuya veri gönderebilseniz de çoğu durumda POST kullanılması tercih edilir. GET yoluyla büyük miktarda veri göndermek pratik değildir. Ayrıca GET'in, örneğin bu makaleyi sitemde tek bir tarayıcı satırı üzerinden yayınlamaya izin vermeyen bazı kısıtlamaları vardır. GÖNDERİ istekleri en yaygın olarak web formları göndermek için kullanılır. Bir POST yöntemi vererek önceki örnekteki formu değiştirelim.

Küçük bir hatanın WordPress sitenizi tamamen çökertmesi inanılmaz. Elbette, iyi bilinen WordPress hata uyarısından bahsediyoruz. Uyarı: başlık bilgileri değiştirilemez - başlıklar zaten pluggable.php tarafından gönderilmiştir. Bu hatayla karşılaşanlardan biriyseniz, o zaman doğru yere geldiniz. Bunda, öncelikle bu hatanın ortaya çıkma nedenini tartışacağız ve sonunda sorunu çözecek çözümlere bakacağız.

Ne gerekli olacak

Başlamadan önce, aşağıdakilere sahip olduğunuzdan emin olun:

  • Barındırma kontrol panelinize erişim veya FTP erişimi

Başlık bilgileri değiştirilemiyor - zaten yanlışlıkla gönderilen başlıklar nasıl oluşuyor?

Sebeplerini daha iyi anlamak için bu hatanın bir örneğine bakalım. Hata genellikle şu biçimde görünür:

Uyarı: Başlık bilgileri değiştirilemez - satır #'da /public_html/wp-includes/pluggable.php'de (çıktı /public_html/wp-content/plugins/my-plugin/my-function.php:# adresinde başlatıldı) tarafından zaten gönderilen başlıklar

Gördüğünüz gibi, hata iki dosyadan bahsediyor. İlk dosya (bizim durumumuzda: my-function.php içinde barındırılan /public_html//wp-content/plugins/my-plugin/) zanlıların başında. Bu, WordPress tarafından sağlanan temel işlevselliği değiştirmeyi amaçlayan özel kodumuzdur. Çekirdek işlevselliği dosyadadır takılabilir.php(WordPress çekirdek dosyası, herhangi bir WordPress kurulumları). Başka bir deyişle, sorun birinci dosyadadır ve bu da ikinci dosyanın düzgün çalışmasını engeller.

Hatanın ana nedeni ekstra ilk dosyadaki boşluklar. Bunlar, dosyanın üstündeki veya altındaki boşluklar, dosyanın herhangi bir yerindeki gereksiz boşluklar ve hatta PHP etiketlerindeki boşluklardır. . Bu arada, programcıların kodlarına yanlışlıkla fazladan boşluk ekleyebilmeleri (ve genellikle yapmaları) nedeniyle, bu hata beklediğinizden daha sık meydana gelir. Hata mesajında ​​listelenen # satırı, sorunun yerini belirtir - bu, sorunu daha hızlı ve sorunsuz bir şekilde çözmenize yardımcı olur.

Düzeltme, başlık bilgisini değiştiremez - başlıklar zaten tarafından gönderildi

Artık hataya neyin neden olduğunu bildiğinize göre, onu düzeltmeye geçebilirsiniz. Bireysel olarak yardımcı olmadıysa, sorunu çözmek için tek tek veya sırayla deneyebileceğiniz iki seçenek göstereceğiz.

Seçenek 1 - Hatalı dosyayı düzenleme

Hatanın ilk çözümü Uyarı: başlık bilgileri değiştirilemez– hatalı bir dosyanın manuel olarak düzeltilmesi. Sorunu bulmak için ihtiyaç duyduğunuz bilgilere zaten hata mesajının kendisinde sahipsiniz (unutmayın, bu mesajdaki ilk dosyadır). Gereken tek şey, bu dosyayı FileZilla gibi bir istemci kullanarak veya bir dosya yöneticisi aracılığıyla FTP aracılığıyla açmaktır.

Temel olarak, burada dikkat etmeniz gereken tek şey, dosyadaki fazla boşlukları/boş satırları kaldırmaktır. İyi bir yer başlamak için hata mesajında ​​belirtilen satır # olacaktır. Oradan, belgenin sonuna kadar diğer gereksiz boşlukları veya boş satırları arayarak dosyanın geri kalanını ayrıştırmaya devam edebilirsiniz.

PHP başlangıç ​​ve bitiş etiketlerini doğru yazdığınızdan emin olun. Etiketten önce veya sonra boşluk olmamalıdır , etiketle aynı ?> . Ayrıca, son kod satırı boşluk veya fazladan yeni satır ile bitmemelidir.

Aşağıdaki ekran görüntüsünde dosyayı görebilirsiniz wp-config.php, ilk PHP etiketinden önce boşlukları olan.


İPUCU: birçok metin editörleri gereksiz boşlukları otomatik olarak kaldırabilirsiniz. Örneğin, kaldırmak için ekstra boşluklar Atom düzenleyicide tüm kodu seçin ve P'ye gidin paketler -> Boşluk -> Sondaki Boşluğu Kaldır.

Seçenek 2 - Hatalı dosyayı değiştirin

Tabii ki, bir dizi hatalı dosyayı düzenlemek zor olabilir. Dosyalar, sitenize yeni yüklediğiniz bir eklenti veya tema ile ilgili olabilir veya WordPress çekirdek dosyaları bile olabilir.

Hata gerçekten bir eklenti veya temadan kaynaklanıyorsa, yapılması gereken tek şey onu yeniden yüklemektir. Bu eylem çoğu durumda yardımcı olur. Öte yandan, hatanın nedeni WordPress çekirdek dosyasıysa, en iyi çözüm WordPress'in temiz bir kopyasını alıp kurulumunuzdaki hatanın olduğu dosyayı çalışan bir sürümdeki aynı dosyayla değiştirmektir. Bu, hatalı dosyanın onarılmasını sağlayacaktır. ilk durum, WordPress site kurulumunuzun geri kalanı güvenli ve sağlam kalacaktır. Şimdi sayfayı yeniden yükleyin ve hatanın düzeltildiğinden emin olun.

Sonuç olarak

Bir dosyaya bir kod parçacığı yapıştırmış, yeni bir eklenti/tema eklemiş veya kodu elle yazmış olsanız da, dosyada fazladan boşluk bırakma riski vardır. Bu görünüşte masum alanlar bir WordPress hatası olabilir Uyarı: başlık bilgileri değiştirilemez - başlıklar zaten tarafından gönderildi.

Bu kılavuzda, bu tür hataların nasıl düzeltileceğini ele aldık ve şimdi siteniz tekrar beklendiği gibi çalışıyor. Daha fazla WordPress kılavuzu burada bulunabilir.

Yazar

Elena'nın bir profesyoneli var. teknik Eğitim bölgede Bilişim Teknolojileri ve farklı platformlar ve sistemler için farklı dillerde programlama deneyimi. Drupal, Joomla, Magento ve tabii ki günümüzün en popüler içerik yönetim sistemi olan WordPress gibi çeşitli CMS ile çalışarak 10 yılı aşkın bir süredir web alanına adamıştır. İster bir WordPress incelemesi ister VPS sunucunuzu nasıl kuracağınız olsun, makaleleri her zaman teknik ve doğrudur.