Avatar billede hrole Mester
15. februar 2012 - 21:58 Der er 6 kommentarer og
1 løsning

Fejlmeddelelse: Warning: Cannot modify header information

Hej,

Jeg har mine scripts til mysql-forbindelser til at ligge separat, hvis jeg includer virker siden ikke, men laver jeg copy-paste af indholdet i include virker siden fint. Include virker fint på andre sider. Altså fejl ved:

include($_SERVER[DOCUMENT_ROOT].'/connections/D.php');

hvor D.php er:
$fejlforb_db = 'Der kunne ikke forbindes til databasen.';
$dbc_d = mysqli_connect('xxx', 'yyy', 'zzz', 'vvv') or die($fejlforb_db);

og får fejlmeddelelsen:
Warning: Cannot modify header information - headers already sent by (output started at D:\xxx\connections\D.php:4) in D:\xxx\phpgraphlib_v2.31\phpgraphlib.php on line 163

hvis jeg derimod erstatter includen med dens indhold i scriptet
$fejlforb_db = 'Der kunne ikke forbindes til databasen.';
$dbc_d = mysqli_connect('xxx', 'yyy', 'zzz', 'vvv') or die($fejlforb_db);

fungerer scriptet fint. Der sendes en header i phpgraphlib.php linie 163 - men jeg kan ikke se hvorfor det ene giver fejl og det andet fungere.
Hvor er fejlen?
Avatar billede Broxigar Praktikant
15. februar 2012 - 22:14 #1
Som du selv påpeger, du sender en header i den situation hvor det fejler.

Du må & kan ikke sende headers efter at body-delen er ved at blive læst, og det er derfor du får denne fejl.
Avatar billede hrole Mester
15. februar 2012 - 22:21 #2
Ja, det er jeg med på.

Men hvorfor fejl i det ene tilfælde, men ikke det andet?
Avatar billede heinzdmx Nybegynder
15. februar 2012 - 22:43 #3
En sandsynlig grund er at det din fil indeholder en BOM-character der bliver sendt og derved så kan headers ikke sende igen.


Sørg for at gemme filen som utf-8 uden BOM.

Et værktøj som Notepad++ kan vise dig hvilket format det er gemt som
Avatar billede olsensweb.dk Ekspert
15. februar 2012 - 22:47 #4
kunne det tænkes D.php
1) indeholder et linjeskift eller mellemrum i linje 4 som uskrives
2) filen være gemt som utf-8 med BOM (så burde det være linje 1 der er fejl i) der er heinzdmx så også inde på
Avatar billede heinzdmx Nybegynder
15. februar 2012 - 22:56 #5
Oh ja, havde ikke lige opdaget linjenummeret, så er det nok ikke bom alligevel, men en eller anden form for linjeskift eller tegn
Avatar billede hrole Mester
15. februar 2012 - 23:18 #6
ronols: der var et mallemrum efter ?>, og nu fungerer det. Tak. Smid svar.
Avatar billede olsensweb.dk Ekspert
16. februar 2012 - 09:29 #7
får du her
det er en klassiker, tegn uden for php tags'ne, og netop mellemrum ligger man ikke lige mærke til hvis det er efter :), med mindre editoren viser mellemrum som tegn
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester