FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
Jag håller på att skriva om en av mina sidor från php till C, men jag har stött på problem med kakor.
Om jag gör som man ska och skriver Kod:
printf("Content-type: text/html\n\n"); printf("set-cookie: kaka=test; path=/\n\n"); Om jag skriver Kod:
printf("set-cookie: kaka=test; path=/\n\n"); printf("Content-type: text/html\n\n"); Någon som har något trevligt förslag till lösning? Kan det vara min apache som är felkonfigurerad och isåfall hur? |
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Mycket flitig postare
|
Kan hända att jag är på fel spår här men konventionen efter headers är väl \r\n och inte \n\n?
Edit: Vore ju logiskt, två radbrytningar i http betyder ju "slut på headern, innehållet börjar". |
|||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Medlem
|
\n\n ger två radbrytningar. \r\n ger bara en, det skulle isåfall vara \r\n\r\n.
\n = newline \r = carriage return Men tack ändå Citat:
Kod:
printf("Content-type: text/html\n"); printf("set-cookie: kaka=test; path=/\n\n"); |
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Mycket flitig postare
|
Citat:
\r = mac-radbrytning \r\n = windowsradbrytning Därutöver finns unicode-radbrytning (0x0085) och unicode-styckesbrytning (0x2029) och ett par till om vi ska vara riktigt petiga. Av någon anledning (kanske för att det alltid ska fungera såväl unix/mac/windows) så blev \r\n standard för mime. |
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Medlem
|
Standarden säger CRLF (alltså \r\n) vad jag vet.
T.ex. när du hämtar en sida. Kod:
GET / HTTP/1.0\r\n Host: www.domain.tld\r\n Connection: close\r\n \r\n |
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Mycket flitig postare
|
Citat:
|
|||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Medlem
|
Ibland fungerar (tyvärr) \n också eftersom tillverkarna bygger in "skydd" mot dåligt programmerade server/klient applikationer.
Detsamma gäller för epostmeddelanden där alla headers (i själva meddelandet) också skall avslutas med CRLF. SMTP fungerar likadant, CRLF avslutar en rad (som för övrigt bara får vara max 1023 tecken har jag för mig). Kör som standarden säger: CRLF. Senast redigerad av Jake.Nu den 2010-10-05 klockan 01:04 |
||
![]() |
![]() |
Svara |
|
|