Cannot set HTTP code after HTTP headers have been sent (…Nette\Web\User.php:450)) a Environment::getUser()
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- wise
- Člen | 161
Zdravím,
snažím se implementovat přihlašování, nicméně mi to hodilo právě tuto chybu.
Postupoval jsem dle: https://doc.nette.org/…thentication.
Jakmile v Admin_DefaultPresenter zakomentuju $user = Environment::getUser();, zpracování postoupí dále, ale samozřejmě vyhodí error, jelikož if (!$user->isAuthenticated()) { nemá tušení o objektu $user.
Chci se zeptat, jaké jsou možnosti debugu těchto hlášek, popř. jak se postupuje?
Děkuji moc.
- Aurielle
- Člen | 1281
Tato chyba je způsobena předčasným vypsáním výstupu. Nemáš někde
v tom presenteru dump něčeho nebo nevypisuješ něco?
Jinak $user = Environment::getUser();
je v pořádku. Ale před
časem došlo k přejmenování metod, takže:
- authenticate() → login() (jen v User, v Authenticatoru zůstává authenticate!)
- signOut() → logout()
- isAuthenticated() → isLoggedIn()
- getSignOutReason() → getLogoutReason()
- $onAuthenticated → $onLoggedIn
- $onSignedOut → $onLoggedOut