File: session-start.xml

package info (click to toggle)
phpdoc 20050512-1
  • links: PTS
  • area: non-free
  • in suites: sarge
  • size: 36,592 kB
  • ctags: 1,501
  • sloc: xml: 376,768; php: 6,708; cpp: 500; makefile: 293; perl: 161; sh: 151; awk: 28
file content (142 lines) | stat: -rw-r--r-- 4,255 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.5 $ -->
<!-- splitted from ./en/functions/session.xml, last change in rev 1.2 -->
  <refentry id="function.session-start">
   <refnamediv>
    <refname>session_start</refname>
    <refpurpose>Initialize session data</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Description</title>
     <methodsynopsis>
      <type>bool</type><methodname>session_start</methodname>
      <void/>
     </methodsynopsis>
    <simpara>
     <function>session_start</function> creates a session or resumes
     the current one based on the current session id that's being 
     passed via a request, such as GET, POST, or a cookie.
    </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 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
     enabled. If a user uses <literal>ob_gzhandler</literal> or like
     with <function>ob_start</function>, the order of output handler
     is important for proper output. For example, user must register
     <literal>ob_gzhandler</literal> before session start.
    </simpara>
    <note>
     <simpara>
      Use of <link linkend="ini.zlib.output-compression">zlib.output_compression</link>
      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>

<!-- 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
-->