goba Sun Jul 28 10:04:32 2002 EDT
Added files:
/phpdoc/en/reference/session constants.xml
Modified files:
/phpdoc/en/reference/session reference.xml
Log:
Adding constants here and applied new structure
Index: phpdoc/en/reference/session/reference.xml
diff -u phpdoc/en/reference/session/reference.xml:1.7
phpdoc/en/reference/session/reference.xml:1.8
--- phpdoc/en/reference/session/reference.xml:1.7 Fri Jun 14 09:34:07 2002
+++ phpdoc/en/reference/session/reference.xml Sun Jul 28 10:04:32 2002
@@ -1,85 +1,289 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.7 $ -->
+<!-- $Revision: 1.8 $ -->
<reference id="ref.session">
<title>Session handling functions</title>
<titleabbrev>Sessions</titleabbrev>
<partintro>
- <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>
- If you are familiar with the session management of PHPLIB, you
- will notice that some concepts are similar to PHP's session
- support.
- </para>
- <para>
- A visitor accessing your web site is assigned an 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 session.auto_start 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>
- <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>
- <para>
- The <link
- linkend="ini.track-vars"><literal>track_vars</literal></link> and
- <link
- linkend="ini.register-globals"><literal>register_globals</literal></link>
- configuration settings influence how the session variables get
- stored and restored.
- </para>
+
+ <section id="session.intro">
+ &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>
+ If you are familiar with the session management of PHPLIB, you
+ will notice that some concepts are similar to PHP's session
+ support.
+ </para>
+ <para>
+ A visitor accessing your web site is assigned an 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 session.auto_start 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>
+ <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>
+ <note>
+ <para>
+ Session handling was added in PHP 4.0.
+ </para>
+ </note>
+ </section>
+
+ <section id="session.requirements">
+ &reftitle.required;
+ &no.requirement;
+ </section>
- <note>
+ <section id="session.installation">
+ &reftitle.install;
<para>
- As of PHP 4.0.3, <link
- linkend="ini.track-vars"><literal>track_vars</literal></link> is
- always turned on.
+ Session support is enabled in PHP by default. If you would
+ not like to build your PHP with session support, you should
+ specify the <option role="configure">--disable-session</option>
+ option to configure.
</para>
- </note>
- <note>
+ </section>
+
+ <section id="session.configuration">
+ &reftitle.runtime;
<para>
- As of PHP 4.1.0, <varname>$_SESSION</varname> is available as
- global variable just like <varname>$_POST</varname>,
- <varname>$_GET</varname>, <varname>$_REQUEST</varname> and so on.
- Not like <varname>$HTTP_SESSION_VARS</varname>,
- <varname>$_SESSION</varname> is always global. Therefore,
- <literal>global</literal> should not be used for
- <varname>$_SESSION</varname>.
+ The session management system supports a number of configuration
+ options which you can place in your &php.ini; file. We will give a
+ short overview.
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ <literal>session.save_handler</literal> defines the name of the
+ handler which is used for storing and retrieving data
+ associated with a session. Defaults to
+ <literal>files</literal>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.save_path</literal> defines the argument which
+ is passed to the save handler. If you choose the default files
+ handler, this is the path where the files are created.
+ Defaults to <literal>/tmp</literal>. If
+ <literal>session.save_path</literal>'s path depth is more than
+ 2, garbage collection will not be performed.
+ </simpara>
+ <warning>
+ <para>
+ If you leave this set to a world-readable directory, such as
+ <filename>/tmp</filename> (the default), other users on the
+ server may be able to hijack sessions by getting the list of
+ files in that directory.
+ </para>
+ </warning>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.name</literal> specifies the name of the
+ session which is used as cookie name. It should only contain
+ alphanumeric characters. Defaults to
+ <literal>PHPSESSID</literal>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.auto_start</literal> specifies whether the
+ session module starts a session automatically on request
+ startup. Defaults to <literal>0</literal> (disabled).
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.cookie_lifetime</literal> specifies the lifetime of
+ the cookie in seconds which is sent to the browser. The value 0
+ means "until the browser is closed." Defaults to
+ <literal>0</literal>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.serialize_handler</literal> defines the name
+ of the handler which is used to serialize/deserialize
+ data. Currently, a PHP internal format (name
+ <literal>php</literal>) and WDDX is supported (name
+ <literal>wddx</literal>). WDDX is only available, if PHP is
+ compiled with <link linkend="ref.wddx">WDDX
+ support</link>. Defaults to <literal>php</literal>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.gc_probability</literal> specifies the
+ probability that the gc (garbage collection) routine is started
+ on each request in percent. Defaults to <literal>1</literal>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.gc_maxlifetime</literal> specifies the number
+ of seconds after which data will be seen as 'garbage' and
+ cleaned up.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.referer_check</literal> contains the substring you
+ want to check each HTTP Referer for. If the Referer was sent by the
+ client and the substring was not found, the embedded session id will
+ be marked as invalid. Defaults to the empty string.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.entropy_file</literal> gives a path to an
+ external resource (file) which will be used as an additional
+ entropy source in the session id creation process. Examples are
+ <literal>/dev/random</literal> or
+ <literal>/dev/urandom</literal> which are available on many
+ Unix systems.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.entropy_length</literal> specifies the number
+ of bytes which will be read from the file specified
+ above. Defaults to <literal>0</literal> (disabled).
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.use_cookies</literal> specifies whether the
+ module will use cookies to store the session id on the client
+ side. Defaults to <literal>1</literal> (enabled).
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.use_only_cookies</literal> specifies whether the
+ module will <emphasis role="strong">only</emphasis> use cookies to
+ store the session id on the client side. Defaults to
+ <literal>0</literal> (disabled, for backward compatibility). Enabling
+ this setting prevents attacks involved passing session ids in URLs.
+ This setting was added in <literal>PHP</literal> 4.3.0.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.cookie_path</literal> specifies path to set
+ in session_cookie. Defaults to <literal>/</literal>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.cookie_domain</literal> specifies domain to
+ set in session_cookie. Default is none at all.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.cache_limiter</literal> specifies cache
+ control method to use for session pages
+ (none/nocache/private/private_no_expire/public). Defaults to
+ <literal>nocache</literal>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.cache_expire</literal> specifies time-to-live
+ for cached session pages in minutes, this has no effect for
+ nocache limiter. Defaults to <literal>180</literal>.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>session.use_trans_sid</literal> whether transparent sid support
+ is enabled or not if enabled by compiling with
+ <link linkend="install.configure.enable-trans-sid">
+ <literal>--enable-trans-sid</literal></link>.
+ Defaults to <literal>1</literal> (enabled).
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ <literal>url_rewriter.tags</literal> spefifies which html tags are
+ rewritten to include session id if transparent sid support is enabled.
+ Defaults to
+<literal>a=href,area=href,frame=src,input=src,form=fakeentry</literal>
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ The <link
+ linkend="ini.track-vars"><literal>track_vars</literal></link> and
+ <link
+ linkend="ini.register-globals"><literal>register_globals</literal></link>
+ configuration settings influence how the session variables get
+ stored and restored.
</para>
- </note>
- <para>
- If <link
- linkend="ini.track-vars"><literal>track_vars</literal></link> is
- enabled and <link
- linkend="ini.register-globals"><literal>register_globals</literal></link>
- is disabled, only members of the global associative array
- <varname>$HTTP_SESSION_VARS</varname> can be registered as session
- variables. The restored session variables will only be available
- in the array <varname>$HTTP_SESSION_VARS</varname>.
- <example>
- <title>
- Registering a variable with <link
- linkend="ini.track-vars"><literal>track_vars</literal></link>
- enabled
- </title>
- <programlisting role="php">
+ <note>
+ <para>
+ As of PHP 4.0.3, <link
+ linkend="ini.track-vars"><literal>track_vars</literal></link> is
+ always turned on.
+ </para>
+ </note>
+ </section>
+
+ <section id="session.resources">
+ &reftitle.resources;
+ &no.resource;
+ </section>
+
+ &reference.session.constants;
+
+ <section id="session.examples">
+ &reftitle.examples;
+ <note>
+ <para>
+ As of PHP 4.1.0, <varname>$_SESSION</varname> is available as
+ global variable just like <varname>$_POST</varname>,
+ <varname>$_GET</varname>, <varname>$_REQUEST</varname> and so on.
+ Not like <varname>$HTTP_SESSION_VARS</varname>,
+ <varname>$_SESSION</varname> is always global. Therefore,
+ <literal>global</literal> should not be used for
+ <varname>$_SESSION</varname>.
+ </para>
+ </note>
+
+ <para>
+ If <link
+ linkend="ini.track-vars"><literal>track_vars</literal></link> is
+ enabled and <link
+ linkend="ini.register-globals"><literal>register_globals</literal></link>
+ is disabled, only members of the global associative array
+ <varname>$HTTP_SESSION_VARS</varname> can be registered as session
+ variables. The restored session variables will only be available
+ in the array <varname>$HTTP_SESSION_VARS</varname>.
+ <example>
+ <title>
+ Registering a variable with <link
+ linkend="ini.track-vars"><literal>track_vars</literal></link>
+ enabled
+ </title>
+ <programlisting role="php">
<![CDATA[
<?php
session_start();
@@ -91,23 +295,23 @@
}
?>
]]>
- </programlisting>
- </example>
- </para>
- <para>
- Use of <varname>$_SESSION</varname> (or
- <varname>$HTTP_SESSION_VARS</varname> with PHP 4.0.6 or less) is
- recommended for security and code readablity. With
- <varname>$_SESSION</varname> or
- <varname>$HTTP_SESSION_VARS</varname>, there is no need to use
- session_register()/session_unregister()/session_is_registered()
- functions. Users can access session variable like a normal
- variable.
- <example>
- <title>
- Registering a variable with $_SESSION.
- </title>
- <programlisting role="php">
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ Use of <varname>$_SESSION</varname> (or
+ <varname>$HTTP_SESSION_VARS</varname> with PHP 4.0.6 or less) is
+ recommended for security and code readablity. With
+ <varname>$_SESSION</varname> or
+ <varname>$HTTP_SESSION_VARS</varname>, there is no need to use
+ session_register()/session_unregister()/session_is_registered()
+ functions. Users can access session variable like a normal
+ variable.
+ <example>
+ <title>
+ Registering a variable with $_SESSION.
+ </title>
+ <programlisting role="php">
<![CDATA[
<?php
session_start();
@@ -119,13 +323,13 @@
}
?>
]]>
- </programlisting>
- </example>
- <example>
- <title>
- Unregistering a variable with $_SESSION.
- </title>
- <programlisting role="php">
+ </programlisting>
+ </example>
+ <example>
+ <title>
+ Unregistering a variable with $_SESSION.
+ </title>
+ <programlisting role="php">
<![CDATA[
<?php
session_start();
@@ -133,46 +337,46 @@
unset($_SESSION['count']);
?>
]]>
- </programlisting>
- </example>
- </para>
- <para>
- If <link
- linkend="ini.register-globals"><literal>register_globals</literal></link>
- is enabled, then all global variables can be registered as session
- variables and the session variables will be restored to
- corresponding global variables. Since PHP must know which global
- variables are registered as session variables, users must register
- variables with session_register() function while
- <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>
- does not need to use session_register().
- <caution>
- <para>
- If you are using
- <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>
- and disable <link
- linkend="ini.register-globals"><literal>register_globals</literal></link>,
- do not use <function>session_register</function>,
- <function>session_is_registered</function> and
- <function>session_unregister</function>.
- </para>
- <para>
- If you enable <link
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ If <link
+ linkend="ini.register-globals"><literal>register_globals</literal></link>
+ is enabled, then all global variables can be registered as session
+ variables and the session variables will be restored to
+ corresponding global variables. Since PHP must know which global
+ variables are registered as session variables, users must register
+ variables with session_register() function while
+ <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>
+ does not need to use session_register().
+ <caution>
+ <para>
+ If you are using
+ <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>
+ and disable <link
linkend="ini.register-globals"><literal>register_globals</literal></link>,
- <function>session_unregister</function> should be used since
- session variables are registered as global variables when
- session data is deserialized. Disabling <link
+ do not use <function>session_register</function>,
+ <function>session_is_registered</function> and
+ <function>session_unregister</function>.
+ </para>
+ <para>
+ If you enable <link
+ linkend="ini.register-globals"><literal>register_globals</literal></link>,
+ <function>session_unregister</function> should be used since
+ session variables are registered as global variables when
+ session data is deserialized. Disabling <link
+ linkend="ini.register-globals"><literal>register_globals</literal></link>
+ is recommended for both security and performance reason.
+ </para>
+ </caution>
+ <example>
+ <title>
+ Registering a variable with <link
linkend="ini.register-globals"><literal>register_globals</literal></link>
- is recommended for both security and performance reason.
- </para>
- </caution>
- <example>
- <title>
- Registering a variable with <link
- linkend="ini.register-globals"><literal>register_globals</literal></link>
- enabled
- </title>
- <programlisting role="php">
+ enabled
+ </title>
+ <programlisting role="php">
<![CDATA[
<?php
if (!session_is_registered('count')) {
@@ -184,69 +388,73 @@
}
?>
]]>
- </programlisting>
- </example>
- </para>
- <para>
- If both <link
- linkend="ini.track-vars"><literal>track_vars</literal></link> and
- <link
- linkend="ini.register-globals"><literal>register_globals</literal></link>
- are enabled, then the globals variables and the
- <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>
- entries will reference the same value for already registered
- variables.
- </para>
- <para>
- If user use session_register() to register session variable,
- <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>
- will not have these variable in array until it is loaded from
- session storage. (i.e. until next request)
- </para>
- <para>
- There are two methods to propagate a session id:
- <itemizedlist>
- <listitem>
- <simpara>
- Cookies
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- URL parameter
- </simpara>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- The session module supports both methods. Cookies are optimal, but
- since they are not reliable (clients are not bound to accept
- them), we cannot rely on them. The second method embeds the
- session id directly into URLs.
- </para>
- <para>
- PHP is capable of doing this transparently when compiled with
- <link linkend="install.configure.enable-trans-sid">
- <literal>--enable-trans-sid</literal></link>. If you enable this option,
- relative URIs will be changed to contain the session id
- automatically. Alternatively, you can use the constant
- <literal>SID</literal> which is defined, if the client did not
- send the appropriate cookie. <literal>SID</literal> is either of
- the form <literal>session_name=session_id</literal> or is an empty
- string.
- <note>
- <para>
- The <link linkend="ini.arg_separator.output">arg_separator.output</link>
- &php.ini; directive allows to customize the argument seperator.
- </para>
- </note>
- </para>
- <para>
- The following example demonstrates how to register a variable, and
- how to link correctly to another page using SID.
- <example>
- <title>Counting the number of hits of a single user</title>
- <programlisting role="php">
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ If both <link
+ linkend="ini.track-vars"><literal>track_vars</literal></link> and
+ <link
+ linkend="ini.register-globals"><literal>register_globals</literal></link>
+ are enabled, then the globals variables and the
+ <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>
+ entries will reference the same value for already registered
+ variables.
+ </para>
+ <para>
+ If user use session_register() to register session variable,
+ <varname>$HTTP_SESSION_VARS</varname>/<varname>$_SESSION</varname>
+ will not have these variable in array until it is loaded from
+ session storage. (i.e. until next request)
+ </para>
+ </section>
+
+ <section id="session.idpassing">
+ <title>Passing the Session ID</title>
+ <para>
+ There are two methods to propagate a session id:
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Cookies
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ URL parameter
+ </simpara>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ The session module supports both methods. Cookies are optimal, but
+ since they are not reliable (clients are not bound to accept
+ them), we cannot rely on them. The second method embeds the
+ session id directly into URLs.
+ </para>
+ <para>
+ PHP is capable of doing this transparently when compiled with
+ <link linkend="install.configure.enable-trans-sid">
+ <literal>--enable-trans-sid</literal></link>. If you enable this option,
+ relative URIs will be changed to contain the session id
+ automatically. Alternatively, you can use the constant
+ <literal>SID</literal> which is defined, if the client did not
+ send the appropriate cookie. <literal>SID</literal> is either of
+ the form <literal>session_name=session_id</literal> or is an empty
+ string.
+ <note>
+ <para>
+ The <link linkend="ini.arg_separator.output">arg_separator.output</link>
+ &php.ini; directive allows to customize the argument seperator.
+ </para>
+ </note>
+ </para>
+ <para>
+ The following example demonstrates how to register a variable, and
+ how to link correctly to another page using SID.
+ <example>
+ <title>Counting the number of hits of a single user</title>
+ <programlisting role="php">
<![CDATA[
<?php
if (!session_is_registered('count')) {
@@ -268,197 +476,31 @@
To continue, <A HREF="nextpage.php?<?php echo SID?>">click here</A>
]]>
- </programlisting>
- </example>
- </para>
- <para>
- The <literal><?=SID?></literal> is not necessary, if
- <link linkend="install.configure.enable-trans-sid">
- <literal>--enable-trans-sid</literal></link> was used to compile PHP.
- </para>
- <note>
- <para>
- Non-relative URLs are assumed to point to external sites and
- hence don't append the SID, as it would be a security risk to
- leak the SID to a different server.
- </para>
- </note>
- <para>
- To implement database storage, or any other storage method, you
- will need to use <function>session_set_save_handler</function> to
- create a set of user-level storage functions.
- </para>
- <para>
- The session management system supports a number of configuration
- options which you can place in your &php.ini; file. We will give a
- short overview.
- <itemizedlist>
- <listitem>
- <simpara>
- <literal>session.save_handler</literal> defines the name of the
- handler which is used for storing and retrieving data
- associated with a session. Defaults to
- <literal>files</literal>.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.save_path</literal> defines the argument which
- is passed to the save handler. If you choose the default files
- handler, this is the path where the files are created.
- Defaults to <literal>/tmp</literal>. If
- <literal>session.save_path</literal>'s path depth is more than
- 2, garbage collection will not be performed.
- </simpara>
- <warning>
- <para>
- If you leave this set to a world-readable directory, such as
- <filename>/tmp</filename> (the default), other users on the
- server may be able to hijack sessions by getting the list of
- files in that directory.
- </para>
- </warning>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.name</literal> specifies the name of the
- session which is used as cookie name. It should only contain
- alphanumeric characters. Defaults to
- <literal>PHPSESSID</literal>.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.auto_start</literal> specifies whether the
- session module starts a session automatically on request
- startup. Defaults to <literal>0</literal> (disabled).
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.cookie_lifetime</literal> specifies the lifetime of
- the cookie in seconds which is sent to the browser. The value 0
- means "until the browser is closed." Defaults to
- <literal>0</literal>.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.serialize_handler</literal> defines the name
- of the handler which is used to serialize/deserialize
- data. Currently, a PHP internal format (name
- <literal>php</literal>) and WDDX is supported (name
- <literal>wddx</literal>). WDDX is only available, if PHP is
- compiled with <link linkend="ref.wddx">WDDX
- support</link>. Defaults to <literal>php</literal>.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.gc_probability</literal> specifies the
- probability that the gc (garbage collection) routine is started
- on each request in percent. Defaults to <literal>1</literal>.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.gc_maxlifetime</literal> specifies the number
- of seconds after which data will be seen as 'garbage' and
- cleaned up.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.referer_check</literal> contains the substring you
- want to check each HTTP Referer for. If the Referer was sent by the
- client and the substring was not found, the embedded session id will
- be marked as invalid. Defaults to the empty string.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.entropy_file</literal> gives a path to an
- external resource (file) which will be used as an additional
- entropy source in the session id creation process. Examples are
- <literal>/dev/random</literal> or
- <literal>/dev/urandom</literal> which are available on many
- Unix systems.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.entropy_length</literal> specifies the number
- of bytes which will be read from the file specified
- above. Defaults to <literal>0</literal> (disabled).
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.use_cookies</literal> specifies whether the
- module will use cookies to store the session id on the client
- side. Defaults to <literal>1</literal> (enabled).
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.use_only_cookies</literal> specifies whether the
- module will <emphasis role="strong">only</emphasis> use cookies to
- store the session id on the client side. Defaults to
- <literal>0</literal> (disabled, for backward compatibility). Enabling
- this setting prevents attacks involved passing session ids in URLs.
- This setting was added in <literal>PHP</literal> 4.3.0.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.cookie_path</literal> specifies path to set
- in session_cookie. Defaults to <literal>/</literal>.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.cookie_domain</literal> specifies domain to
- set in session_cookie. Default is none at all.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.cache_limiter</literal> specifies cache
- control method to use for session pages
- (none/nocache/private/private_no_expire/public). Defaults to
- <literal>nocache</literal>.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.cache_expire</literal> specifies time-to-live
- for cached session pages in minutes, this has no effect for
- nocache limiter. Defaults to <literal>180</literal>.
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>session.use_trans_sid</literal> whether transparent sid support
- is enabled or not if enabled by compiling with
- <link linkend="install.configure.enable-trans-sid">
- <literal>--enable-trans-sid</literal></link>.
- Defaults to <literal>1</literal> (enabled).
- </simpara>
- </listitem>
- <listitem>
- <simpara>
- <literal>url_rewriter.tags</literal> spefifies which html tags are
- rewritten to include session id if transparent sid support is enabled.
- Defaults to
<literal>a=href,area=href,frame=src,input=src,form=fakeentry</literal>
- </simpara>
- </listitem>
- </itemizedlist>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ The <literal><?=SID?></literal> is not necessary, if
+ <link linkend="install.configure.enable-trans-sid">
+ <literal>--enable-trans-sid</literal></link> was used to compile PHP.
+ </para>
<note>
<para>
- Session handling was added in PHP 4.0.
+ Non-relative URLs are assumed to point to external sites and
+ hence don't append the SID, as it would be a security risk to
+ leak the SID to a different server.
</para>
</note>
- </para>
+ </section>
+
+ <section id="session.customhandler">
+ <title>Custom Session Handlers</title>
+ <para>
+ To implement database storage, or any other storage method, you
+ will need to use <function>session_set_save_handler</function> to
+ create a set of user-level storage functions.
+ </para>
+ </section>
</partintro>
&reference.session.functions;
Index: phpdoc/en/reference/session/constants.xml
+++ phpdoc/en/reference/session/constants.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<section id="session.constants">
&reftitle.constants;
&extension.constants;
<variablelist>
<varlistentry>
<term>
<constant>SID</constant>
(<link linkend="language.types.integer">integer</link>)
</term>
<listitem>
<simpara>
Constant containing the session name and session ID in
the form of <literal>"name=ID"</literal>.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</section>
<!-- 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
-->
--
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php