-
Notifications
You must be signed in to change notification settings - Fork 102
/
session-name.xml
165 lines (155 loc) · 4.99 KB
/
session-name.xml
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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: c35c07ab6a9cf533455947147634399fc928f6ca Maintainer: yuanyuqiang Status: ready -->
<!-- CREDITS: mowangjuanzi -->
<refentry xml:id="function.session-name" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>session_name</refname>
<refpurpose>读取/设置会话名称</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>string</type><type>false</type></type><methodname>session_name</methodname>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>name</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
<function>session_name</function> 函数返回当前会话名称。
如果指定 <parameter>name</parameter> 参数,
<function>session_name</function> 函数会更新会话名称,
并返回 <emphasis>原来的</emphasis> 会话名称。
</para>
<para>
如果使用 <parameter>name</parameter> 指定了新字符串作为会话 cookie 的名字,
<function>session_name</function> 函数会修改 HTTP 响应中的 cookie
(如果启用了 <literal>session.transid</literal>,还会输出会话 cookie 的内容)。
一旦在 HTTP 响应中发送了 cookie 的内容之后,
调用 <function>session_name</function> 函数会产生错误。
所以,一定要在调用 <function>session_start</function> 函数之前
调用此函数。
</para>
<para>
请求开始的时候,会话名称会被重置并且存储到
<literal>session.name</literal> 配置项。
因此,要想设置会话名称,那么对于每个请求,都需要在
调用 <function>session_start</function> 函数
之前调用 <function>session_name</function> 函数。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>name</parameter></term>
<listitem>
<para>
用在 cookie 或者 URL 中的会话名称,
例如:<literal>PHPSESSID</literal>。
只能使用字母和数字作为会话名称,建议尽可能的短一些,
并且是望文知意的名字(对于启用了 cookie 警告的用户来说,方便其判断是否要允许此 cookie)。
如果指定了 <parameter>name</parameter> 且不为 &null;,
那么当前会话也会使用指定值作为名称。
</para>
<para>
<warning>
<para>
会话名称至少需要一个字母,不能全部都使用数字,
否则,每次都会生成一个新的会话 ID。
</para>
</warning>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
返回当前会话名称。如果指定 <parameter>name</parameter> 参数,那么此函数会更新会话名称,并且
返回 <emphasis>原来的</emphasis> 会话名称,&return.falseforfailure;。
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>name</parameter> 现在可以为 null。
</entry>
</row>
<row>
<entry>7.2.0</entry>
<entry>
<function>session_name</function> 函数会检查会话状态,
之前的版本仅仅检查 cookie 状态。
所以,旧版本的 PHP 允许你在调用 <function>session_start</function>
函数之后再调用 <function>session_name</function> 函数,
新版本的 PHP 不再允许这样做了。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>session_name</function> 示例</title>
<programlisting role="php">
<![CDATA[
<?php
/* set the session name to WebsiteID */
$previous_name = session_name("WebsiteID");
echo "The previous session name was $previous_name<br />";
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member>
<link linkend="ini.session.name">session.name</link>
配置指示
</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:"~/.phpdoc/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
-->