Description
bool
session_set_save_handler
( string open, string close, string read, string write, string
destroy, string gc)
session_set_save_handler(
)
session_set_save_handler(
)
configure
les
fonctions
de
stockage
de
session
,
et
permet
de
choisir
des
fonctions
utilisateurs
pour
sauver
et
relire
toutes
les
sessions
.
Cette
fonction
est
très
pratique
lorsqu
'
il
faut
sauver
les
données
de
sessions
en
utilisant
une
autre
technique
que
le
système
par
fichier
fourni
par
défaut
:
notamment
,
stockage
en
base
de
données
,
ou
dans
des
démons
tels
que
le
SRM
.
Cette
fonction
retourne
TRUE
en
cas
de
succès
,
FALSE
en
cas
d
'
échec
.
Vous
devez
configurer
l'
option
session.save_handler
à
user
dans
votre
fichier
php.ini
pour
que
session_set_save_handler(
)
soit
actif
.
Le
gestionnaire
d'
écriture
n
'est
pas
exécuté
tant
que
le
flot
de
sortie
est
ouvert
.
Par
conséquent
,
l'
affichage
de
messages
de
debogage
durant
le
gestionnaire
d
'écriture
ne
sera
donc
jamais
visible
depuis
le
navigateur
.
Si
vous
avez
besoin
de
débogage
,
nous
vous
suggérons
d
'
écrire
vos
messages
dans
un
fichier
.
Le
gestionnaire
d'
écriture
n'est
pas
appelé
s'il
n
'y
a
pas
de
données
dans
la
session
.
Cela
s
'
applique
aussi
si
des
variables
de
sessions
vides
sont
enregistrées
.
Cela
diffère
du
comportement
du
système
de
gestion
des
sessions
par
fichier
,
qui
crée
un
fichier
vide
dans
ce
cas
.
L
'
exemple
suivant
fournit
un
exemple
de
stockage
des
sessions
semblable
au
système
par
défaut
:
par
fichier
.
Cet
exemple
peut
facilement
être
adapté
pour
réaliser
des
sauvegardes
en
bases
de
données
,
avec
votre
serveur
préféré
.
La
fonction
de
lecture
doit
toujours
retourner
une
chaîne
,
pour
que
le
gestionnaire
fonctionne
comme
prévu
.
Vous
devez
retourner
une
chaîne
vide
s'
il
n
'y
a
pas
de
données
à
lire
.
Les
valeurs
retournées
par
les
autres
gestionnaires
sont
converties
en
booléen
avant
d
'
être
retournées
au
script
.
TRUE
pour
la
réussite
,
FALSE
pour
l
'
échec
.
Exemple
1
.
Exemple
avec
session_set_save_handler(
)
?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("")
;
/
/
Doit
retourner
"
"
ici
.
}
}
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))
;
}
/
*********************************************
*
ATTENTION
-
Vous
devrez
impl
eacute;menter
un
*
*
collecteur
de
donn
eacute;es
obosol
egrave;tes
ici
.
*
*********************************************
/
function
gc
($maxlifetime
)
{
return
true
;
}
session_set_save_handler
("open"
,
"close"
,
"read"
,
"write"
,
"destroy"
,
"gc")
;
session_start()
;
/
/
Utilisez
vos
sessions
comme
d
'habitude
?
|
|