philip Wed Jun 11 00:03:58 2003 EDT
Modified files:
/phpdoc/en/reference/session/functions session-start.xml
Log:
Added an example that shows sessions must be started on every page, not just the
first. Note about E_NOTICE since 4.3.3 if session started when session already
exists.
Link to various session resources including see also's, moved session_name note more
towards the bottom, and one grammar fix.
Index: phpdoc/en/reference/session/functions/session-start.xml
diff -u phpdoc/en/reference/session/functions/session-start.xml:1.4
phpdoc/en/reference/session/functions/session-start.xml:1.5
--- phpdoc/en/reference/session/functions/session-start.xml:1.4 Wed Jan 22 13:34:59
2003
+++ phpdoc/en/reference/session/functions/session-start.xml Wed Jun 11 00:03:58
2003
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.4 $ -->
+<!-- $Revision: 1.5 $ -->
<!-- splitted from ./en/functions/session.xml, last change in rev 1.2 -->
<refentry id="function.session-start">
<refnamediv>
@@ -18,20 +18,77 @@
passed via a request, such as GET, POST, or a cookie.
</simpara>
<simpara>
- If you want to use a named session, you must call
- <function>session_name</function> before calling
- <function>session_start</function>.
- </simpara>
- <simpara>
This function always returns &true;.
</simpara>
<note>
<para>
If you are using cookie-based sessions, you must call
- <function>session_start</function> before anything is output to the
+ <function>session_start</function> before anything is outputted to the
browser.
</para>
</note>
+ <para>
+ <example>
+ <title>A session example: <filename>page1.php</filename></title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+// page1.php
+
+session_start();
+
+echo 'Welcome to page #1';
+
+$_SESSION['favcolor'] = 'green';
+$_SESSION['animal'] = 'cat';
+$_SESSION['time'] = time();
+
+// Works if session cookie was accepted
+echo '<br /><a href="page2.php">page 2</a>';
+
+// Or maybe pass along the session id, if needed
+echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ After viewing <filename>page1.php</filename>, the second page
+ <filename>page2.php</filename> will magically contain the session
+ data. Read the <link linkend="ref.session">session reference</link>
+ for information on <link linkend="session.idpassing">propagating
+ session ids</link> as it, for example, explains what the constant
+ <constant>SID</constant> is all about.
+ </para>
+ <para>
+ <example>
+ <title>A session example: <filename>page2.php</filename></title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+// page2.php
+
+session_start();
+
+echo 'Welcome to page #2<br />';
+
+echo $_SESSION['favcolor']; // green
+echo $_SESSION['animal']; // cat
+echo date('Y m d H:i:s', $_SESSION['time']);
+
+// You may want to use SID here, like we did in page1.php
+echo '<br /><a href="page1.php">page 1</a>';
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <simpara>
+ If you want to use a named session, you must call
+ <function>session_name</function> before calling
+ <function>session_start</function>.
+ </simpara>
<simpara>
<function>session_start</function> will register internal output
handler for URL rewriting when <literal>trans-sid</literal> is
@@ -46,6 +103,20 @@
is recommended rather than <function>ob_gzhandler</function>
</simpara>
</note>
+ <note>
+ <para>
+ As of PHP 4.3.3, calling <function>session_start</function> while the
+ session has already been started will result in an error of level
+ <constant>E_NOTICE</constant>. Also, the second session start will
+ simply be ignored.
+ </para>
+ </note>
+ <para>
+ See also
+ <link linkend="reserved.variables.session">$_SESSION</link>,
+ <link linkend="ini.session.auto-start">session.auto_start</link>, and
+ <function>session_id</function>.
+ </para>
</refsect1>
</refentry>
--
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php