mirror of
https://github.com/php/doc-zh.git
synced 2026-04-28 02:33:12 +02:00
166 lines
5.1 KiB
XML
166 lines
5.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- $Revision$ -->
|
||
<!-- EN-Revision: d7a77b5f850d5077f75d0c8c0d22cd60f099965d Maintainer: yuanyuqiang Status: ready -->
|
||
<!-- CREDITS: mowangjuanzi, Luffy -->
|
||
<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
|
||
(如果启用了 <link linkend="ini.session.use-trans-sid">session.use_trans_sid</link>,还会输出会话 cookie 的内容)。
|
||
一旦在 HTTP 响应中发送了 cookie 的内容之后,
|
||
调用 <function>session_name</function> 函数会产生 <constant>E_WARNING</constant>。
|
||
所以,一定要在调用 <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
|
||
-->
|