Avatar billede krummel Juniormester
06. september 2009 - 20:19 Der er 12 kommentarer og
1 løsning

setcookie fejl

Når jeg forsøger at skabe en cookie i et php dokument med:
<?
setcookie(voted, voted);
?>

så får jeg meddelelsen:

Warning: Cannot modify header information - headers already sent by (output started at /.../tester.php:10)
in /.../tester.php on line 90

I linje 10 er der kun følgende: <?
I linje 90 er der følgende: setcookie(voted, voted);

Hvad er problemet?


Jeg har forsøgt at følge
http://www.geeklog.net/faqman/index.php?op=view&t=38
uden held - der er ingen mellemrum i linje 10

Hvis jeg kommenterer linje 90 ud, så fungerer det fint. Blot at jeg ikke får lavet min cookie, hvilket jeg skal.
Avatar billede showsource Seniormester
06. september 2009 - 20:24 #1
Hvad er der FØR linie 10 ?
Og en cokkie bør du sætte så'n:

setcookie("navn", "vaerdi", 0, "/");

navn og værdi siger sig selv.
0 er levetid, 0 == indtil browser lukkes.
"/" er path. Her er det fra rod af domain.
Nogle browsere tager ikke en cookie uden path er defineret.
Avatar billede krummel Juniormester
06. september 2009 - 20:35 #2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="csssheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?

Her er de første linjer af dokumentet. (Der skulle have stået linje 9 i mit første indlæg og ikke 10)

Har rettet setcookie til dit forslag - tak (fejler dog stadig)
Avatar billede showsource Seniormester
06. september 2009 - 20:47 #3
Som du kan se, er der output til browseren FØR du bruger setcookie()
setcookie() skal bruges FØR noget som helst output.
Liniskift eller mellemrum er også output.
Avatar billede krummel Juniormester
06. september 2009 - 21:08 #4
Okay, så blev jeg det klogere, men selvom jeg smider
<? setcookie("voted","voted",0,"/"); ?>
op i 1. linje, så brokker den sig stadig.

Warning: Cannot modify header information - headers already sent by (output started at /.../tester.php:1)
in /.../tester.php on line 1
Avatar billede olebole Juniormester
06. september 2009 - 22:08 #5
<ole>

En tom linje før <?php er også output

/mvh
</bole>
Avatar billede olebole Juniormester
06. september 2009 - 22:10 #6
- og det er et mellemrum f.eks. også  =)
Avatar billede krummel Juniormester
06. september 2009 - 22:23 #7
Yes Ole, men der er desværre ikke nogen linje eller mellemrum før
<? setcookie("voted","voted",0,"/"); ?>
Den starter i første linje og første tegn.


Men header kommer jo bagefter nu - det må den vel godt eller hvad?
Avatar billede showsource Seniormester
06. september 2009 - 22:53 #8
Hvis du gemmer dit doc som utf-8, er det muligvis fordi du "boom" med.
Som er nogle tegn som sættes i starten af doc, men jeg kan desværre ikke lige forklare dig præcis hvad det ellers er :O)
Men det kan olebole vist ?

Hvis du gemmer som utf-8, så tjek om du kan gemme UDEN "boom" eller hvad det ellers hedder. ?

B.t.w. er det en go' vane at starte php tags med <?php og ikke blot <?
Så er du sikker på at undgå evt. fremtidig "misforståelse" mellem php og xml
Avatar billede krummel Juniormester
06. september 2009 - 23:20 #9
#showsource
Jeg har prøvet at åbne og gemme det i notepad, med samme resultat. Jeg går ud fra, at der derved ikke bliver gemt noget af det du taler om.

Hvis jeg gemmer
<? setcookie("voted","voted",0,"/"); ?>
i et helt tomt dokument uden andet, så brokker den sig ikke. Så der må være et eller andet der konflikter i det andet dokument.
Avatar billede olebole Juniormester
07. september 2009 - 00:00 #10
http://en.wikipedia.org/wiki/Byte-order_mark

Download Notepad++:
    http://notepad-plus.sourceforge.net/uk/site.htm

Der kan du fra Format menuen vælge at gemme som utf-8 med eller uden BOM
Avatar billede olebole Juniormester
07. september 2009 - 00:01 #11
PS: Windows' egen Notepad gemmer med BOM  :o|
Avatar billede krummel Juniormester
30. november 2009 - 22:56 #12
Beklager den sene opfølgning - giv svar og få point begge to
Avatar billede showsource Seniormester
01. december 2009 - 16:13 #13
ok.
Iøvrigt lang tid siden jeg har "set" ole herinde ?
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