-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathsession-set-save-handler.xml
149 lines (133 loc) · 4.81 KB
/
session-set-save-handler.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?xml version="1.0" encoding="UTF-8"?>
<!-- splitted from ./it/functions/session.xml, last change in rev 1.10 -->
<!-- last change to 'session-set-save-handler' in en/ tree in rev 1.23 -->
<!-- EN-Revision: n/a Maintainer: penzo Status: ready -->
<!-- OLD-Revision: 1.83/EN.1.23 -->
<refentry xml:id="function.session-set-save-handler" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>session_set_save_handler</refname>
<refpurpose>
Imposta le funzioni di archiviazione sessioni a livello utente
</refpurpose>
</refnamediv>
<refsect1>
<title>Descrizione</title>
<methodsynopsis>
<type>void</type><methodname>session_set_save_handler</methodname>
<methodparam><type>string</type><parameter>open</parameter></methodparam><methodparam><type>string</type><parameter>close</parameter></methodparam><methodparam><type>string</type><parameter>read</parameter></methodparam><methodparam><type>string</type><parameter>write</parameter></methodparam><methodparam><type>string</type><parameter>destroy</parameter></methodparam><methodparam><type>string</type><parameter>gc</parameter></methodparam>
</methodsynopsis>
<para>
<function>session_set_save_handler</function> imposta le funzioni di
archiviazione sessioni che sono usate per archiviare e riutilizzare
i dati associati a una sessione. Ciò non è molto utile
quando un altro metodo di archiviazione è preferito a quelli forniti
dalle sessioni PHP. i.e. L'archiviazione dei dati di sessione in un database locale.
</para>
<note>
<para>
Dovete impostare l'opzione di configurazione
<parameter>session.save_handler</parameter> per
<parameter>user</parameter> nel vostro file php.ini perché
<function>session_set_save_handler</function> abbia effetto.
</para>
</note>
<note>
<para>
L'handler "write" non viene eseguito fino a che l'output stream
non viene chiuso. In questo modo, l'output di espressioni di debugging
nell'hanlder "write" non si vedrà mai nel browser. Se l'output di debugging
è necessario, è consigliabile che l'output del debug venga scritto
in un file.
</para>
</note>
<para>
Il seguente esempio fornisce l'archiviazione di sessione
basata su file simile al solito gestore di salvataggio di sessioni PHP
<parameter>files</parameter>. Questo esempio potrebbe essere facilmente
esteso per coprire l'archiviazione in database usando il vostro sistema
database favorito con supporto PHP.
</para>
<para>
La funzione di lettura deve restituire sempre un valore stringa
perché il save handler funzioni a dovere. Restituisce una stringa vuota
se non ci sono dati da leggere. I valori restituiti da altri handlers sono convertiti in
espressioni booleane. TRUE per successo, FALSE in caso di fallimento.
</para>
<para>
<example>
<title>
<function>session_set_save_handler</function> esempio
</title>
<programlisting role="php">
<![CDATA[
<?php
function open ($save_path, $session_name) {
global $sess_save_path, $sess_session_name;
$sess_save_path = $save_path;
$sess_session_name = $session_name;
return(true);
}
function close() {
return(true);
}
function read ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "r")) {
$sess_data = fread($fp, filesize($sess_file));
return($sess_data);
} else {
return(""); // Deve restituire "" qui.
}
}
function write ($id, $sess_data) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "w")) {
return(fwrite($fp, $sess_data));
} else {
return(false);
}
}
function destroy ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
return(@unlink($sess_file));
}
/*********************************************
* ATTENZIONE - Qui avete bisogno di implementare qualche *
* sorta di routine per il cestinaggio. *
*********************************************/
function gc ($maxlifetime) {
return true;
}
session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");
session_start();
// proceed to use sessions normally
?>
]]>
</programlisting>
</example>
</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
-->