php-doc-en/reference/session/book.xml
Nilgün Belma Bugüner 9511edb9f8 fixed properties
git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@283836 c90b9560-bf6c-de11-be94-00142212c4b1
2009-07-11 08:54:10 +00:00

114 lines
3.8 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<!-- Purpose: basic.session -->
<!-- Membership: core -->
<book xml:id="book.session" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Session Handling</title>
<titleabbrev>Sessions</titleabbrev>
<!-- {{{ preface -->
<preface xml:id="intro.session">
&reftitle.intro;
<para>
Session support in PHP consists of a way to preserve certain data
across subsequent accesses. This enables you to build more
customized applications and increase the appeal of your web site.
</para>
<para>
A visitor accessing your web site is assigned a unique id, the
so-called session id. This is either stored in a cookie on the
user side or is propagated in the URL.
</para>
<para>
The session support allows you to register arbitrary numbers of
variables to be preserved across requests. When a visitor accesses
your site, PHP will check automatically (if <link
linkend="ini.session.auto-start">session.auto_start</link>
is set to 1) or on your request (explicitly through
<function>session_start</function> or implicitly through
<function>session_register</function>) whether a specific session
id has been sent with the request. If this is the case, the prior
saved environment is recreated.
</para>
<caution>
<para>
If you turn on <link linkend="ini.session.auto-start">
session.auto_start</link> then the only way to put objects
into your sessions is to load its class definition using
<link linkend="ini.auto-prepend-file">auto_prepend_file</link>
in which you load the class definition else you will have to
<function>serialize</function> your object
and <function>unserialize</function> it
afterwards.
</para>
</caution>
<para>
All registered variables are serialized after the request
finishes. Registered variables which are undefined are marked as
being not defined. On subsequent accesses, these are not defined
by the session module unless the user defines them later.
</para>
<warning>
<para>
Some types of data can not be serialized thus stored in sessions. It
includes <type>resource</type> variables or objects with circular
references (i.e. objects which passes a reference to itself to another
object).
</para>
</warning>
<note>
<para>
Session handling was added in PHP 4.0.0.
</para>
</note>
<note>
<para>
Please note when working with sessions that a record of a session
is not created until a variable has been registered using the
<function>session_register</function> function or by adding a new
key to the <varname>$_SESSION</varname> superglobal array. This
holds true regardless of if a session has been started using the
<function>session_start</function> function.
</para>
</note>
<note>
<para>
PHP 5.2.2 introduced an undocumented feature to store session files
in "/tmp" even if <link linkend="ini.open-basedir">open_basedir</link>
was enabled and "/tmp" is not explicitly added to the allowed paths
list. This feature has been removed from PHP as of PHP 5.3.0.
</para>
</note>
</preface>
<!-- }}} -->
&reference.session.setup;
&reference.session.constants;
&reference.session.examples;
&reference.session.security;
&reference.session.reference;
</book>
<!-- 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:"../../../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
-->