Reply to Re: Cookies problems - why do they need special treatment?

Your name:

Reply:


Posted by ofiras on 08/13/07 12:03

On Aug 13, 12:49 pm, Rik <luiheidsgoe...@hotmail.com> wrote:
> On Mon, 13 Aug 2007 11:35:59 +0200, ofiras <ofi...@gmail.com> wrote:
> > Hii everyone,
> > I've been programming in php for a long time, and the cookies have
> > always been a trouble for me.
> > When I have headers before the cookies set, I get a problem.
> > Even if I leave space on the first row before I set the cookie, and
> > there is nothing else,
> > It says I have headers before.
> > Is it like that for everyone, or is it just my host?
> > If so, is there anything that I can do to set cookies anywhere I want?
>
> Read up on the HTTP protocol. A response of a server is divided into
> headers & body (not to be confused with an HTML head & body). Something
> like this:
>
> (header)
> 200 OK
> Content-length: xxx
> (...more headers)
>
> (empty line, followed by body)
> <!DOCTYPE html>
> <html>
> ...etc
>
> As your script produces (non-header) output, the empty line, which
> seperates the headers from the body of the response, is sent to the
> browser, followed by whatever output you specified further. A cookie has
> to be set in the headers (with a Set-Cookie statement), and there's no way
> of going back as soon as this empty line has been sent.
>
> If you have to set a cookie somewhere, consider these options:
>
> 1. Do almost all processing _before_ generating output. As soon as you get
> out of an HTML mindset (and those atrocious files mixing HTML & PHP like
> there's no tomorrow) this is actually quite easy.
>
> 2. Capture output in a variable, and only echo / print it as soon as you
> know no further processing/header() or setcookie() calls are needed.
>
> 3. Turn on output buffering (ob_start()) at the start of the script.
> (Which will effectively do something like (2) only with somewhat less
> control).
>
> The last one is a bit of cheat, and does not promote good code writing. It
> is however most simple one. Drawback is that on a slow loading page, it
> will take a while to get even a bit of content, while with output
> buffering of it can load 'as you go' (depending on how your browser
> handles it offcourse). If possible, go for (1).
> --
> Rik Wasmus

Thanks a lot, ill think ill go for the second one... ill see what best
for me.
Thanks,
Ofir.

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация