Source of: /manual/en/function.session-register.php
<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.session.inc";
$setup = array (
'home' =>
array (
0 => 'index.php',
1 => 'PHP Manual',
),
'head' =>
array (
0 => 'UTF-8',
1 => 'en',
),
'this' =>
array (
0 => 'function.session-register.php',
1 => 'session_register',
),
'up' =>
array (
0 => 'ref.session.php',
1 => 'Session Functions',
),
'prev' =>
array (
0 => 'function.session-regenerate-id.php',
1 => 'session_regenerate_id',
),
'next' =>
array (
0 => 'function.session-save-path.php',
1 => 'session_save_path',
),
);
$setup["toc"] = $TOC;
$setup["parents"] = $PARENTS;
manual_setup($setup);
manual_header();
?>
<div id="function.session-register" class="refentry">
<div class="refnamediv">
<h1 class="refname">session_register</h1>
<p class="verinfo">(PHP 4, PHP 5)</p><p class="refpurpose"><span class="refname">session_register</span> — <span class="dc-title">Register one or more global variables with the current session</span></p>
</div>
<a name="function.session-register.description"></a><div class="refsect1 description">
<h3 class="title">Description</h3>
<div class="methodsynopsis dc-description">
<span class="type">bool</span> <span class="methodname"><b>session_register</b></span>
( <span class="methodparam"><span class="type"><a href="language.pseudo-types.php#language.types.mixed" class="type mixed">mixed</a></span> <tt class="parameter">$name</tt></span>
[, <span class="methodparam"><span class="type"><a href="language.pseudo-types.php#language.types.mixed" class="type mixed">mixed</a></span> <tt class="parameter">$...</tt></span>
] )</div>
<p class="para rdfs-comment">
<b>session_register()</b> 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, <b>session_register()</b> registers the global
variable with that name in the current session.
</p>
<p class="para">
You can also create a session variable by simply setting the
appropriate member of the <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var>
or <var class="varname">$HTTP_SESSION_VARS</var> (PHP < 4.1.0) array.
</p><div class="informalexample">
<div class="example-contents programlisting">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">// Use of session_register() is deprecated<br /></span><span style="color: #0000BB">$barney </span><span style="color: #007700">= </span><span style="color: #DD0000">"A big purple dinosaur."</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">session_register</span><span style="color: #007700">(</span><span style="color: #DD0000">"barney"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Use of $_SESSION is preferred, as of PHP 4.1.0<br /></span><span style="color: #0000BB">$_SESSION</span><span style="color: #007700">[</span><span style="color: #DD0000">"zim"</span><span style="color: #007700">] = </span><span style="color: #DD0000">"An invader from another planet."</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// The old way was to use $HTTP_SESSION_VARS<br /></span><span style="color: #0000BB">$HTTP_SESSION_VARS</span><span style="color: #007700">[</span><span style="color: #DD0000">"spongebob"</span><span style="color: #007700">] = </span><span style="color: #DD0000">"He's got square pants."</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?></span>
</span>
</code></div>
</div>
</div><p>
</p>
<p class="para">
If <a href="function.session-start.php" class="function">session_start()</a> was not called before this function
is called, an implicit call to <a href="function.session-start.php" class="function">session_start()</a> with no
parameters will be made. <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> does not mimic
this behavior and requires <a href="function.session-start.php" class="function">session_start()</a> before use.
</p>
<div class="warning"><b class="warning">Warning</b><p class="simpara">This function has been
<em class="emphasis">DEPRECATED</em> as of PHP 5.3.0 and <em class="emphasis">REMOVED</em>
as of PHP 6.0.0. Relying on this feature is highly discouraged.</p></div>
</div>
<a name="function.session-register.parameters"></a><div class="refsect1 parameters">
<h3 class="title">Parameters</h3>
<p class="para">
</p><dl>
<dt class="varlistentry">
<span class="term"><i><tt class="parameter">name</tt></i>
</span>
</dt><dd class="listitem">
<p class="para">
A string holding the name of a variable or an array consisting of
variable names or other arrays.
</p>
</dd>
<dt class="varlistentry">
<span class="term"><i><tt class="parameter">...</tt></i>
</span>
</dt><dd class="listitem">
<p class="para">
</p>
</dd>
</dl>
<p>
</p>
</div>
<a name="function.session-register.returnvalues"></a><div class="refsect1 returnvalues">
<h3 class="title">Return Values</h3>
<p class="para">
Returns <b><tt class="constant">TRUE</tt></b> on success or <b><tt class="constant">FALSE</tt></b> on failure.
</p>
</div>
<a name="function.session-register.notes"></a><div class="refsect1 notes">
<h3 class="title">Notes</h3>
<div class="caution"><b class="caution">Caution</b>
<p class="para">
If you want your script to work regardless of <a href="ini.core.php#ini.register-globals" class="link">register_globals</a>, you need to
instead use the <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> array as
<var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> entries are automatically registered. If
your script uses <b>session_register()</b>, it will not work
in environments where the PHP directive <a href="ini.core.php#ini.register-globals" class="link">register_globals</a> is disabled.
</p>
</div>
<blockquote><p><b class="note">Note</b>: <b>register_globals: important
note</b><br />As of PHP 4.2.0, the default value for the PHP directive
<a href="ini.core.php#ini.register-globals" class="link">register_globals</a> is <em class="emphasis">
off</em>, and it was completely removed as of PHP 6.0.0. The PHP community
discourages developers from relying on this directive, and encourages the use
of other means, such as the <a href="language.variables.predefined.php" class="link">superglobals</a>.<br /></p></blockquote>
<div class="caution"><b class="caution">Caution</b>
<p class="para">
This registers a <em class="emphasis">global</em> variable. If you want to
register a session variable from within a function, you need to make sure
to make it global using the <a href="language.variables.scope.php" class="link"><strong class="command">global</strong></a>
keyword or the <var class="varname"><a href="reserved.variables.globals.php" class="classname">$GLOBALS[]</a></var> array, or use the special
session arrays as noted below.
</p>
</div>
<div class="caution"><b class="caution">Caution</b>
<p class="para">
If you are using <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var>
(or <var class="varname">$HTTP_SESSION_VARS</var>), do not use
<b>session_register()</b>,
<a href="function.session-is-registered.php" class="function">session_is_registered()</a>, and
<a href="function.session-unregister.php" class="function">session_unregister()</a>.
</p>
</div>
<blockquote><p><b class="note">Note</b>:
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
<i>resource</i> in their function definition. A list of
functions that return resources are available in the <a href="resource.php" class="link">resource types</a> appendix.
<br />
If <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> (or <var class="varname">$HTTP_SESSION_VARS</var>
for PHP 4.0.6 or less) is used, assign values to
<var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var>. For example: $_SESSION['var'] = 'ABC';
<br />
</p></blockquote>
</div>
<a name="function.session-register.seealso"></a><div class="refsect1 seealso">
<h3 class="title">See Also</h3>
<p class="para">
</p><ul class="simplelist">
<li class="member"><a href="function.session-is-registered.php" class="function" rel="rdfs-seeAlso">session_is_registered()</a> - Find out whether a global variable is registered in a session</li>
<li class="member"><a href="function.session-unregister.php" class="function" rel="rdfs-seeAlso">session_unregister()</a> - Unregister a global variable from the current session</li>
<li class="member"><var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var></li>
</ul><p>
</p>
</div>
</div><?php manual_footer(); ?>