BOM-u necə tapmaq və aradan qaldırmaq WordPress-də pis bir səhvdir. Səhvlərin düzəldilməsi: başlıq məlumatını dəyişdirə bilməz - xüsusi problemin təsviri ilə artıq göndərilən başlıqlar

Bu gün mesajın nə demək olduğunu danışmaq qərarına gəldik "Xəbərdarlıq: Başlıq məlumatını dəyişdirmək mümkün deyil - başlıqlar artıq göndərilmişdir (çıxış /home/..." ünvanında başlamışdır.", əsas məzmunu əvəzinə sayt səhifəsində göründü.
Məlum olub ki, şəbəkə bu mövzuda kifayət qədər yazıb, lakin bütün bunların nə demək olduğunu və ondan necə qurtulacağına dair ümumiləşdirilmiş təlimat yoxdur.
Bu problemlə şəxsən qarşılaşdığımız üçün bu mövzuda geniş məlumat dənizinə bir neçə damcı əlavə etmək qərarına gəldik.

Bir müddət əvvəl biz bir neçə müştəri saytının bir hostinqdən digərinə transferini həyata keçirdik.
Hər şey yaxşı getdi, saytlar mövcud idi, ancaq admin yanına getməyə çalışanda. panel, login və parol daxil edildikdən sonra idarəetmə panelinin yerinə ağ səhifə çıxdı.
Digər saytlarda yoxlanıldı - eyni şey.
Tapmaq üçün mümkün səbəblər, biz səhv ekranını aktiv etdik.
Bunun üçün siz FTP vasitəsilə saytın kökündə yerləşən .htaccess faylını ona sətir əlavə edərək redaktə etməlisiniz:

php_flag display_errors aktivdir

Bundan sonra, admin panelinə daxil olarkən, "Xəbərdarlıq: Başlıq məlumatını dəyişdirmək mümkün deyil - başlıqlar artıq /home/.../functions.php:1552-də başladı) /home/.../ ünvanında göndərilmişdir. public_html /wp-login.php sətir 362" və s.

Axtarış nəticəsində məlum olub ki, bu mesaj başlıq məlumatının dəyişdirilə bilməyəcəyini bildirir, çünki başlıqlar (onlar haqqında məlumat) əvvəllər göndərilib və daha sonra mötərizədə bunun hansı sətirlərdə hansı fayllarda olduğu göstərilib. edildi.


Başlıqlar (başlıqlar) saytın yerləşdiyi serverin xidmət məlumatıdır. Brauzer saytın məzmununu göstərməzdən əvvəl serverdən müxtəlif məlumatları göstərən başlıqları alır: səhifənin keşləşdirilməsinin aktiv olub-olmaması, onun kodlaşdırılması, səhifə məzmununun növü və s. Sayt məzmununun idarə edilməsi sistemlərində başlıqlar içərisində yerləşən funksiyalar vasitəsilə formalaşır müxtəlif fayllar sistemləri.
Məcburi şərt Başlıqlar səhifənin əsas məzmunundan (məzmunundan) əvvəl göndərilməlidir.


Saytın məzmunu başlıqlardan əvvəl ötürülürsə, o zaman "Xəbərdarlıq: Başlıq məlumatını dəyişdirmək mümkün deyil - başlıqlar artıq göndərilmiş ..." mesajı ilə xəbərdar olduğumuz bir vəziyyət yaranır.

Bu hansı hallarda baş verə bilər? Artıq qeyd edildiyi kimi, müasir CMS-də başlıqlar bir və ya bir neçə funksiyanın nəticəsidir. Funksiya özü başlanğıcın arasına daxil edilmiş kod parçasıdır və son ?> etiketlər.

Bu teqlərdən kənar hər şey səhifə məzmunu hesab olunur.
Beləliklə, səhifənin əvvəlində göndərilən başlıqlarla nəticələnən funksiyalar varsa və biz "Xəbərdarlıq: Başlıq məlumatını dəyişdirmək mümkün deyil ..." mesajını alırıqsa, onda belə çıxır ki, səhifənin məzmunu ilə bağlı bəzi məlumatlar başlıqlardan əvvəl serverdən göndərilir.

Bu məlumat nədir və onu necə tapmaq olar. Çox vaxt bunlar boşluqlar və boş xətlərdir.

Boşluq və ya boş sətir səhifənin əsas məzmunu üçün simvollar kimi şərh olunur, ona görə də əsas məzmunun bəziləri başlıqlardan əvvəl gəlir və əvvəlcə brauzerə göndərilir.

"Xəbərdarlıq: Başlıq məlumatını dəyişdirmək mümkün deyil ..." mesajlarında göstərilən faylları yükləməlisiniz yerli kompüter, onu kod redaktorunda açın (Mən NotePad++ istifadə edirəm) və boş sətirlərin və boşluqların olub olmadığını diqqətlə yoxlayın:

Eyni zamanda, bir həll axtarmaq üçün vaxtı əhəmiyyətli dərəcədə artıra biləcək bir vacib xüsusiyyət var.
Faylda boş sətirlər və boşluqlar olmaya bilər, lakin o, UTF-8 kodlaşdırmasında saxlanılıbsa, sənədin ən əvvəlinə kənar simvol faylın yaradıldığı redaktor tərəfindən daxil edilə bilər. Bu simvol UTF-8 identifikatorudur, sıfır enli boşluğa bərabərdir, redaktorda ümumiyyətlə göstərilməyə bilər, lakin serverdə əsas məzmun kimi qəbul ediləcək və başlıqlardan əvvəl göstəriləcəkdir.

Bu identifikatordan xilas olmaq üçün yüklənmiş faylları formatda yenidən saxlamalısınız BOM olmadan UTF-8(BOM olmadan UTF-8).

NotePad++ bu işi yaxşı yerinə yetirir.

Bu hərəkətlərdən və serverdəki faylları yenilədikdən sonra mesaj yoxa çıxmalı və sayt həmişəki kimi işləyəcək.

Bu yazıda "Başlıqlar dəyişdirilə bilməz, çünki onlar artıq göndərilib" səhvinin əsas səbəblərini və həll yollarını nəzərdən keçirəcəyik. ("Başlıq məlumatını dəyişdirmək mümkün deyil - başlıqlar artıq göndərilmişdir").

Bu səhv nə deməkdir?

Xətanın səbəblərini başa düşmək üçün əvvəlcə bu "başlıqların" nə olduğunu başa düşməlisiniz.

Nəzəriyyəyə girməyək. Tutaq ki, hər hansı bir istifadəçi veb-səhifəni açmazdan əvvəl ona eyni “başlıqlar” göndərilir ki, bunlarda kodlaşdırma, sayt dili, server məlumatları və s. xidmət məlumatları. Kukilərin və sessiyanın da başlıqlarda göndərildiyini ayrıca əlavə etmək lazımdır.

Hansı əmrlər bu xətaya səbəb olur?

Səhv "Başlıq məlumatını dəyişdirmək mümkün deyil - başlıqlar artıq göndərilmişdir" kukilərin və ya sessiyaların işi ilə bağlı başlıq, setcookie və digərləri kimi PHP əmrlərini çağıra bilər.

Səhvlərin səbəbləri və həlli yolları.

Ən çox ümumi səhv təcrübəsizlikdən irəli gəlir. Artıq başa düşdük ki, başlıqlar səhifənin özü yüklənmədən əvvəl göndərilir.

Ancaq proqramçılar, xüsusən də yeni başlayanlar bunu sadəcə unudurlar və ya heç bilmirlər. Və əvvəlcə səhifədə bir şey göstərməyə çalışırlar - əksər hallarda əks-səda əmrinin köməyi ilə, sonra kukilər qoyurlar, başlıqlar göndərirlər və s. Hansı ki, bu səhvə gətirib çıxarır.

Budur belə bir xəta ilə nəticələnəcək kod nümunəsi:

Və burada düzgün seçimdir:

Yəni, birincisi, başlıqları göndərməzdən əvvəl heç nə göstərə bilməzsiniz!

Həmişə açıq-aydın deyil, lakin cüzi fərqi olan bir səhv var. Bu, php sənədinizin boşluq və ya boş sətirlərlə başladığı zamandır, yəni bu sətirlər brauzerdə göstərilir.

Buna əməl etmək çox çətin ola bilər, çünki, məsələn, Windows notepadı bizə heç bir xəbərdarlıq etmədən və hətta bu simvolu göstərmədən əvvəl Bayt Sifariş İşarəsini əlavə edə bilər. Bu halda, sənədi digər redaktorlarla açmağa və yoxlamağa dəyər.

Budur yanlış başlıqlara bir nümunə:

Yəni, ikincisi, əvvəl

Əgər siz include əmrindən istifadə edirsinizsə, əslində o, bütün faylları birləşdirib bir nəticə çıxarırsa və əvvəlcə saytın başlığını (slayder, menyu və s.) daxil edib, sonra başlıqları əsas fayla göndərməyə çalışsanız, xüsusilə diqqətli olmalısınız. onda əlbəttə ki, bu səhvi alacaqsınız.

Bu cür səhv kodun bir nümunəsidir:

Cümə axşamı, 05/04/2017 - 12:55 tarixində təqdim edilib

Müəyyən bir problemin təsviri

Düyməni tıkladıqdan sonra bir səhv göstərilir:

Xəbərdarlıq: Başlıq məlumatını dəyişdirmək mümkün deyil - 12-ci sətirdə C:\OpenServer\domains\testsite\WEB\5_phpRedirect.php-də artıq göndərilmiş başlıqlar (çıxış C:\OpenServer\domains\testsite\WEB\5_phpRedirect.php:10-da başlamışdır)

Kod bu mövzudakı birinə bənzəyir:

Eksperimental Veb

Yükləmək üçün skript seçin

Skript işləyicisi:

Nə vaxt olur

Səhv (xəbərdarlıq) növü:

Xəbərdarlıq: Başlıq məlumatını dəyişdirmək mümkün deyil - başlıqlar artıq göndərilmişdir

Əgər siz artıq brauzer başlıqlarının təyin edilməsini tələb edən bir şey etmisinizsə və indi onların üzərinə yeniləri ilə yazmaq istəsəniz baş verir. Məsələn, əgər siz artıq mətni göstərmisinizsə, onda php başlıqları (xüsusilə, başlıq) ifşa edir. yer-- müştəri brauzerinə (cavabında) necə davranacağını göstərmək üçün tələb olunan səhifədə qalıb-qalmayacağınızı və ya başqa səhifəyə keçib artıq orada olan sorğuya cavab almalı olduğunuzu göstərir.

Problemin kökü

Çox güman ki, sizin vəziyyətinizdə problem artıq məzmun vermənizdir (skriptlə faylda qarışıq olan html teqləri) əvvələmrlər:

əks-səda başlığı($yönləndirmə);

Unutmayın ki, header() funksiyası yalnız müştəri olduqda çağırıla bilər hələ heç bir məlumat göndərilməyib. Yəni çıxışda birinci gəlməlidir, çağırılmadan əvvəl heç bir HTML teq, boş sətir və s. olmamalıdır. Daxil et və ya tələb kimi fayl funksiyaları ilə kodu oxuyarkən səhvlə üzləşmək olduqca yaygındır, bu kodda header() çağırışından əvvəl çap olunan boşluqlar və ya boş sətirlər var. Eyni problemlər tək PHP/HTML faylından istifadə edərkən də yarana bilər.

Yəni, skript işləyicisini html-dən saxlamaq lazımdır - axı əslində o, özü heç nə çıxarmır, sadəcə onu başqa ünvana ötürür - bu birincidir.

başlıq($yönləndirmə);

əks-səda başlığı($yönləndirmə);

Təcrübə

Çünki echo() əslində ona yazır http cavab orqanı, və başlıqlarda deyil və başlıq etibarsız qaytarır (yəni dəyərləri qaytarmır), yuxarıda qeyd edildiyi kimi, echo() istifadə etməyin mənası yoxdur, lakin
Ancaq bir təcrübə etməyi təklif edirəm:

  1. html silin
  2. əks-səda çıxarmayın

Siz əslində echo()-dan əvvəl header() funksiyasını çağırdığınız üçün (çünki header() echo() üçün arqumentdir) və buna görə də qaytarın -- eyni zamanda funksiyanın null olub-olmadığını yoxlayın -- onun boş sətir kimi şərh edilib-edilməyəcəyini yoxlayın. və ya (daha doğrusu) redirect artıq baş verəcək kimi echo belə işə başlamayacaq.

Səbəbini yenidən nəzərdən keçirək

Bunlar. başlığı çağırmadan əvvəl() heç bir məzmun göstərilməməlidir(funksiyanın təsvirində nə yazılıb: http://php.net/manual/ru/function.header...)

  • 1) nə əks-səda ilə
  • 2) html mətninin brauzerə adi atılmasının köməyi ilə deyil.

Bizim vəziyyətimizdə, görünür, əks-səda heç bir şeyə təsir etmir, amma işləyicidəki html həqiqətən təsir edir.

məsələ həll olundu

Məsləhətinizlə silindi. HTML teqləri. İndi yönləndirmə düzgün baş verir, işləyici skripti belə görünür:

Echo funksiyası həqiqətən işə təsir etmir, yəni. onu S. Holzner kimi tərk edə bilərsiniz:

Həmçinin, yönləndirmə kodunu tərtib edərkən keçidin aparıldığı faylın uzadılmasına diqqət yetirməlisiniz: təklif olunan sintaksislə o, başlıq arqumentində göstərilməlidir.

  • Şərhlər yazmaq üçün daxil olun

Amma siz onu işə sala bilərsiniz

Ancaq əvvəlki işləyicini də işlədə bilərsiniz

İstifadəçi yönləndirməsi

php.ini faylında seçimi təyin etsəniz

Çıxış_buferləmə = 4096

  • Şərhlər yazmaq üçün daxil olun

Başlıqları yenidən göndərmək qadağandır, HTTP protokolu belə işləmir! Bəs onda nə etməli? Səhifədəki çıxışdan sonra siz də sessiyanı başlatmalı və kuki qoymalısınız? - Çıxışın buferləşdirilməsini xatırlayın.

Yəni, sıfırdan fərqli bir tampon ölçüsü təyin edildikdə, o, dolu olana qədər başlıqları manipulyasiya etmək hələ də mümkündür. Sıfır tampon ölçüsü ilə, məzmunun çıxışından sonra dərhal geri qaytarılır əvvəl HTTP cavab başlıqlarının müştəriyə ötürülməsi.

Və məlum oldu ki, biz artıq şəbəkə üzərindən "uçan" başlıqları müştəriyə dəyişdirmək istəyirik (bu o deməkdir ki, onları düzəltmək artıq mümkün deyil - xüsusən də başlıq. yer, bu, tələb olunan səhifədə qalmağı və ya başqasını tələb etməyi göstərir - "yönləndirici" skriptinin cavabı (bizim vəziyyətimizdə bu, forma işləyicisidir) sadəcə başqa bir səhifə tələb etməmiz lazım olduğunu bildirir), bu barədə php bizi xəbərdar edir. .

Amma: Təbii ki, problemi bu şəkildə həll etmək mümkün deyil (çox düzgün deyil, daha dəqiq).

_____________
matfak vgu və qalan klassiklər =)

  • Şərhlər yazmaq üçün daxil olun

HTTP başlıqlarını və HTTP başlıq sahələrini başa düşmək

HTTP başlıqları vasitəsilə göndərilən HTTP əməliyyatı üçün lazım olan mühüm məlumatları təmin edin http protokolu.

Ümumi HTTP başlıq formatı iki nöqtə ilə ayrılmış addan ibarətdir - başlıq sahəsində dəyər cütləri. Ad-dəyər cütlüyünün hər biri karetin qaytarılması (CR) və sətir lenti (LF) simvol ardıcıllığı ilə bitir. Hər başlığın sonundakı boş sahələr başlığın sonunu göstərir.

Tətbiqlərin izlədiyi ümumi başlıq formatı belə görünür:

HTTP başlıqlarının növləri

Dörd növ HTTP mesaj başlığı var. Onlar:

  • Ümumi başlıq
  • Sorğu Başlığı
  • cavab başlığı
  • Müəssisə Başlığı

Ümumi başlıq

Ümumi Başlıq sahələri sorğu və cavab mesajlarında ümumi tətbiq qabiliyyətinə malikdir. Başlıq sahələri yalnız ötürülən mesaja aiddir və köçürülmüş obyektə tətbiq edilmir.

Ümumi başlığın quruluşu belə görünür:

Keş nəzarəti sahə sorğu və cavab sistemində hər bir keşləmə mexanizmi tərəfindən izlənilməli olan direktivləri müəyyən edir.

əlaqə sahə göndərənə əlaqə üçün tələb olunan variantları təyin etməyə imkan verir. Bağlantı başlığı aşağıdakı formata malikdir:

Tarix sahə mesajın başlanması zamanı tarix və vaxtı əks etdirir. HTTP-də göstərilən tarix formatı belə görünür:

praqma sahə sorğu və cavab sistemində hər hansı bir alıcıya tətbiq olunan icraya dair xüsusi direktivi daxil etməyə kömək edir.

Treyler sahə dəyəri mesaj treylerindəki başlıq sahələri dəstinin yığın köçürmə kodlaşdırması ilə kodlaşdırılıb kodlaşdırılmadığını müəyyən edir.

Transfer Kodlaşdırması sahə mesajın gövdəsinə hər hansı bir transformasiya növünün tətbiq edilib-edilmədiyini göstərir.

Təkmilləşdirin sahə müştərilərə əlavə dəstəklənən rabitə protokollarını təyin etməyə imkan verir. O, həmçinin serverə protokolları əlavə protokollarla dəyişməyə imkan verir.

Vasitəsilə sahə ara protokolları göstərən proksilər və şlüzlər tərəfindən istifadə edilən məcburi sahələrdir. O, həmçinin istifadəçi-agent və server arasında sorğu alıcısını və server ilə müştəri arasında cavabı göstərir.

Xəbərdarlıq sahəsində mesajın statusu və mesajda əks olunmayan mesaj çevrilmələri haqqında əlavə məlumatlar var.

Xəbərdarlıq başlıqları adətən cavablarla göndərilir.

Sorğu başlığı sahəsi müştərilərə sorğu məlumatlarını və müştəri məlumatlarını əlavə olaraq serverə ötürməyə imkan verir.

Sorğu başlığının strukturu belə görünür:

qəbul et sahə cavab üçün məqbul olan media növlərini təyin edir.

"*" media növlərini diapazonda qruplaşdırmaq üçün istifadə olunur

"*/*" bütün media növlərini göstərir

"type/*" növün bütün alt növlərini göstərir

Charset qəbul edin sahə cavab qəbul edilə bilən simvol dəstlərini göstərir. Bu, müştəriləri bu simvol dəstlərində sənədi təmsil etmək üçün serverə siqnal vermək üçün xüsusi təyinatlı simvol dəstlərini başa düşməyə qadir edir.

Kodlaşdırmanı qəbul edin sahə Qəbulla oxşardır, cavabın məqbul məzmun kodlamasını məhdudlaşdırır.

Qəbul Dili sahə Qəbulla oxşardır, üstünlük verilən təbii dillər toplusunu məhdudlaşdırır.

Səlahiyyət sahə serverlə autentifikasiya etmək istəyən istifadəçi agentləri üçündür.

gözləyin sahə müştəri tərəfindən tələb olunan server davranışlarını göstərir.

From sahəsində sorğu edən istifadəçi-agentə nəzarət edən istifadəçinin e-poçt ünvanı var.

Ev sahibi sahə internet hostunu və istifadəçi URI-dən tələb olunan resurs port nömrəsini müəyyən edir.

Əgər Match sahəsində şərti üsullar etmək üçün istifadə olunur.

Əgər-Dəyişdirilib-Bundan sonra sahə şərti üsul yaratmaq üçün istifadə olunur. Əgər tələb olunan variant müəyyən edilmiş vaxt ərzində dəyişdirilməsə, obyekt serverdən geri qaytarılmayacaq.

Əgər-Yoxsa-Uyğun deyil sahə minimum əməliyyat yükü ilə keş məlumatlarını səmərəli şəkildə yeniləməyə imkan verir.

Əgər Range sahə müştərilərə çatışmayan obyektin bir hissəsini almağa imkan verir və ya başqa bir şəkildə müştərilər bütün yeni obyekti göndərməyi xahiş edə bilərlər.

Əgər-Dəyişdirilməmiş-Bundan sonra sahəsi bu sahədə göstərilən vaxtdan bəri dəyişdirilməmişsə, serverə tələb olunan əməliyyatı yerinə yetirməyə imkan verir.

Maks Hücumçular sahəsində sorğu yönləndirici proksi və ya şlüzləri məhdudlaşdırmaq üçün TRACE və OPTIONS üsulları ilə mexanizmlər təmin edir.

Proksi avtorizasiyası sahə müştəriyə proxy-nin təhlükəsizliyini müəyyən etməyə imkan verir.

Aralığı sahə bayt ardıcıllığı kimi təmsil olunan HTTP mesajlarında HTTP obyektlərini təyin edir. HTTP axtarış sorğusu GET metodlarından istifadə edərək bir və ya bir neçə alt diapazonu tələb edir.

İstinad edən Sahə müştərilərə Sorğu-URI-nin tapıldığı resursun URI ünvanını təyin etməyə imkan verir.

TE sahə cavabda qəbul edə biləcəyi genişləndirmə köçürmə kodlamasını göstərir. Bundan əlavə, o, yığın köçürmə kodlaşdırmasında treyler sahələrini qəbul edib-etməyəcəyini göstərir.

İstifadəçi agenti sahəsində sorğu edən istifadəçi-agent haqqında məlumat var.

HTTP Cavab Başlığı

Cavab başlığı sahəsi serverə sadə Status-Line cavabından başqa cavablar vasitəsilə əlavə məlumat ötürməyə imkan verir.

Cavab başlığının strukturu belə görünür:

Aralıqları qəbul edin sahə serverlərə resurs diapazonu sorğularının qəbulunu bildirməyə imkan verir.

Yaş sahə göndərənə serverin cavab verdiyi vaxtdan bəri təxmini vaxtını göstərir.

ETag sahə sorğu üçün obyekt etiketinin cari dəyərini təqdim edir.

yer sahə yeni resursun identifikasiyasını tamamlamaq üçün alıcıları Sorğu-URI-dən başqa yerlərə yönləndirir.

Proksi Doğrulama sahə proksi autentifikasiyası cavabı üçün məcburi daxiletmədir.

Yenidən cəhd edin - sonra sahə xidmətin müştəri üçün əlçatmaz qalacağı müddətin uzunluğunu göstərmək üçün xidmət mümkün olmadıqda cavab kimi istifadə olunur.

server sahəsində sorğuları idarə etmək üçün server tərəfindən istifadə olunan proqram təminatı haqqında məlumat var.

Fərqli sahəsi sorğunun cavabını təsdiqləmədən sorğunun cavabından istifadə etmək üçün keşin uyğun olub olmadığını müəyyən edən sorğu sahəsini göstərir.

WWW-Autentifikasiya sahə cavab mesajı icazəsiz olduqda istifadə olunur.

Müəssisə başlığı sahələri qurum-bədən və ya tələb olunan resurs haqqında metainformasiyanı müəyyən edir. Müəssisə-başlıq formatı belə görünür:

icazə verin sahəsində Request-URI müəyyən edilmiş resurslar tərəfindən dəstəklənən metodlar toplusunun siyahısı.

məzmun kodlaşdırması sahə media tipli dəyişdirici kimi istifadə olunur.

Məzmun-Dil sahə müəssisənin müştəriləri üçün təbii dili təsvir edir.

məzmun uzunluğu sahə onluq ədədlə təmsil olunan obyektin ölçüsünü göstərir.

məzmun yeri Sahə Sorğu Edilən-URI-dən başqa bir yerdən əlçatan olduqda qurum üçün resursun yerini təmin edir.

Məzmun-MD5 sahə müəssisə orqanında MD5 həzmindən istifadə edərək mesajın bütövlüyünün yoxlanılmasını (MIC) təmin edir.

məzmun diapazonu sahə tam qurum-bədənin qismən hissəsinin harada tətbiq edilməli olduğunu müəyyənləşdirir.

məzmun növü sahə obyekt orqanının media növünün alıcıya göndərildiyini və ya sorğuların göndərilməsi üçün GET metodunun istifadə edildiyini göstərir.

Müddəti bitir sahəsində cavabın köhnəldiyi tarix/saat göstərilir.

Son dəyişdirilmiş sahəsində variantın son modifikasiyasının tarixi və vaxtı göstərilir.

Qəbul edildikdə sahə adının başlıqda görünmə sırası əhəmiyyətsizdir. Şərti olaraq ümumi başlıqlar əvvəlcə yerləşdirilir, ardınca sorğu və ya cavab başlığı sonunda subyekt başlığı ilə yerləşdirilir.

Müəllif Hüququ Bildirişi: Zəhmət olmasa, saytın əvvəlcədən yazılı icazəsi olmadan bu məqaləni köçürməyin və ya tərcümə etməyin

HTTP Debugger hər hansı bir brauzerdən və ya masaüstü proqramdan HTTP başlıqlarını, kukiləri, POST parametrlərini, HTTP məzmununu və CORS başlıqlarını tutmaq və təhlil etmək imkanı verən tərtibatçılar üçün proxy-siz HTTP analizatorudur. Möhtəşəm UI və istifadəsi çox asandır. Proksi deyil, şəbəkə problemi yoxdur!

Bir dəfə bloquma girəndə anlaşılmaz bir səhv tapdığımda təəccübləndim, belə bir şey:

Xəbərdarlıq: Başlıq məlumatını dəyişdirmək mümkün deyil - başlıqlar artıq göndərilmişdir (çıxış /xxxxxxxx/wp-config.php:1 ünvanında başlamışdır)

Və adminə daxil olmaq üçün heç bir yol yoxdur. Mən dərhal wp-config.php faylında nəyin səhv olduğunu yoxlamağa getdim. Hər şey yerində idi, verilənlər bazasına parollar düzgün idi. Yenə sındırıldığını düşündüm)) Amma yenə FTP-də vandalizm əlaməti yox idi. Ən qəribəsi (sonda məni tamamilə çaşdırdı) yalnız www olmadan sayta keçidin işləməməsi və ya əksinə (dəqiq xatırlamıram). Hosteri döyməyə başladım, domen admin panelindəki parametrlərə baxın - ümumiyyətlə, çox şey.

Ancaq daha asan olduğu ortaya çıxdı - konfiqurasiya faylının əvvəlində BOM var idi— UTF-8 faylları üçün marker (imza). Buna görə yuxarıdakı səhv atıldı. Bunun sizin başınıza gəlməsinin qarşısını almaq üçün ilk növbədə ya bu imzanı ümumiyyətlə qoymayan kod redaktorlarından istifadə etməlisiniz, ya da faylı saxlamazdan əvvəl lazım olub-olmadığını dəqiqləşdirməlisiniz.

Bəzi mətn redaktorlarında parametrlərdə "Unicode İmzasını (BOM) Daxil Et", "Bayt Sifarişi İşarəsini əlavə et" və ya oxşar onay qutularını tapa bilərsiniz. Əks təqdirdə, müəyyən bir proqramda lazımsız bir seçimi söndürə bilmədən, onu istifadə etmək tövsiyə edilmir. Xüsusi forumlarda yaxşıların siyahısını tapa bilərsiniz mətn redaktorları, Bu - Notepad2, PSPad, UnicEdit, Notepad++. Sonuncu haqqında çox şey yazılmışdır, kifayət qədər güclü bir vasitədir. Mənim kompüterimdə təsadüfi olaraq alternativ redaktor var idi - Akelpad- Oxşar tapşırıqlar üçün istifadə edirəm.

Burada başqa bir məqamı qeyd etmək lazımdır - BOM ilə bir səhv yalnız wp-config.php faylında ola bilməz. Üstəlik, xəbərdarlıqları göstərmək seçimi qeyri-aktiv olduqda, problemin haradan gəldiyini heç görməyəcəksiniz. Belə hallarda (yaxşı və digərləri) sadə istifadə etməyi məsləhət görürəm BOM ilə faylları tapmaq üçün skript. Yuri Belotitskiyə inkişaf üçün təşəkkür etmək lazımdır.

Skriptdən istifadə çox sadədir.

  1. istədiyiniz fayl
  2. Üstünə tökün FTP server kök qovluğuna. WordPress saytın kökündə (lakin, məsələn, blog qovluğunda) quraşdırılmayıbsa, skript WordPress-in yerləşdiyi qovluğa yerləşdirilməli və ondan işləməlidir.
  3. Başlama çox sadədir - brauzerin ünvan çubuğuna http://your.site/find_bom.php linkini daxil edin.

Nəticədə, səhv olan faylların siyahısını əldə edin. Yeri gəlmişkən, sürət üçün skript yalnız istifadəçilərin adətən faylları yüklədiyi qovluqları yoxlayır - kök, /wp-content/themes və /wp-content/plugins.

Əsasən budur. Bu qədər sadə məsələni həll etmək necə də çətin idi. Ümid edirəm ki, təcrübəm sizə bir az kömək etdi və indi müvafiq xəbərdarlıq görünəndə nə edəcəyinizi biləcəksiniz :) BOM-dan bu və ya digər faylı düzəldə bilmirsinizsə, sadəcə WordPress paylanmasından yenisini yükləyə bilərsiniz.

P.S. Yeni evlənənlər üçün uyğun bir sayt banketlərin təşkili və toyla bağlı bütün məsələlərin həllidir.