Sophie

Sophie

distrib > PLD > ac > amd64 > media > dist > by-pkgid > dd8ef74e7a184506d40e4328053fb785 > files > 2962

php-manual-ro-20051028-1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>session_set_save_handler</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Manual PHP"
HREF="index.html"><LINK
REL="UP"
TITLE="Session Handling Functions"
HREF="ref.session.html"><LINK
REL="PREVIOUS"
TITLE="session_set_cookie_params"
HREF="function.session-set-cookie-params.html"><LINK
REL="NEXT"
TITLE="session_start"
HREF="function.session-start.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=ISO-8859-2"></HEAD
><BODY
CLASS="refentry"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Manual PHP</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="function.session-set-cookie-params.html"
ACCESSKEY="P"
>Înapoi</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="function.session-start.html"
ACCESSKEY="N"
>Înainte</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><H1
><A
NAME="function.session-set-save-handler"
></A
>session_set_save_handler</H1
><DIV
CLASS="refnamediv"
><A
NAME="AEN103413"
></A
><P
>    (PHP 4 , PHP 5)</P
>session_set_save_handler&nbsp;--&nbsp;
     Sets user-level session storage functions
    </DIV
><DIV
CLASS="refsect1"
><A
NAME="AEN103416"
></A
><H2
>Description</H2
>bool <B
CLASS="methodname"
>session_set_save_handler</B
> ( string open, string close, string read, string write, string destroy, string gc)<BR
></BR
><P
>&#13;     <B
CLASS="function"
>session_set_save_handler()</B
> sets the user-level
     session storage functions which are used for storing and
     retrieving data associated with a session.  This is most useful
     when a storage method other than those supplied by PHP sessions
     is preferred.  i.e. Storing the session data in a local database.
     Returneazã <TT
CLASS="constant"
><B
>TRUE</B
></TT
> în caz de succes, <TT
CLASS="constant"
><B
>FALSE</B
></TT
> în caz contrar.
    </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Not&#227;: </B
>
      The "write" handler is not executed until after the output
      stream is closed.  Thus, output from debugging statements in the
      "write" handler will never be seen in the browser.  If debugging
      output is necessary, it is suggested that the debug output be
      written to a file instead.
     </P
></BLOCKQUOTE
></DIV
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Not&#227;: </B
>
      The write handler is not executed if the session contains no data;
      this applies even if empty session variables are registered. This
      differs to the default file-based session save handler, which creates
      empty session files.
     </P
></BLOCKQUOTE
></DIV
><P
>&#13;     The following example provides file based session
     storage similar to the PHP sessions default save handler
     <VAR
CLASS="parameter"
>files</VAR
>.  This example could easily be
     extended to cover database storage using your favorite PHP
     supported database engine.
    </P
><P
>&#13;     Read function must return string value always to make save
     handler work as expected. Return empty string if there is no data
     to read. Return values from other handlers are converted to
     boolean expression. <TT
CLASS="constant"
><B
>TRUE</B
></TT
> for success, <TT
CLASS="constant"
><B
>FALSE</B
></TT
> for failure.
    </P
><P
>&#13;     <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN103453"
></A
><P
><B
>Exemplu 1. 
       <B
CLASS="function"
>session_set_save_handler()</B
> example
      </B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><code><font color="#000000">
<font color="#0000BB">&lt;?php<br /></font><font color="#007700">function </font><font color="#0000BB">open</font><font color="#007700">(</font><font color="#0000BB">$save_path</font><font color="#007700">, </font><font color="#0000BB">$session_name</font><font color="#007700">) <br />{<br />&nbsp;&nbsp;global </font><font color="#0000BB">$sess_save_path</font><font color="#007700">, </font><font color="#0000BB">$sess_session_name</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;</font><font color="#0000BB">$sess_save_path </font><font color="#007700">= </font><font color="#0000BB">$save_path</font><font color="#007700">;<br />&nbsp;&nbsp;</font><font color="#0000BB">$sess_session_name </font><font color="#007700">= </font><font color="#0000BB">$session_name</font><font color="#007700">;<br />&nbsp;&nbsp;return(</font><font color="#0000BB">true</font><font color="#007700">);<br />}<br /><br />function </font><font color="#0000BB">close</font><font color="#007700">() <br />{<br />&nbsp;&nbsp;return(</font><font color="#0000BB">true</font><font color="#007700">);<br />}<br /><br />function </font><font color="#0000BB">read</font><font color="#007700">(</font><font color="#0000BB">$id</font><font color="#007700">) <br />{<br />&nbsp;&nbsp;global </font><font color="#0000BB">$sess_save_path</font><font color="#007700">, </font><font color="#0000BB">$sess_session_name</font><font color="#007700">;<br /><br />&nbsp;&nbsp;</font><font color="#0000BB">$sess_file </font><font color="#007700">= </font><font color="#DD0000">"$sess_save_path/sess_$id"</font><font color="#007700">;<br />&nbsp;&nbsp;if (</font><font color="#0000BB">$fp </font><font color="#007700">= @</font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#0000BB">$sess_file</font><font color="#007700">, </font><font color="#DD0000">"r"</font><font color="#007700">)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000BB">$sess_data </font><font color="#007700">= </font><font color="#0000BB">fread</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">, </font><font color="#0000BB">filesize</font><font color="#007700">(</font><font color="#0000BB">$sess_file</font><font color="#007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;return(</font><font color="#0000BB">$sess_data</font><font color="#007700">);<br />&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;return(</font><font color="#DD0000">""</font><font color="#007700">); </font><font color="#FF8000">// Must return "" here.<br />&nbsp;&nbsp;</font><font color="#007700">}<br /><br />}<br /><br />function </font><font color="#0000BB">write</font><font color="#007700">(</font><font color="#0000BB">$id</font><font color="#007700">, </font><font color="#0000BB">$sess_data</font><font color="#007700">) <br />{<br />&nbsp;&nbsp;global </font><font color="#0000BB">$sess_save_path</font><font color="#007700">, </font><font color="#0000BB">$sess_session_name</font><font color="#007700">;<br /><br />&nbsp;&nbsp;</font><font color="#0000BB">$sess_file </font><font color="#007700">= </font><font color="#DD0000">"$sess_save_path/sess_$id"</font><font color="#007700">;<br />&nbsp;&nbsp;if (</font><font color="#0000BB">$fp </font><font color="#007700">= @</font><font color="#0000BB">fopen</font><font color="#007700">(</font><font color="#0000BB">$sess_file</font><font color="#007700">, </font><font color="#DD0000">"w"</font><font color="#007700">)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;return(</font><font color="#0000BB">fwrite</font><font color="#007700">(</font><font color="#0000BB">$fp</font><font color="#007700">, </font><font color="#0000BB">$sess_data</font><font color="#007700">));<br />&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;return(</font><font color="#0000BB">false</font><font color="#007700">);<br />&nbsp;&nbsp;}<br /><br />}<br /><br />function </font><font color="#0000BB">destroy</font><font color="#007700">(</font><font color="#0000BB">$id</font><font color="#007700">) <br />{<br />&nbsp;&nbsp;global </font><font color="#0000BB">$sess_save_path</font><font color="#007700">, </font><font color="#0000BB">$sess_session_name</font><font color="#007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;</font><font color="#0000BB">$sess_file </font><font color="#007700">= </font><font color="#DD0000">"$sess_save_path/sess_$id"</font><font color="#007700">;<br />&nbsp;&nbsp;return(@</font><font color="#0000BB">unlink</font><font color="#007700">(</font><font color="#0000BB">$sess_file</font><font color="#007700">));<br />}<br /><br /></font><font color="#FF8000">/*********************************************<br /> * WARNING - You will need to implement some *<br /> * sort of garbage collection routine here.&nbsp;&nbsp;*<br /> *********************************************/<br /></font><font color="#007700">function </font><font color="#0000BB">gc</font><font color="#007700">(</font><font color="#0000BB">$maxlifetime</font><font color="#007700">) <br />{<br />&nbsp;&nbsp;return </font><font color="#0000BB">true</font><font color="#007700">;<br />}<br /><br /></font><font color="#0000BB">session_set_save_handler</font><font color="#007700">(</font><font color="#DD0000">"open"</font><font color="#007700">, </font><font color="#DD0000">"close"</font><font color="#007700">, </font><font color="#DD0000">"read"</font><font color="#007700">, </font><font color="#DD0000">"write"</font><font color="#007700">, </font><font color="#DD0000">"destroy"</font><font color="#007700">, </font><font color="#DD0000">"gc"</font><font color="#007700">);<br /><br /></font><font color="#0000BB">session_start</font><font color="#007700">();<br /><br /></font><font color="#FF8000">// proceed to use sessions normally<br /><br /></font><font color="#0000BB">?&gt;</font>
</font>
</code></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
    </P
><P
>&#13;     See also the <A
HREF="ref.session.html#ini.session.save-handler"
>session.save_handler</A
>
     configuration directive.
    </P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="function.session-set-cookie-params.html"
ACCESSKEY="P"
>Înapoi</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Acas&#227;</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="function.session-start.html"
ACCESSKEY="N"
>Înainte</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>session_set_cookie_params</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="ref.session.html"
ACCESSKEY="U"
>Sus</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>session_start</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>