Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Sesje] Ustawianie session_id() w obiekcie handlera sesji
Forum PHP.pl > Forum > PHP
kwiateek
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.
KaMeLeOn
Przy tworzeniu obiektu musisz zastosować referencje:
[php:1:63faf71451]<?php
$session_handler =& new SessionHandler();
?>[/php:1:63faf71451]
Zresztą poczytaj sobie dokładnie: http://www.php.net/manual/pl/function.sess...ave-handler.php
kwiateek
Cytat
Przy tworzeniu obiektu musisz zastosować referencje:

To także uwględniłem i był ten sam efekt.
Cytat
Zresztą poczytaj sobie dokładnie:http://www.php.net/manual/pl/function.session-set-save-handler.php

Czytałem. O referencji jest tam wspomniane jedynie w komentarzach.

Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.