Home  |  Linux  | Mysql  | PHP  | XML
From:Jakub Vrana Date:Tue Nov 27 04:11:10 2007
Subject:cvs: phpdoc-cs /reference/network/functions header.xml headers-sent.xml setcookie.xml
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/
  

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

Navigate in group php.doc.cs at sever news.php.net
Previous Next




  
Š No Copyright
You are free to use Anything
Site Maintained by PHP Developer
Powered By PHP Consultants