Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  5 874
Hei. Jeg bruker WordPres, og har nå et stort problem med å logge med inn på wp-admin. Får bare denne feilmeldingen.

Warning: Cannot modify header information - headers already sent by (output started at /customers/loonern.com/loonern.com/httpd.www/wp-content/themes/nuu/functions.php:1) in /customers/loonern.com/loonern.com/httpd.www/wp-includes/pluggable.php on line 890

Noen som vet hvorfor, og hva jeg må gjøre? Dette haster litt.
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Du har ett eller annet i PHP-filen før skriptet. Pass på at <?php er det absolutt første i filen.

Edit: oi, linje 890, ja. Da får du flytte header()-kallet til begynnelsen av filen, før du sender noe faktisk output. Det første som dukker opp i filen som ikke er PHP-kode får headere til å sendes, og da blir det for sent med header()-kall.
Sist endret av robhol; 30. juli 2010 kl. 19:12.
denne feilen virker som oppstår i functions-fila på linje en hvor det er noe output. Som nevnt over pass på at <?PHP står på første linje i den fila.

Selv har jeg hatt den feilen selv etter å ha endret "encoding" på en fil i notepadd++. Jeg klarte å fikse dette ved å endre det til UTF8-WITHOUT-BOM
klikk-her's Avatar
Trådstarter
Ok, tusen takk
Skal se om jeg klarer det^^

Nå har jeg ingen erfaring med php. Men <?php er det første og eneste som står i første linje i functions-fila. Så det kan ikke være feilen. Og så tok jeg en titt på pluggable.php, mene hele den er bare et eneste stort rot. Og som jeg skjønte det så var det noe feil i den fila, på linje 890? ...hehe, i notepad var iallefall den fila litt av et syn.

Flere innspill på hva jeg kan gjøre?
Limited edition
Moff's Avatar
Dette er en feilmelding som sannsynligvis dukker opp fordi du prøver å "modify(e) header information" etter at output (HTML) er sent til klienten (bruker som besøker sida di). Headere må sendes til klienten før outputen (alt av innhold, design og sånt). Headere er kort fortalt "inside-information" som klient-PC-en bruker til å tolke resten av innholdet. Det er for eksmpel hvilket charset du bruker og slike ting. Det at "<?php" skal stå øverst i koden er forsåvidt sant, men det trenger på ingen måte å løse problemet ditt. PHP har en rekke funksjoner for å sende headere, og om du bruker en slik funksjon etter at du har brukt en tilsvarende funksjon som sender output, så blir det krøll. Her er noen vanlige PHP-funksjoner som sender headere (eller på annen måte IKKE kan brukes etter at output er sendt):
- session_start()
- setcookie()
- header()
Og her er noen vanlig funksjoner som sender output (som altså kun skal brukes senere i skriptet enn de som står over her):
- echo()
- print()
- var_dump()
Sjekk den referansen du har i feilmeldingen; hva står det på linje 890? Hvis det er en av de tre header-funksjonene, så bør du på ett eller annet vis flytte dem lengre opp i skriptet. Feilmeldingen forteller deg også hvor første output-funksjon ble kjørt; "(output started at ...". Hvis det ikke lar seg gjøre å flytte på disse funksjonene, så kan du kanskje angripe problemet omvendt; flytt output-funksjonene lengre ned enn header-funksjonene.

Dette med tegnkoding kan også være en faktor her - filer som er kodet i UTF-8 med BOM (byte order mark) er ubrukelige fordi BOM står foran <?php - og derfor starter alltid output før du rekker å bruker header-funksjonene. UTF-8 uten/without BOM funker fordi det, som navnet tilsier, ikke har dette byte order merket på starten av fila. Du kan ikke endre tegnkoding i den notepad-versjonen som følger med Windows, den er litt for primitiv. Sjekk heller ut Notepad++, om du ikke allerede har det.
legg merke til utput started at: (...)functions.php:1
Altså output starter på linje 1 i functions.php fila. om det på første linja (uten mellomrom eller ny linje) er <?PHP er det mest sansynlig en feil med at du har endret "encoding" på fila som gør at det er en form for whitespace eller spesialtegn der som du ikke ser.

Prøvd dette:
1: Endre navnet på fila functions.php til backup.php
2: Åpn opp notepad
3: Kopier alt fra backup.php inn i notepad
4: Lagre som functions.php i samme mappe
5: last opp den nye fila