<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
 <chapter xml:id="features.cookies" xmlns="http://docbook.org/ns/docbook">
  <title>Cookies</title>

  <para>
   PHP transparently supports <acronym>HTTP</acronym> cookies.  Cookies are a mechanism for
   storing data in the remote browser and thus tracking or identifying return
   users.  You can set cookies using the <function>setcookie</function> or
   <function>setrawcookie</function>
   function.  Cookies are part of the <acronym>HTTP</acronym> header, so
   <function>setcookie</function> must be called before any output is sent to
   the browser.  This is the same limitation that <function>header</function>
   has. You can use the <link linkend="ref.outcontrol">output buffering
   functions</link> to delay the script output until you have decided whether
   or not to set any cookies or send any headers.
  </para>

  <para>
   Any cookies sent to you from the client will automatically be included into
   a <varname>$_COOKIE</varname> auto-global
   array if <link linkend="ini.variables-order">variables_order</link>
   contains "C". If you wish to assign multiple values to a single
   cookie, just add <literal>[]</literal> to the cookie name.
  </para>

  <para>
   Depending on <link linkend="ini.register-globals">register_globals</link>,
   regular PHP variables can be created from cookies. However it's not
   recommended to rely on them as this feature is often turned off for the
   sake of security.
   <varname>$HTTP_COOKIE_VARS</varname> is also set in earlier versions of PHP
   when the <link linkend="ini.track-vars">track_vars</link> configuration 
   variable is set. (This setting is always on since PHP 4.0.3.)
  </para>

  <para>
   For more details, including notes on browser bugs, see the
   <function>setcookie</function> and <function>setrawcookie</function>
   function.
  </para>

 </chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->