1
0
mirror of https://github.com/php/doc-zh.git synced 2026-04-30 03:33:11 +02:00
Files
魔王卷子 8c2ec3127d Update session 1 (#640)
* Update book.xml

* Update constants.xml

* Update examples.xml

* Update security.xml

* Update upload-progress.xml

* Update session-cache-expire.xml

* Update session-cache-limiter.xml

* Update session-destroy.xml

* Update session-encode.xml

* Update session-get-cookie-params.xml

* Update session-id.xml

* Update session-name.xml

* Update session-regenerate-id.xml

* Update session-save-path.xml

* Update session-set-cookie-params.xml

* Update session-set-save-handler.xml

* Update session-start.xml

* Update session-start.xml

* Update session-status.xml

* Update session-unset.xml

* Update book.xml

* Update session-cache-expire.xml

* Update session-unset.xml
2023-02-15 00:22:37 +08:00

189 lines
6.6 KiB
XML

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