Session proměná z obyčejného PHP do Nette

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
JanBE
Člen | 62
+
0
-

Ahoj,

potřeboval bych ideálně v sign presenteru získat hodnotu session proměnné z obyč PHPka. Jde to nějak? Dejme tomu, že se proměnná je $_SESSION[‚name‘].

Vím, že si nette vytváří svoje sessions ale nevím jak bych tam mohl tuhle session přidat.

jiri.pudil
Nette Blogger | 1032
+
+1
-

$_SESSION['name'] nefunguje? imo by mělo

wentylos
Člen | 1
+
+1
-

Aby ses dostal k hodnote session kterou ti do ni zapsala jina aplikace, musis zajistit ze ta jina aplikace session stejne startuje jako nette. Tedy obe/vsechny aplikace ktere chcou cist/zapisovat do jedne sesession musi mit stejne nastavenou session coookie (session_name) a stejne nastaveny session save path a par dalsich veci. Paklize se tedy bavime o session ukladane na disk.

My to mame nejak takto:

<?php

//nastaveni nize musi byt stejne pro vsechny aplikace
$path = '/cesta/k/session';
$livetime = new DateTime('+ 2 month');
$sessionName = 'mojeSession';
$sessionSecured = true;

session_save_path($path);
ini_set("session.gc_maxlifetime", $livetime->format('U') - time());
session_name($sessionName);

$sessionId = Arr::get($_COOKIE, session_name(), null);

if (!is_null($sessionId)) {
  session_id($sessionId);
}

session_set_cookie_params($livetime->format('U') - time(), '/', '', $sessionSecure, true);

setcookie(session_name(), session_id(), $livetime->format('U'), '/', '', $sessionSecure, true);

?>

Pak budes moci pristoupi k $_SESSION[‚name‘] jak pise Jirka.

Nette pak vsechna sva data uklada do ‚namespace‘ uvnitr $_SESSOIN pod klicem __NF, tedy $_SESSION[‚__NF‘].

Takze treba ladenka ti vzdy vypisuje pouze obsah __NF a pokud tam chces i neco mimo tento prostor, musis si ten panel v ladence upravit.

Editoval wentylos (15. 9. 2016 11:01)