-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy pathsession-set-cookie-params.xml
188 lines (183 loc) · 6.64 KB
/
session-set-cookie-params.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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 37be0e0626e8b96e617e800392651eacc5f65bdc Maintainer: yuanyuqiang Status: ready -->
<!-- CREDITS: mowangjuanzi -->
<refentry xml:id="function.session-set-cookie-params" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>session_set_cookie_params</refname>
<refpurpose>设置会话 cookie 参数</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>session_set_cookie_params</methodname>
<methodparam><type>int</type><parameter>lifetime_or_options</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>path</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>domain</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>bool</type><type>null</type></type><parameter>secure</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>bool</type><type>null</type></type><parameter>httponly</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>自 PHP 7.3.0 起可用的替代签名:</para>
<methodsynopsis>
<type>bool</type><methodname>session_set_cookie_params</methodname>
<methodparam><type>array</type><parameter>lifetime_or_options</parameter></methodparam>
</methodsynopsis>
<para>
Cookie 参数可以在 &php.ini; 文件中定义,本函数仅在当前脚本执行过程中有效。
因此,如果要通过函数修改 cookie 参数,需要对每个请求都要
在调用 <function>session_start</function> 函数之前调用
<function>session_set_cookie_params</function> 函数。
</para>
<para>
本函数会修改运行期 ini 设置值,
可以通过 <function>ini_get</function> 函数获取这些值。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>lifetime_or_options</parameter></term>
<listitem>
<para>
使用第一个签名时,session cookie 的 <link linkend="ini.session.cookie-lifetime">lifetime</link>,以秒为单位。
</para>
<para>
当使用第二个签名时,关联 <type>array</type> 可能具有 <literal>lifetime</literal>、<literal>path</literal>、<literal>domain</literal>、<literal>secure</literal>、<literal>httponly</literal>
和 <literal>samesite</literal> 中的任一 key。这些值与同名参数的含义相同。<literal>samesite</literal> 元素的值应该是 <literal>Lax</literal> 或
<literal>Strict</literal>。
如果可以接受的键在传入的数组中不存在,那么会采用这些键对应的默认值作为运行时的值。如果省略 <literal>samesite</literal> 元素,则不会设置 SameSite cookie 属性。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>path</parameter></term>
<listitem>
<para>
此 cookie 的有效 <link linkend="ini.session.cookie-path">路径</link>。 on the domain where
设置为“/”表示对于本域上所有的路径此 cookie 都可用。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>domain</parameter></term>
<listitem>
<para>
Cookie 的作用 <link linkend="ini.session.cookie-domain">域</link>。
例如:“www.php.net”。
如果要让 cookie 在所有的子域中都可用,此参数必须以点(.)开头,例如:“.php.net”。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>secure</parameter></term>
<listitem>
<para>
设置为 &true; 表示 cookie 仅在使用
<link linkend="ini.session.cookie-secure">安全</link> 链接时可用。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>httponly</parameter></term>
<listitem>
<para>
设置为 &true; 表示 PHP 发送 cookie 的时候会使用
<link linkend="ini.session.cookie-httponly">httponly</link>
标记。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</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>path</parameter>、<parameter>domain</parameter>、<parameter>secure</parameter>
和 <parameter>httponly</parameter> 现在可为 null。
</entry>
</row>
<row>
<entry>7.3.0</entry>
<entry>
新增支持 <parameter>lifetime_or_options</parameter> 数组的替代签名。此签名还支持 SameSite cookie 属性的设置。
</entry>
</row>
<row>
<entry>7.2.0</entry>
<entry>
&return.success;以前该函数返回 <type>void</type>。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member>
<link linkend="ini.session.cookie-lifetime">session.cookie_lifetime</link>
</member>
<member>
<link linkend="ini.session.cookie-path">session.cookie_path</link>
</member>
<member>
<link linkend="ini.session.cookie-domain">session.cookie_domain</link>
</member>
<member>
<link linkend="ini.session.cookie-secure">session.cookie_secure</link>
</member>
<member>
<link linkend="ini.session.cookie-httponly">session.cookie_httponly</link>
</member>
<member>
<link linkend="ini.session.cookie-samesite">session.cookie_samesite</link>
</member>
<member><function>session_get_cookie_params</function></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
-->