Cum să găsiți și să depășiți BOM - o eroare neplăcută în WordPress. Remediere erori: nu se pot modifica informațiile din antet – anteturile deja trimise de anteturile de informații Godless

Este uimitor cum o mică greșeală poate face site-ul dvs. WordPress complet inoperabil. Vorbim, desigur, despre celebra eroare de avertizare WordPress Atenție: nu se pot modifica informațiile antetului – anteturile deja trimise de pluggable.php (nu se pot modifica informațiile antetului). Dacă sunteți unul dintre cei care se confruntă cu această eroare, atunci ați ajuns la locul potrivit. În aceasta, vom discuta motivul pentru care această eroare apare în primul rând și vom analiza soluțiile care vor rezolva permanent problema.

Înainte de a începe, asigurați-vă că aveți următoarele:

  • Acces la panoul de control al găzduirii sau acces FTP

Cum apare informațiile de antet Nu se pot modifica – anteturile deja trimise prin eroare?

Să ne uităm la un exemplu al acestei erori pentru a înțelege mai bine motivele. Eroarea apare de obicei sub această formă:

Avertisment: Nu se pot modifica informațiile antetului - anteturile deja trimise de (ieșirea a început la /public_html/wp-content/plugins/my-plugin/my-function.php:#) în /public_html/wp-includes/pluggable.php pe linia #

După cum puteți vedea, eroarea menționează două fișiere. Primul fișier (în cazul nostru: my-function.php postat în /public_html//wp-content/plugins/my-plugin/) în fruntea suspecţilor. Acesta este codul nostru personalizat care este conceput pentru a modifica funcționalitatea de bază oferită de WordPress. Funcționalitatea de bază se află în fișier conectabil.php(Fișier de bază WordPress, neschimbat pentru orice instalare WordPress). Cu alte cuvinte, problema este în primul fișier, ceea ce împiedică executarea corectă a celui de-al doilea fișier.

Cauza principală a erorii este inutilă spații în primul fișier. Acestea sunt spații în partea de sus sau de jos a fișierului, spații inutile oriunde în fișier sau chiar spații în etichetele PHP . Apropo, deoarece programatorii pot (și de obicei o fac) să introducă din greșeală spații suplimentare în codul lor, această eroare apare mai des decât v-ați aștepta. Linia # furnizată în mesajul de eroare se referă la locația problemei - acest lucru va ajuta la rezolvarea problemei mai rapid și fără agitație.

Remedierea erorii nu poate modifica informațiile antetului – anteturile deja trimise de

Acum că știți ce cauzează eroarea, puteți continua să o remediați. Vă vom arăta două opțiuni pentru a remedia problema, pe care le puteți încerca individual sau pe rând, dacă individual nu vă ajută.

Opțiunea 1 – Editarea fișierului defect

Prima soluție la eroare Atenție: nu se pot modifica informațiile din antet– corectarea manuală a unui fișier cu o eroare. Aveți deja informațiile necesare pentru a găsi problema în mesajul de eroare în sine (rețineți că acesta este primul fișier din mesaj). Tot ce trebuie să faceți este să deschideți acest fișier prin FTP folosind un client precum FileZilla sau printr-un manager de fișiere.

În esență, tot ceea ce trebuie avut în vedere aici este eliminarea spațiilor suplimentare/liniilor goale din fișier. Un loc bun pentru a începe este linia # menționată în mesajul de eroare. De aici, puteți continua să analizați restul fișierului, căutând alte spații inutile sau linii goale, până la sfârșitul documentului.

Asigurați-vă că scrieți corect etichetele de început și de sfârșit PHP. Nu ar trebui să existe spațiu înainte sau după etichetă , precum și eticheta ?> . De asemenea, ultima linie de cod nu trebuie să se termine cu un spațiu sau cu un avans de linie suplimentar.

În captura de ecran de mai jos puteți vedea fișierul wp-config.php, care are spații înaintea primei etichete PHP.

CHEIE: Mulți editori de text pot elimina automat spațiile inutile. De exemplu, pentru a elimina spații suplimentare din editorul Atom, evidențiați tot codul și mergeți la P ackages -> Spațiu alb -> Eliminați spațiul alb final.

Opțiunea 2 – Înlocuiți fișierul defect

Desigur, editarea unei serii întregi de fișiere cu erori poate fi dificilă. Fișierele ar putea fi legate de un plugin sau o temă pe care tocmai ați instalat-o pe site-ul dvs. sau ar putea fi chiar fișiere de bază WordPress.

Dacă eroarea este într-adevăr cauzată de un plugin sau o temă, tot ce trebuie să faceți este să o reinstalați. Această acțiune ajută în majoritatea cazurilor. Pe de altă parte, dacă fișierul de bază WordPress este cauza erorii, cea mai bună soluție este să luați o copie curată a WordPress și să înlocuiți fișierul cu eroarea din instalarea dvs. cu același în versiunea corectă. Acest lucru va asigura că fișierul defect este restabilit la starea inițială, în timp ce restul instalării site-ului dvs. WordPress rămâne intactă. Acum, reîncărcați pagina și asigurați-vă că eroarea este remediată.

În concluzie

Indiferent dacă ați lipit o bucată de cod într-un fișier, ați adăugat un nou plugin/temă sau ați scris codul manual, există riscul ca în fișier să apară spații suplimentare. Aceste spații aparent inocente se pot transforma într-o eroare WordPress Atenție: nu se pot modifica informațiile antetului – anteturile deja trimise de.

În acest ghid, am analizat cum să remediați astfel de erori, iar acum site-ul dvs. funcționează din nou conform așteptărilor. Mai multe tutoriale WordPress pot fi găsite aici.

Oamenii vin constant la mine cu această eroare și mă întreabă: „ Unde este greseala?„. De-a lungul întregii perioade de timp am primit cam câteva scrisori de genul acesta 500 , nu mai puțin. Este timpul să terminați cu eroarea „”. În acest articol voi vorbi despre motivele acestei erori, precum și despre cum să o rezolv.

Dacă traduceți această eroare în rusă, veți obține ceva de genul: " Nu se poate modifica antetul deoarece au fost deja trimise"Ce este asta" antete"? Hai să ne dăm seama.

Când serverul returnează un răspuns către client, altul decât corpul (de exemplu, cod HTML pagini), există și titluri. Acestea conțin codul de răspuns al serverului, prăjitură, codificare și mulți alți parametri de serviciu. Can Script PHP trimite un titlu? Desigur că se poate. Există o funcție pentru asta antet().

Această funcție, de exemplu, este utilizată în mod constant atunci când. Această funcție este utilizată în mod regulat și pentru .

De asemenea, anteturile sunt modificate la trimitere prăjiturăși la începutul sesiunii (funcția session_start()).

Și acum despre de ce încă apare eroarea? Serverul dă întotdeauna antetele serverului mai întâi și apoi corpul. Dacă serverul a returnat deja anteturile, atunci corpul merge și apoi întâlnește unele session_start(). Se pare că nefericitul programator a uitat să trimită antetele înainte de începerea corpului și acum vrea să ajungă din urmă trenul care a plecat deja.

Iată codul cu eroarea „”:



?>

Desigur, asemenea prostii PHP nu iartă. Și ar fi trebuit scris așa:

sesiune_start(); // Să începem sesiunea
?>

Acest script nu va provoca erori, deoarece toate anteturile sunt trimise mai întâi și numai apoi este generat corpul de răspuns al serverului.

Un alt exemplu de cod cu o eroare:

ecou „Bună ziua!”; // Imprimă ceva
sesiune_start(); // Să începem sesiunea
?>

Același lucru, dintr-un motiv oarecare, corpul (sau o bucată din el) este afișat mai întâi și apoi și-au amintit că trebuie să modifice și anteturile.

Gândiți-vă singur cum să rescrieți corect acest cod.

Un alt exemplu:




Ieșire;
?>

Când autorul unui astfel de cod eșuează, este surprins de această eroare și spune: „Este o coincidență foarte ciudată, când operațiunea este reușită, totul este în regulă, iar când există vreo eroare, îmi spun Nu pot modifica informațiile antetului - anteturi. trimis deja.” Nu la propriu, dar acesta este ideea.

Problema este aceeași, iar modul corect de a o scrie este:

$eroare = adevărat; // Au existat erori?
if ($error) echo „A apărut o eroare”;
else header("Locație: ".$_SERVER["HTTP_REFERER"]); // Redirecționează înapoi
Ieșire;
?>

Există și erori subtile:

header("Locație: ".$_SERVER["HTTP_REFERER"]); // Redirecționează înapoi
Ieșire;
?>

Eroarea din acest cod apare din cauza unui spațiu, care este prezent înainte . Spațiul este un caracter normal și face parte din corpul răspunsului. Și când serverul îl vede, concluzionează că nu vor mai fi antete și este timpul să scoată corpul.

Există și următoarele erori, care sunt de aceeași natură. Să presupunem că există un fișier a.html:

require_once "a.html";
header("Locație: ".$_SERVER["HTTP_REFERER"]); // Redirecționează înapoi
Ieșire;
?>

Și persoana este sincer surprinsă, de unde a apărut eroarea dacă nu a scos nimic? Prin urmare, nu trebuie să vă uitați în mod specific 1 fișier și toate fișierele care sunt incluse în acesta. Și în cele care sunt conectate la cele conectate, trebuie să te uiți și să nu existe ieșire.

Și ultimul punct, dar mai dificil. Se pare că uneori această eroare apare chiar și cu codul corect. Atunci asta e tot este o chestiune de codificare. Asigurați-vă că codarea fișierului este " UTF-8 fără BOM"si exact" fără BOM„și nu doar” UTF-8". Pentru că BOM sunt octeții care vin chiar la începutul fișierului și sunt rezultatul.

Sper cu adevărat că acest articol va ajuta la rezolvarea absolută a tuturor problemelor asociate cu eroarea „”, deoarece am încercat să evidențiez toate problemele care apar. Și apoi trebuie să vă întoarceți capul și să vă gândiți, ce este greșit în codul dvs.?

Astăzi am decis să vorbim despre ce înseamnă un mesaj „Avertisment: Nu se pot modifica informațiile antetului - anteturile deja trimise de (ieșire a început la /home/...", care apare pe pagina unui site în loc de conținutul său principal.
După cum sa dovedit, există destule scrise pe Internet pe această temă, dar nu există instrucțiuni generalizate despre ce înseamnă totul și cum să scapi de el.
Am decis să adăugăm câteva picături la marea uriașă de informații pe această temă, deoarece ne-am confruntat personal cu această problemă.

Cu ceva timp în urmă, am transferat mai multe site-uri clienți de la o găzduire la alta.
Totul a mers bine, site-urile erau accesibile, dar când am încercat să mă autent în admin. panou, după introducerea login-ului și a parolei, a apărut o pagină albă în locul panoului de control.
Am verificat pe alte site-uri - același lucru.
Pentru a afla posibilele motive, am activat afișarea erorilor.
Pentru a face acest lucru, trebuie să editați fișierul .htaccess situat în rădăcina site-ului prin FTP, adăugând linia la acesta:

Php_flag display_errors activat

După aceea, la autentificarea în panoul de administrare, au apărut mai multe mesaje precum „Avertisment: Nu se pot modifica informațiile antetului - anteturile deja trimise de (ieșire a început la /home/.../functions.php:1552) în /home/... /public_html /wp-login.php pe linia 362”, etc.

În urma căutării s-a găsit informații că acest mesaj anunță că informațiile antetului nu pot fi modificate, deoarece anteturile (informațiile despre acestea) fuseseră deja trimise anterior și apoi în paranteze s-a indicat în ce rânduri în ce fișiere s-a făcut acest lucru .


Titluri (Anteturi) sunt informații de serviciu ale serverului pe care se află site-ul. Înainte ca browserul să afișeze conținutul site-ului, acesta primește anteturi de la server, care indică diverse date: dacă este activată memorarea în cache a paginii, codificarea acesteia, tipul de conținut al paginii și altele. În sistemele de management al conținutului site-ului, anteturile sunt generate de funcții situate în diferite fișiere de sistem.
Condiție obligatorie- anteturile trebuie trimise înainte de conținutul (conținutul) principal al paginii.


Dacă conținutul site-ului este transmis înainte de anteturi, atunci apare o situație despre care mesajul „Avertisment: Nu se pot modifica informațiile antetului - anteturi deja trimise de...” ne avertizează.

În ce situații s-ar putea întâmpla acest lucru? După cum sa menționat deja, în CMS modern, anteturile sunt rezultatul uneia sau mai multor funcții. Funcția în sine este un anumit fragment de cod inclus între inițiale si finala ?> etichete.

Orice lucru în afara acestor etichete este considerat conținut al paginii.
Astfel, dacă la începutul paginii există funcții, al căror rezultat sunt trimise anteturi, și primim mesajul „Avertisment: Nu se pot modifica informațiile antetului...”, atunci rezultă că unele informații legate de conținutul pagina este trimisă de pe server înaintea antetelor .

Ce sunt aceste informații și cum să le găsiți. Cel mai adesea acestea sunt spații și linii goale.

Un spațiu sau o linie goală este interpretată ca caractere în conținutul principal al paginii, așa că se dovedește că o parte din conținutul principal vine înaintea antetelor și este trimis mai întâi la browser.

Trebuie să descărcați fișierele indicate în mesajele „Avertisment: Nu se pot modifica informațiile antet...” pe computerul dvs. local, să le deschideți într-un editor de cod (eu folosesc NotePad++) și să verificați cu atenție liniile și spațiile goale:

Cu toate acestea, există o caracteristică importantă care poate crește semnificativ timpul necesar pentru a găsi o soluție.
Este posibil ca fișierul să nu conțină linii sau spații goale, dar dacă a fost salvat în codificare UTF-8, atunci editorul în care a fost creat fișierul poate insera un caracter străin chiar la începutul documentului. Acest caracter este un identificator UTF-8 egal cu un spațiu cu lățime zero, care poate să nu fie afișat deloc în editor, dar pe server va fi perceput ca conținut principal și afișat înaintea titlurilor.

Pentru a scăpa de acest identificator, trebuie să resalvați fișierele descărcate în format UTF-8 fără BOM(UTF-8 fără BOM).

NotePad++ face față perfect acestei sarcini.

După aceste acțiuni și actualizarea fișierelor de pe server, mesajul ar trebui să dispară și site-ul va funcționa ca de obicei.

Înțelegerea antetelor HTTP și a câmpurilor de antet HTTP

Antete HTTP furnizați informații vitale necesare pentru o tranzacție HTTP trimisă prin protocol http.

Formatul general de antet HTTP conține perechi nume - valoare separate prin două puncte în câmpul antet. Fiecare dintre perechile nume-valoare se termină cu o secvență de caractere de întoarcere a carului (CR) și o secvență de caractere de avans de linie (LF). Câmpurile goale de la sfârșitul fiecărui antet indică sfârșitul antetului.

Formatul de antet comun urmat de aplicații arată astfel:

Tipuri de anteturi HTTP

Există patru tipuri de anteturi de mesaje HTTP. Sunt:

  • Antet general
  • Antet cerere
  • Antet de răspuns
  • Antet de entitate

Antet general

Câmpurile de antet general au aplicabilitate comună în mesajele de solicitare și răspuns. Câmpurile de antet se aplică numai mesajului transmis și nu se aplică entității transferate.

Structura unui antet general arată astfel:

Controlul cache-ului câmpul specifică directivele care trebuie urmate de fiecare mecanism de stocare în cache pe un sistem de cerere și răspuns.

Conexiune câmpul permite expeditorului să specifice opțiunile necesare pentru o conexiune. Antetul conexiunii are următorul format:

Data câmpul reprezintă data și ora în timpul inițierii mesajului. Formatul de dată specificat în HTTP arată astfel:

Pragma câmpul ajută la includerea unei directive specifice de implementare aplicabile oricărui destinatar într-un sistem de solicitare și răspuns.

Trailer valoarea câmpului specifică dacă un set de câmpuri de antet din trailerul mesajului este codificat cu codare de transfer în bloc.

Transfer-Codificare câmpul indică dacă orice tip de transformare este aplicat corpului mesajului.

Upgrade câmpul permite clienților să specifice protocoale de comunicare suplimentare acceptate. De asemenea, permite serverului să schimbe protocoalele cu protocoalele suplimentare.

Prin câmpurile sunt câmpuri obligatorii utilizate de proxy și gateway-uri care indică protocoale intermediare. De asemenea, indică destinatarul cererii între agent utilizator și server și răspunsul dintre server și client.

Avertizare câmpul conține informații suplimentare despre starea mesajului și transformările mesajului care nu sunt reflectate în mesaj.

Anteturile de avertizare sunt de obicei trimise cu răspunsuri.

Câmpul antet cerere permite clienților să transmită suplimentar informații despre cerere și informații despre client către server.

Structura antetului unei cereri arată astfel:

Accepta câmpul specifică tipurile media care sunt acceptabile pentru răspuns.

„*” este folosit pentru a grupa tipurile media în interval

„*/*” indică toate tipurile de media

„tip/*” indică toate subtipurile unui tip

Accept-Charset câmpul indică seturi de caractere acceptabile. Face clienții capabili să înțeleagă seturi de caractere speciale pentru a semnala serverului să reprezinte documentul în aceste seturi de caractere.

Acceptare-Codare câmpul este similar cu Accept, restricționează codificarea conținutului acceptabil pentru răspuns.

Accept-Limba câmpul este similar cu Accept, restricționează setul preferat de limbaje naturale.

Autorizare câmpul este pentru agenții utilizator care doresc să se autentifice cu serverul.

Aştepta câmpul indică comportamentele serverului cerute de un client.

Din câmpul conține adresa de e-mail a unui utilizator care controlează utilizatorul-agent solicitant.

Gazdă câmpul specifică gazda de internet și numărul portului de resurse solicitat de la URI-ul utilizatorului.

Dacă-Match câmpul este folosit pentru a face metode condiționale.

Dacă-Modificat-De vreme ce câmpul este folosit pentru a face o metodă condiționată. Dacă varianta solicitată nu este modificată în timpul specificat, entitatea nu va fi returnată de pe server.

Dacă-Niciunul-Se potrivește câmpul permite actualizarea eficientă a informațiilor din cache cu o suprasarcină minimă pentru tranzacție.

Dacă-Range câmpul permite clienților să primească o parte din entitatea lipsă sau, în caz contrar, clienții pot cere să trimită întreaga entitate nouă.

Dacă-Nemodificat-De vreme ce câmpul permite serverului să efectueze operația solicitată dacă nu a fost modificat de la ora specificată în acest câmp.

Max Atacanti câmpul oferă mecanisme cu metode TRACE și OPTIONS pentru a limita proxy-urile sau gateway-urile de redirecționare a cererii.

Autorizare proxy câmpul permite clientului să identifice pentru a securiza proxy.

Gamă câmpul specifică entitățile HTTP din mesajele HTTP reprezentate ca o secvență de octeți. Solicitarea de preluare HTTP solicită una sau mai multe sub-gamă de entități folosind metode GET.

Referitor câmpul permite clienților să specifice adresa URI a resursei din care se găsește Request-URI.

T.E. câmpul indică codul de transfer al extensiei pe care îl poate accepta în răspuns. În plus, indică dacă va accepta câmpuri de remorcă în codare de transfer în bloc.

User-Agent câmpul conține informații despre agentul utilizator solicitant.

Antet de răspuns HTTP

Câmpul antet răspuns permite serverului să treacă informații suplimentare prin răspunsuri, altele decât răspunsul simplu din linia de stare.

Structura antetului răspunsului arată astfel:

Accept-Range câmpul permite serverelor să indice acceptarea cererilor de interval de resurse.

Vârstă câmpul indică expeditorul perioada aproximativă de timp de când serverul a răspuns.

ETag câmpul oferă valoarea curentă a etichetei de entitate pentru o solicitare.

Locaţie câmpul redirecționează destinatarii către alte locații decât Request-URI pentru a finaliza identificarea unei noi resurse.

Proxy-Autentificare câmpul este o includere obligatorie pentru răspunsul de autentificare proxy.

Reîncercați-După câmpul este utilizat ca răspuns atunci când un serviciu este indisponibil pentru a indica durata perioadei pentru care serviciul va rămâne indisponibil pentru client.

Server câmpul conține informații despre software-ul utilizat de server pentru a gestiona cererile.

Varia câmpul indică câmpul de solicitare care determină dacă un cache este eligibil pentru a utiliza răspunsul unei cereri fără revalidarea răspunsului.

WWW-Autentificare câmpul sunt utilizate atunci când un mesaj de răspuns este neautorizat.

Câmpurile antet de entitate definesc metainformații despre corpul entității sau resursa solicitată. Formatul antetului de entitate arată astfel:

Permite câmpul listează setul de metode acceptate de resursele identificate Request-URI.

Codificarea conținutului câmpul este folosit ca modificator de tip media.

Conținut-Limba câmpul descrie limbajul natural pentru clienții unei entități.

Conținut-Lungime câmpul indică dimensiunea unei entități reprezentată în număr zecimal.

Conținut-Locație câmpul furnizează locația resursei pentru o entitate atunci când aceasta este accesibilă dintr-o altă locație decât Requested-URI.

Conținut-MD5 câmpul oferă verificarea integrității mesajului (MIC) utilizând un rezumat MD5 pe corpul entității.

Gama de conținut câmpul specifică locul în care trebuie aplicat corpul parțial al întregului organism al entității.

Tip de conținut câmpul indică dacă tipul media al organismului entității este trimis destinatarului sau metoda GET este utilizată pentru a trimite cereri.

Expiră câmpul furnizează data/ora după care răspunsul devine învechit.

Ultima modificare câmpul indică data și ora ultimei modificări a variantei.

Ordinea în care numele câmpului apare în antet atunci când este primit este nesemnificativă. În mod convențional, anteturile generale sunt plasate mai întâi, urmate de antetul de cerere sau de răspuns cu antetul de entitate la sfârșit.

Notificare privind drepturile de autor: Vă rugăm să nu copiați sau să traduceți acest articol fără permisiunea prealabilă scrisă a site-ului

HTTP Debugger este un analizor HTTP fără proxy pentru dezvoltatori, care oferă posibilitatea de a captura și analiza anteturi HTTP, cookie-uri, parametri POST, conținut HTTP și anteturi CORS din orice browser sau aplicație desktop.

Interfață de utilizare minunată și foarte ușor de utilizat. Nu este un proxy, nu există probleme de rețea!

Acest mesaj de eroare este adesea întâlnit de programatorii care încep să folosească PHP. Înțelegerea de ce apare această eroare vă va ajuta să găsiți o soluție.

PHP face o mare parte din munca de a genera pagini web pentru tine, fara ca tu sa intrebi. O pagină web este formată din două părți: un antet și un corp.

Această eroare PHP comună este observată atunci când programatorul face greșeli în manipularea sau crearea antetelor. Iată un exemplu:

Avertisment: Nu se pot modifica informațiile antetului – anteturile deja trimise de (ieșirea a început la /home/usr1/public_html/sent.php:42) în /home/usr1/public_html/includes/theme-header.php pe linia 12

De obicei, nu trebuie să vă faceți griji cu privire la antet, deoarece este generat automat și conține informații despre pagină, server și cookie. Informațiile din antet sunt importante, dar de obicei nu sunt vizibile pentru utilizator. Iată câteva exemple:

Data: Luni, 10 iulie 2006 18:51:59 GMT Server: Apache/2.2.0 (Unix) mod_ssl/2.2.0 OpenSSL/0.9.7g Codificare conținut: gzip Tip conținut: text/html

Antetul trebuie să apară primul în răspunsul de la serverul web și este separat de corp printr-o linie goală. Motivul acestei erori este că o parte din corpul paginii web a fost deja trimisă utilizatorului înainte de a se încerca setarea valorii antetului. Deoarece PHP simplifică multe lucruri pentru dvs., problema poate fi pândită în locul obișnuit. Iată câteva îndrumări pentru găsirea problemei:

  1. Găsiți instrucțiunea header() care cauzează problema. Eroarea trebuie să fie pe sau înainte de această linie.
  2. Căutați orice instrucțiuni care ar putea direcționa ieșirea către utilizator înainte de această declarație de antet. Dacă găsiți unul sau mai multe, modificați codul pentru a muta instrucțiunea antet înaintea acestora. Declarațiile condiționale complexe pot complica problema, dar pot ajuta și la rezolvarea problemei. Alternativ, puteți utiliza o expresie condiționată în partea de sus a scriptului PHP care determină valoarea antetului cât mai devreme posibil și o setează acolo.
  3. Asigurați-vă că nu există spații în afara etichetelor de început și de sfârșit PHP. În timp ce linia goală înainte de eticheta de start
  4. Dacă salvați fișierul în codificare UTF-8, atunci asigurați-vă că fișierul este salvat fără semnătură (fără BOM). O semnătură este un octet adăugat la începutul fișierului, iar dacă scriptul PHP este salvat în acest format, atunci acest octet va fi perceput ca parte a ieșirii corpului paginii, ceea ce nu ar trebui să fie permis pentru a evita problema pe care o avem. iau în considerare.