cvs: phpdoc-cs /reference/network/functions header.xml headers-sent.xml setcookie.xml

[email protected] ("Jakub Vrana") Tue, 27 Nov 2007 11:11:10 -0000
Newsgroups php.doc.cs
Message-ID <cvsvrana1196161870@cvsserver>
--vrana1196161870
Content-Type: text/plain

vrana		Tue Nov 27 11:11:10 2007 UTC

  Added files:                 
    /phpdoc-cs/reference/network/functions	header.xml headers-sent.xml 
                                          	setcookie.xml 
  Log:
  Move functions from http/
  
--vrana1196161870
Content-Type: text/plain
Content-Disposition: attachment; filename="vrana-20071127111110.txt"


http://cvs.php.net/viewvc.cgi/phpdoc-cs/reference/network/functions/header.xml?view=markup&rev=1.1
Index: phpdoc-cs/reference/network/functions/header.xml
+++ phpdoc-cs/reference/network/functions/header.xml
<?xml version="1.0" encoding="iso-8859-2"?>
<!-- splitted from ./cs/functions/http.xml, last change in rev 1.1 -->
<!-- last change to 'header' in en/ tree in rev 1.2 -->
  <refentry xml:id="function.header" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
   <refnamediv>
    <refname>header</refname>
    <refpurpose>Poslat HTTP hlavièku</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
     <methodsynopsis>
      <type>int</type><methodname>header</methodname>
      <methodparam><type>string</type><parameter>string</parameter></methodparam>
      <methodparam choice="opt"><type>bool</type><parameter>replace</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>http_response_code</parameter></methodparam>
     </methodsynopsis>
    <para>
     Funkce <function>header</function> se pou¾ívá na zaèátku HTML souboru
     k odeslání HTTP hlavièek. Více informací o HTTP hlavièkách viz <link
     xlink:href="&spec.http1.1;">Specifikace HTTP 1.1</link>.
     <emphasis>Poznámka:</emphasis> Pamatujte, ¾e funkce
     <function>header</function> musí být volána døíve ne¾ se ode¹le jakýkoliv
     normální výstup, a» u¾ normálními HTML tagy, nebo z PHP. Velmi obvyklou
     chybou je naèítat kód pomocí <function>include</function> nebo
     auto_prepend a mít v tomto kódu prázdné øádky, které zpùsobí odeslání
     výstupu pøed voláním funkce <function>header</function>.
    </para>
    <para>
    Existují dva zvlá¹tní pøípady volání funkce <function>header</function>.
    Prvním je hlavièka &quot;Location&quot;. Ta nejen¾e ode¹le hlavièku
    browseru, ale navíc i vrátí Apachi stavový kód REDIRECT. Z pohledu autora
    skriptu by to nemìlo být dùle¾ité, ale je to dùle¾ité pro lidi, kteøí
    rozumí vnitønostem Apache.
     <informalexample>
      <programlisting role="php">
header ("Location: http://www.php.net"); /* Pøesmìrujeme browser
                                            na web site PHP */
exit;                 /* Pojistíme si, ¾e se dal¹í kód nevykoná po
                         pøesmìrování. */
      </programlisting>
     </informalexample>
    </para>
    <para>
    Druhým zvlá¹tním pøípadem jsou v¹echny hlavièky zaèínající øetìzcem
    &quot;HTTP/&quot; (velikost písmen nehraje roli). Napøíklad, pokud
    direktiva ErrorDocument 404 va¹eho Apache ukazuje na PHP skript, nebylo
    by od vìci, kdyby skuteènì generoval 404. První vìcí, kterou byste v tomto
    skriptu mìli udìlat tudíz bude:
     <informalexample>
      <programlisting role="php">
header ("HTTP/1.0 404 Not Found");
      </programlisting>
     </informalexample>
    </para>
    <para>
    PHP skripty èasto generují dynamické HTML, které nesmí být cachováno
    u¾ivatelským browserem, ani ¾ýdnými proxynami mezi serverem a u¾ivatelským
    browserem. Mnoho proxyn a klientù se dá donutit k vypnutí cachování s pomocí
     <informalexample>
      <programlisting role="php">
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // datum v minulosti
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
                                                      // v¾dy upraven
header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
header ("Pragma: no-cache");                          // HTTP/1.0
      </programlisting>
     </informalexample>
    </para>
    <para>
     Viz také <function>headers_sent</function>
    </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:"../../../../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
-->

http://cvs.php.net/viewvc.cgi/phpdoc-cs/reference/network/functions/headers-sent.xml?view=markup&rev=1.1
Index: phpdoc-cs/reference/network/functions/headers-sent.xml
+++ phpdoc-cs/reference/network/functions/headers-sent.xml
<?xml version="1.0" encoding="iso-8859-2"?>
<!-- splitted from ./cs/functions/http.xml, last change in rev 1.1 -->
<!-- last change to 'headers-sent' in en/ tree in rev 1.7 -->
  <refentry xml:id="function.headers-sent" xmlns="http://docbook.org/ns/docbook">
   <refnamediv>
    <refname>headers_sent</refname>
    <refpurpose>Vrátit &true;, pokud byly odeslány hlavièky</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
     <methodsynopsis>
      <type>boolean</type><methodname>headers_sent</methodname>
      <methodparam><parameter>void</parameter></methodparam>
     </methodsynopsis>
    <para>
    Tato funkce vrátí &true;, pokud u¾ byly HTTP hlavièky
    odeslány, jinak &false;.
    </para>
    <para>
     Viz také <function>header</function>
    </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:"../../../../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
-->

http://cvs.php.net/viewvc.cgi/phpdoc-cs/reference/network/functions/setcookie.xml?view=markup&rev=1.1
Index: phpdoc-cs/reference/network/functions/setcookie.xml
+++ phpdoc-cs/reference/network/functions/setcookie.xml
<?xml version="1.0" encoding="iso-8859-2"?>
<!-- splitted from ./cs/functions/http.xml, last change in rev 1.1 -->
<!-- last change to 'setcookie' in en/ tree in rev 1.2 -->
  <refentry xml:id="function.setcookie" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
   <refnamediv>
    <refname>setcookie</refname>
    <refpurpose>Poslat cookie</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Popis</title>
     <methodsynopsis>
      <type>bool</type><methodname>setcookie</methodname>
      <methodparam><type>string</type><parameter>name</parameter></methodparam>
      <methodparam choice="opt"><type>string</type><parameter>value</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>expire</parameter></methodparam>
      <methodparam choice="opt"><type>string</type><parameter>path</parameter></methodparam>
      <methodparam choice="opt"><type>string</type><parameter>domain</parameter></methodparam>
      <methodparam choice="opt"><type>int</type><parameter>secure</parameter></methodparam>
     </methodsynopsis>
    <para>
     <function>setcookie</function> definuje cookie, která se po¹le
     spolu s ostatními HTTP hlavièkami. Podobnì jako ostatní hlavièky, cookies
     se musí odeslat <emphasis>pøed</emphasis> jakýmkoliv výstupem va¹eho
     skriptu (jedná se o omezení protokolu). Je tedy tøeba, abyste
     v¹echna volání této funkce umístili pøed jakýkoliv výstup, vèetnì
     znaèek <literal>&lt;html&gt;</literal> a <literal>&lt;head&gt;</literal>
     a také pøed jakékoliv bílé znaky. Kdy¾ je pøi volání této funkce u¾ nìco
     na výstupu, <function>setcookie</function> neuspìje a vrátí &false;.
     Kdy¾ <function>setcookie</function> probìhne v poøádku, vrátí
     &true;. To v¹ak neøíká nic o tom, zda byla cookie pøijata klientem.
    </para>
    <note>
     <para>
      V PHP 4 lze k poslání výstupu pøed voláním této funkce
      pou¾ít <link linkend="ref.outcontrol">output buffering</link>,
      ov¹em s tou re¾ií, ¾e v¹echen výstup pro prohlí¾eè
      bude pozdr¾en na serveru, dokud ho nepo¹lete. Lze to zaøídit voláním funkcí
      <function>ob_start</function> a <function>ob_end_flush</function>
      nebo nastavením konfiguraèní direktivy <literal>output_buffering</literal>
      v &php.ini; nebo konfiguraèních souborech serveru.
     </para>
    </note>    
    <para>
    V¹echny argumenty kromì argumentu <parameter>name</parameter> jsou
    nepovinné. Pokud je pøítomný pouze argument
    <parameter>name</parameter>, u klienta se sma¾e cookie tohoto jména.
    Kterýkoliv argument mù¾ete také nahradit prázdným øetìzcem
    (<emphasis>&quot;&quot;</emphasis>), èím¾ tento argument pøeskoèíte.
    Argumenty <parameter>expire</parameter> a <parameter>secure</parameter>
    jsou celoèíselné a nedají se pøeskoèit prázdným øetìzcem. Místo toho
    pou¾ijte nulu (<emphasis>0</emphasis>). Argument
    <parameter>expire</parameter> je bì¾né Unixové celoèíselné vyjádøení
    èasu, jak je vrací funkce <function>time</function> èi
    <function>mktime</function>. Argument <parameter>secure</parameter>
    indikuje, ¾e by se tato cookie mìla pøená¹et pouze po zabezpeèeném
    HTTPS spojení.
    </para>
    <para>
    Bì¾né zádrhele:
     <itemizedlist>
      <listitem>
       <simpara>
       Cookies jsou pøístupné a¾ pøi dal¹ím naètení stránky, na které pøístupné
       být mají.
       </simpara>
      </listitem>
      <listitem>
       <simpara>
       Cookies se musí mazat se stejnými parametry, se kterými byly odeslány.
       </simpara>
      </listitem>
     </itemizedlist>
    </para>
    <simpara>
    V PHP 3 se vícenásobná volání <function>setcookie</function> v jednom
    skriptu provedou v opaèném poøadí. Pokud se pokou¹íte smazat jeden
    cookie pøe odesláním jiného, mìli byste umístit vlo¾ení pøed smazání.
    V PHP 4 se vícenásobná volání <function>setcookie</function> provedou
    v tom poøadí, jak jsou volána.
    </simpara>
    <para>
    Nìkolik pøíkladù, jak posílat cookies:
     <example>
      <title>Ukázky odeslání cookies pomocí <function>setcookie</function></title>
      <programlisting role="php">
setcookie ("TestCookie", "Zku¹ební hodnota");
setcookie ("TestCookie", $value,time()+3600);  /* vypr¹í za hodinu */
setcookie ("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);
      </programlisting>
     </example>
    </para>
    <para>
    Následují pøíklady mazání cookies z pøedchozí ukázky:
     <example>
      <title>Ukázky mazání cookies pomocí <function>setcookie</function></title>
      <programlisting role="php">
setcookie ("TestCookie");
// nastaví dobu vypr¹ení na èas pøed hodinou
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
      </programlisting>
     </example>
     Pøi mazání cookie byste se mìli ujistit, ¾e je doba vypr¹ení v minulosti,
     èím¾ se v browseru zapne mechanismus odstranìní cookie.
    </para>
    <para>
    V¹imnìte si, ¾e hodnotová èást cookie se pøi odeslání cookie automaticky
    url-zakóduje, a pøi pøijetí se automaticky dekóduje a pøiøadí promìnné
    stejného jména, jako je jméno cookie. Pokud chcete vidìt obsah na¹eho
    zku¹ebního cookie, pou¾ijte nìkterý z následujících pøíkladù:
     <informalexample>
      <programlisting role="php">
echo $TestCookie;
echo $HTTP_COOKIE_VARS["TestCookie"];
      </programlisting>
     </informalexample>
    </para>
    <para>
    Cookies obsahující pole mù¾ete také odeslat tak, ¾e za název cookie napí¹ete
    hranaté závorky. Úèinkem tohoto je odeslání tolika cookies, kolik má va¹e
    pole prvkù, ale kdy¾ vá¹ skript tyto cookies pøijme, hodnoty se umístí
    v poli stejného jména, jako jsou va¹e cookies:
     <informalexample>
      <programlisting role="php">
setcookie ("cookie[three]", "cookiethree");
setcookie ("cookie[two]", "cookietwo");
setcookie ("cookie[one]", "cookieone");
if (isset ($cookie)) {
    while (list ($name, $value) = each ($cookie)) {
        echo "$name == $value&lt;br>\n";
    }
}
      </programlisting>
     </informalexample>
    </para>
    <para>
    Více informací o cookies viz specifikace cookies na <link
     xlink:href="&spec.cookies;">&spec.cookies;</link>.
    </para>
    <simpara>
     Microsoft Internet Explorer 4 se Service Packem 1 zpracovává chybnì
     cookies, které mají nastavený argument <parameter>path</parameter>.
    </simpara>
    <simpara>
     Netscape Communicator 4.05 a Microsoft Internet Explorer 3.x zøejmì
     nezpracují cookies správnì, pokud nejsou nastaveny argumenty
     <parameter>path</parameter> a <parameter>time</parameter>.
    </simpara>
   </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:"../../../../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
-->

--vrana1196161870--