svn: /phpdoc/bg/trunk/reference/session/functions/ session-start.xml
[email protected] (Stanislav Yordanov) Sun, 12 Jun 2016 17:51:11 +0000
| Newsgroups | php.doc.bg |
|---|---|
| Message-ID | <[email protected]> |
stanprog Sun, 12 Jun 2016 17:51:11 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=339324
Log:
sync with EN
Changed paths:
U phpdoc/bg/trunk/reference/session/functions/session-start.xml
svn-diffs-339324.txt
(text/x-diff, 11.4 KB)
Modified: phpdoc/bg/trunk/reference/session/functions/session-start.xml
===================================================================
--- phpdoc/bg/trunk/reference/session/functions/session-start.xml 2016-06-12 15:50:55 UTC (rev 339323)
+++ phpdoc/bg/trunk/reference/session/functions/session-start.xml 2016-06-12 17:51:11 UTC (rev 339324)
@@ -1,17 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: n/a Maintainer: pemitev Status: ready -->
-<refentry xml:id="function.session-start" xmlns="http://docbook.org/ns/docbook">
+<!-- EN-Revision: 337868 Maintainer: stanprog Status: ready -->
+<!-- CREDITS: pemitev -->
+<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.session-start">
<refnamediv>
<refname>session_start</refname>
<refpurpose>Инициализира сесия</refpurpose>
</refnamediv>
-
+
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>session_start</methodname>
- <void/>
+ <methodparam choice="opt"><type>array</type><parameter>options</parameter><initializer>[]</initializer></methodparam>
</methodsynopsis>
<para>
Функцията <function>session_start</function> създава нова сесия или
@@ -19,27 +20,64 @@
се предава чрез заявка, като GET, POST или бисквитка.
</para>
<para>
+ Когато бъде извикана функция <function>session_start</function> или при автоматично активиране на сесията,
+ PHP ще извика манипулаторите за запис на сесията, за отваряне и четене. Те са или вградени
+ манипулатори за запис, осигурено по подразбиранe или чрез PHP разширение (като SQLite или Memcached);
+ може да бъде и потребителски манипулатор, ако такъв е дефиниран чрез <function>session_set_save_handler</function>.
+ Обратно извикващата функция за четене ще извлече всички сесийни данни (съхранявани в специален сериализиран формат),
+ ще ги десериализира и използва за да попълни суперглобалната променлива $_SESSION, когато
+ обратно извикващата функция за четене върне записаните данни обратно към манипулирането на сесии на PHP.
+ </para>
+ <para>
Ако искате да използвате именувана сесия, трябва да извикате
<function>session_name</function> преди извикването на
<function>session_start</function>.
</para>
<para>
- <function>session_start</function> ще регистрира вътрешен манипулатор,
- извеждащ данни за пренаписването на URL адреса, ако <literal>trans-sid</literal> е
- разрешен. Ако даден потребител използва <literal>ob_gzhandler</literal> или
- <function>ob_start</function>, редът на извеждащия манипулатор е важен за
- коректното извеждане. Например, даден потребител трябва да регистрира
- <literal>ob_gzhandler</literal> преди да започне сесията.
+ Ако <link linkend="ini.session.use-trans-sid">session.use_trans_sid</link>
+ е включена, функция <function>session_start</function> ще
+ регистрира вътрешен манипулатор на изхода за пренаписване на URL адреси.
+ </para>
+ <para>
+ Ако даден потребител използва функция <literal>ob_gzhandler</literal> или подобна с
+ <function>ob_start</function>, редът на извикването на функциите в важен за
+ правилният изход. Например,
+ <literal>ob_gzhandler</literal> трябва да бъде регистрирана преди началото на сесията.
</para>
</refsect1>
-
+
+ <refsect1 role="parameters">
+ &reftitle.parameters;
+ <variablelist>
+ <varlistentry>
+ <term><parameter>options</parameter></term>
+ <listitem>
+ <para>
+ Ако е предаден, представлява асоциативен масив от опции, които препокриват
+ текущият набор от
+ <link linkend="session.configuration">директиви за конфигуриране на сесията</link>.
+ Ключовете не трябва да съдържат представка <literal>session.</literal>.
+ </para>
+ <para>
+ Освен стандартните конфигурационни директиви, може да бъде
+ установена и опцията <literal>read_and_close</literal>. Ако е установена в
+ &true;, ще доведе до затваряне на сесията веднага, след като е
+ прочетена, като с това се избягва ненужното заключване, ако сесийните данни
+ няма да бъдат променяни.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
- Тази функция винаги връща &true;, ако сесията е инициализирана успешно, иначе връща &false;.
+ Тази функция винаги връща &true;, ако сесията е инициализирана успешно,
+ иначе връща &false;.
</para>
</refsect1>
-
+
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -53,6 +91,12 @@
</thead>
<tbody>
<row>
+ <entry>7.0.0</entry>
+ <entry>
+ Добавен е параметърът <parameter>options</parameter>.
+ </entry>
+ </row>
+ <row>
<entry>5.3.0</entry>
<entry>
Ако по някаква причина сесията не успее да бъде стартирана, се връща &false;,
@@ -73,13 +117,16 @@
</informaltable>
</para>
</refsect1>
-
+
<refsect1 role="examples">
&reftitle.examples;
- <para>
- <example>
- <title>Пример за сесия: <filename>page1.php</filename></title>
- <programlisting role="php">
+ <refsect2>
+ <title>Прост пример за работа със сесии</title>
+
+ <para>
+ <example>
+ <title><filename>page1.php</filename></title>
+ <programlisting role="php">
<![CDATA[
<?php
// page1.php
@@ -92,28 +139,28 @@
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
-// Работи, ако сесийната бисктивка е била приета
+// Работи, ако сесийната бисквитка е била приета
echo '<br /><a href="page2.php">page 2</a>';
// или просто предава сесийния идентификатор
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>
]]>
- </programlisting>
- </example>
- </para>
- <para>
- След като прегледате <filename>page1.php</filename>, втората страница
- <filename>page2.php</filename> ще съдържа информация за сесията.
- Прочетете <link linkend="ref.session">информацията за сесии</link>
- свързана с <link linkend="session.idpassing">предаване
- на сесийни идентификатори</link>, където е обяснено за какво служи
- константата <constant>SID</constant>.
- </para>
- <para>
- <example>
- <title>Пример за сесия: <filename>page2.php</filename></title>
- <programlisting role="php">
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ След като прегледате <filename>page1.php</filename>, втората страница
+ <filename>page2.php</filename> ще съдържа информация за сесията.
+ Прочетете <link linkend="ref.session">информацията за сесии</link>
+ свързана с <link linkend="session.idpassing">предаване
+ на сесийни идентификатори</link>, където е обяснено за какво служи
+ константата <constant>SID</constant>.
+ </para>
+ <para>
+ <example>
+ <title><filename>page2.php</filename></title>
+ <programlisting role="php">
<![CDATA[
<?php
// page2.php
@@ -130,18 +177,51 @@
echo '<br /><a href="page1.php">page 1</a>';
?>
]]>
+ </programlisting>
+ </example>
+ </para>
+ </refsect2>
+ <refsect2>
+ <title>Предаване на параметри към <function>session_start</function></title>
+
+ <example>
+ <title>Предефиниране на валидността на бисквитка</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+// Изпраща постоянна бисквитка, която е валидна един ден.
+session_start([
+ 'cookie_lifetime' => 86400,
+]);
+?>
+]]>
</programlisting>
</example>
- </para>
+
+ <example>
+ <title>Четене и приключване на сесия</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+// If we know we don't need to change anything in the
+// session, we can just read and close rightaway to avoid
+// locking the session file and blocking other pages
+session_start([
+ 'cookie_lifetime' => 86400,
+ 'read_and_close' => true,
+]);
+]]>
+ </programlisting>
+ </example>
+ </refsect2>
</refsect1>
-
+
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Ако използвате сесии базирани на бисквитки, трябва да извикате
- <function>session_start</function> преди какъвто и да е
- изход.
+ <function>session_start</function> преди какъвто и да е изход.
</para>
</note>
<note>
@@ -150,21 +230,29 @@
е препоръчителна пред <function>ob_gzhandler</function>
</para>
</note>
+ <note>
+ <para>
+ Тази функция изпраща няколко HTTP заглавки, в зависимост от
+ конфигурацията. Вж. <function>session_cache_limiter</function>
+ за настройване на тези заглавки.
+ </para>
+ </note>
</refsect1>
-
+
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><varname>$_SESSION</varname></member>
<member>
- Конфигурационната директива <link linkend="ini.session.auto-start">session.auto_start</link>
+ Конфигурационната директива
+ <link linkend="ini.session.auto-start">session.auto_start</link>
</member>
<member><function>session_id</function></member>
</simplelist>
</para>
</refsect1>
-
+
</refentry>
<!-- Keep this comment at the end of the file