#php #session
#php #сеанс
Вопрос:
Как я могу получить данные сеанса при использовании session_set_save_handler? Когда я обновил страницу, все данные сеанса были потеряны, если я использую session_set_save_handler. однако, если я удалю session_set_save_handler, все будет в порядке! Есть код
<?php
/*
Session open (called by session_start( ))
Session close (called at page end)
Session read (called after session_start( ) )
Session write (called when session data is to be written)
Session destroy (called by session_destroy( ) )
Session garbage collect (called randomly)
*/
function sess_open($sess_path, $sess_name) {
//print "Session opened.n";
//print "Sess_path: $sess_pathn";
//print "Sess_name: $sess_namenn";
return true;
}
function sess_close( ) {
//print "Session closed.n";
return true;
}
function sess_read($sess_id) {
//print "Session read.n";
//print "Sess_ID: $sess_idn";
return '';
}
function sess_write($sess_id, $data) {
//print "Session value written.n";
//print "Sess_ID: $sess_idn";
//print "Data: $datann";
return true;
}
function sess_destroy($sess_id) {
//print "Session destroy called.n";
return true;
}
function sess_gc($sess_maxlifetime) {
//print "Session garbage collection called.n";
//print "Sess_maxlifetime: $sess_maxlifetimen";
return true;
}
session_set_save_handler('sess_open','sess_close','sess_read','sess_write','sess_destroy','sess_gc');
session_register_shutdown('session_write_close');
session_start();
if(isset($_SESSION['foo']))
$_SESSION['foo'] = "have the foo data";
else $_SESSION['foo'] = "no foo data";
echo $_SESSION['foo'];
?>
Он всегда выводит «no foo data», когда я обновляю страницу.
если я удалю
session_set_save_handler('sess_open','sess_close','sess_read','sess_write','sess_destroy','sess_gc');
session_register_shutdown('session_write_close');
он всегда выводит «иметь данные foo».
Кто может сказать мне, почему? Большое спасибо!