File: session-register.xml

package info (click to toggle)
php-doc 20081024-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 57,752 kB
  • ctags: 3,858
  • sloc: xml: 686,554; php: 19,446; perl: 610; cpp: 500; makefile: 336; sh: 114; awk: 28
file content (168 lines) | stat: -rw-r--r-- 5,490 bytes parent folder | download
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.13 $ -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.session-register">
 <refnamediv>
  <refname>session_register</refname>
  <refpurpose>Register one or more global variables with the current session</refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>bool</type><methodname>session_register</methodname>
   <methodparam><type>mixed</type><parameter>name</parameter></methodparam>
   <methodparam choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
  </methodsynopsis>
  <para>
   <function>session_register</function> accepts a variable number of
   arguments, any of which can be either a string holding the name of a
   variable or an array consisting of variable names or other arrays. For
   each name, <function>session_register</function> registers the global
   variable with that name in the current session.
  </para>
  <para>
   You can also create a session variable by simply setting the
   appropriate member of the <varname>$_SESSION</varname>
   or <varname>$HTTP_SESSION_VARS</varname> (PHP &lt; 4.1.0) array.
   <informalexample>
    <programlisting role="php">
<![CDATA[
<?php
// Use of session_register() is deprecated
$barney = "A big purple dinosaur.";
session_register("barney");

// Use of $_SESSION is preferred, as of PHP 4.1.0
$_SESSION["zim"] = "An invader from another planet.";

// The old way was to use $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";
?>
]]>
    </programlisting>
   </informalexample>
  </para>
  <para>
   If <function>session_start</function> was not called before this function
   is called, an implicit call to <function>session_start</function> with no
   parameters will be made.  <varname>$_SESSION</varname> does not mimic
   this behavior and requires <function>session_start</function> before use.
  </para>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>name</parameter></term>
     <listitem>
      <para>
       A string holding the name of a variable or an array consisting of
       variable names or other arrays.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>...</parameter></term>
     <listitem>
      <para>
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   &return.success;
  </para>
 </refsect1>

 <refsect1 role="notes">
  &reftitle.notes;
  <caution>
   <para>
    If you want your script to work regardless of <link
    linkend="ini.register-globals">register_globals</link>, you need to
    instead use the <varname>$_SESSION</varname> array as
    <varname>$_SESSION</varname> entries are automatically registered. If
    your script uses <function>session_register</function>, it will not work
    in environments where the PHP directive <link
    linkend="ini.register-globals">register_globals</link> is disabled.
   </para>
  </caution>
  &note.registerglobals;
  <caution>
   <para>
    This registers a <emphasis>global</emphasis> variable. If you want to
    register a session variable from within a function, you need to make sure
    to make it global using the <link
    linkend="language.variables.scope"><command>global</command></link>
    keyword or the <varname>$GLOBALS[]</varname> array, or use the special
    session arrays as noted below.
   </para>
  </caution>
  <caution>
   <para>
    If you are using <varname>$_SESSION</varname>
    (or <varname>$HTTP_SESSION_VARS</varname>), do not use
    <function>session_register</function>,
    <function>session_is_registered</function>, and
    <function>session_unregister</function>.
   </para>
  </caution>
  <note>
   <para>
    It is currently impossible to register resource variables in a session.
    For example, you cannot create a connection to a database and store the
    connection id as a session variable and expect the connection to still be
    valid the next time the session is restored.  PHP functions that return a
    resource are identified by having a return type of
    <literal>resource</literal> in their function definition.  A list of
    functions that return resources are available in the <link
    linkend="resource">resource types</link> appendix.
   </para>
   <para>
    If <varname>$_SESSION</varname> (or <varname>$HTTP_SESSION_VARS</varname>
    for PHP 4.0.6 or less) is used, assign values to
    <varname>$_SESSION</varname>. For example: $_SESSION['var'] = 'ABC';
   </para>
  </note>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>session_is_registered</function></member>
    <member><function>session_unregister</function></member>
    <member><varname>$_SESSION</varname></member>
   </simplelist>
  </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
-->