Problém se session při error 404
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- n.u.r.v.
- Člen | 485
Ahoj, mám problém – když vyhodím nějakou chybu (např 404 zadáním neexistující adresy), tak se mi v access.log vytvoří záznam – to je správně, ale zároveň se mi vytvoří error.log, kde je uvedeno:
[2014–04–01 15–04–20] PHP User Notice: Possible problem: you are sending a HTTP header while already having some data in output buffer. Try OutputDebugger or start session earlier. in C:\Program Files (x86)\VertrigoServ\www\Administrace_stable\libs\Nette\Http\Response.php:315 @ http://administrace_stable/login333
A nevím proč – je jasné, že to bude startováním session, jenže nevím kde… Dokonce jsem zkusil v configu i dát session:autoStart: true, ale nepomohlo…
Můj error presenter:
<?php
use Nette\Diagnostics\Debugger;
/**
* Error presenter.
*/
class ErrorPresenter extends Nette\Application\UI\Presenter {
/**
* @param Exception
* @return void
*/
public function renderDefault($exception) {
if ($this->isAjax()) { // AJAX request? Just note this error in payload.
$this->payload->error = TRUE;
$this->terminate();
} elseif ($exception instanceof Nette\Application\BadRequestException) {
$code = $exception->getCode();
// load template 403.latte or 404.latte or ... 4xx.latte
$this->setView(in_array($code, array(403, 404, 405, 410, 500)) ? $code : '4xx');
// log to access.log
//Debugger::log("HTTP code $code: {$exception->getMessage()} in {$exception->getFile()}:{$exception->getLine()}", 'access');
Debugger::log("HTTP code $code: {$exception->getMessage()} in {$exception->getFile()}:{$exception->getLine()}" . ", IP adresa: " . (isset($this->getSession('uzivatel')->ip_adresa) ? $this->getSession('uzivatel')->ip_adresa : "Neznama ip.").", ", 'access');
} else {
switch ($exception->getCode()) {
case 10 : $this->setView('blokace');
break;
default : $this->setView('500'); // load template 500.latte
}
Debugger::log($exception, Debugger::ERROR); // and log exception
}
}
}
template 404:
{var $robots = noindex}
{block content}
{status 404}
<h2 n:block="title">Stránka nebyla nalezena!</h2>
<div class="main-content">
<p>Požadovaná stránka nebyla nalezena. Je možné, že je adresa nesprávná, nebo že stránka již neexistuje.</p>
<p><small>error 404</small></p>
</div> <!--main-content -->
{/block}
Nemáte tušení, kde by mohl být problém? Díky