Undefined index: C – prosím o pomoc
- MW
- Člen | 626
Zdravím,
uz par mesicu delam na projektu, ale nahle jsem zacal dostavat tuto chybu
Nette 2.0.5 zadna změna nebyla.. ani v konfiguraci..
Vymazu prohlizec, je to ok.. ale po restartu znovu… :/
EDIT:
Podezrivam to, ze mam ted rozdelane tri aplikace, které testuji na localhostu,
postavene na NETTE a koliduji me session.. je to mozne?
Zalezi, kterou pustim drive..¨
Díky za jakoukoliv radu..
Editoval MW (24. 3. 2014 13:16)
- Šaman
- Člen | 2666
Session je pro celou doménu a jestli máš jen podadresáře na localhostu (nevytváříš doménové aliasy), tak máš session společné. Schválně, jestli máš ve více aplikacích stejné přihlášení třeba na admina ze sandboxu, tak se v jedné aplikaci přihlaš a pak pusť druhou – identita přihlášeného zůstala nastavená.
Můžeš si třeba při přihlášení nastavit do dat identity nějaký specifický řetězec a pak v debugBaru uvidíš, která aplikace tuto identitu vytvořila. Jestli stavíš na stejném Sandboxu, tak se pravděpodobně používá i v jiných aplikacích na stejné doméně.
<?php
# UserManager.php, řádek 56
$arr = $row->toArray();
$arr['appName'] = "Název aplikace"; # <--- přidej tohle a uvidíš, která aplikaze identitu vytvořila
unset($arr[self::COLUMN_PASSWORD_HASH]);
return new Nette\Security\Identity($row[self::COLUMN_ID], $row[self::COLUMN_ROLE], $arr);
?>
P.S. Co se týče toho unikátního sessionId – to se ukládá v cookies a cookies jsou společné pro doménu. Právě z toho důvodu aplikace sdílí stejné session.
Editoval Šaman (24. 3. 2014 16:30)
- MW
- Člen | 626
Což o to, já bych aktualizoval na poslední Nette.. ale bojím se dlouhodobé nefunkčnosti systému, než to všechno opravím… udělal jsem to jednou a pak přepisoval hafo věcí :/
Ale asi se tomu nevyhnu.. ale z verze 2.0.5 na současnou to asi nebude bez problemu…
V každem případě díky !!!
- Milo
- Nette Core | 1283
Pokud je sdílení session pro doménu nežádoucí, nastav aplikacím jméno
session anebo nastav cestu session cookiesce. Koukni na API metod
Session::setCookieParameters()
a
Session::setName()
.
Jestli Ti session startují cizí knihovny před Nette, můžeš to hardcode
nastavit přes session_name()
a
session_set_cookie_params()
.