Mam następujący kod:
[php:1:5010b59c4f]<?php
// Klasa Session Handler w której znajdują sie funkcję wymagane dla session_set_save_handler (dla przykładu dałem _write() bo tej tyczy się problem
class SessionHandler
{
function _write($session_id, $data)
{
$session_id = generateSessionId(); // generowanie id sesji
session_id($session_id); // ustawianie session_id() na wygenerowany ciąg
}
}
// Tworzenie obiektu handlera sesji
$session_handler = new SessionHandler();
// Ustawia funkcje użytkownika do przechowywania sesji
session_set_save_handler (array(&$session_handler, '_open'),
array(&$session_handler, '_close'),
array(&$session_handler, '_read'),
array(&$session_handler, '_write'),
array(&$session_handler, '_destroy'),
array(&$session_handler, '_gc'));
// Start sesji
session_start();
?>[/php:1:5010b59c4f]
Chciałbym w metodzie _write() dokonać nadpisania id sesji. Jednak rezultat tego co znajduje się w metodzie nie jest dostępny poza obiektem session handler'a.
Więc pytanie jest takie: w jaki sposób ustawić session_id z poziomu tamtej metody.
Alteratywną do tego metodą może okazać się wysłanie header'a z przekierowniem na URL/index.php?PHPSESSID=session_id() jednak jest to również nie możliwe i nie wiem z jakiego powodu.
Wyświetla mi komunikat:
Cannot add header information i dalej kazdy wie...
Chociaz wcześniej nie ma wysłanego nic do przeglądarki.
Pozdrawiam.