Problém s Session ve Vendoru
- ForestCZE
- Člen | 209
Ahoj, z ničeho nic mi začalo na jediném odkazu celé stránky vyskakovat error 500.
Log píše:
`
[2020–08–08 16–49–11] PHP Warning: ini_set(): Headers already sent. You
cannot change the session module's ini settings at this time in
/var/www/protiskcbcz/vendor/nette/http/src/Http/Session.php:394 @ http://protiskcb.cz/kontakt/
[2020–08–08 16–49–11] PHP Warning: ini_set(): Headers already sent. You
cannot change the session module's ini settings at this time in
/var/www/protiskcbcz/vendor/nette/http/src/Http/Session.php:394 @ http://protiskcb.cz/kontakt/
[2020–08–08 16–49–11] PHP Warning: session_id(): Cannot change session
id when headers already sent in
/var/www/protiskcbcz/vendor/nette/http/src/Http/Session.php:91 @ http://protiskcb.cz/kontakt/
`
Netuším, co může být špatně.
EDIT: Když zapnu DebugMode, tak error zmizí.
Editoval ForestCZE (8. 8. 2020 17:10)
- ForestCZE
- Člen | 209
CZechBoY napsal(a):
Co je na ty strance specialniho? Mozna formular? Zkus nastavit session start na true
Ano, je tam formulář a když to vyhodí ten error, tak ten formulář se nezobrazí, zbytek obsahu nad ním ano.
Vůbec se ssession nepracuju a nikdy jsem session u formuláře v nette startovat nemusel. Proč a kde to mám použít? Díky.
- ForestCZE
- Člen | 209
CZechBoY napsal(a):
Nepouzivas csrf protection?
protected function createComponentContact()
{
$form = new Form;
$form->addText('nameaddress', 'Jméno a příjmení, adresa:')
->setRequired('Vyplňte jméno a příjmení, adresu.')
->setAttribute('placeholder', 'Jméno a příjmení, adresa')
->setAttribute('autocomplete', 'off');
$form->addText('telephone', 'Telefon:')
->setRequired('Vyplňte telefon.')
->addRule(Form::PATTERN, 'Zadejte správný formát tel. čísla.', '[0-9]{9}')
->setAttribute('placeholder', 'Telefon (+420)')
->setAttribute('autocomplete', 'off');
$form->addEmail('mail', 'E-mail:')
->setRequired('Vyplňte e-mail.')
->setAttribute('placeholder', 'E-mail')
->setAttribute('autocomplete', 'off');
$form->addTextArea('message', 'Zpráva:')
->setRequired('Vyplňte zprávu.')
->setAttribute('placeholder', 'Zpráva');
$form->addUpload('uploadpdf', 'PDF:')
->setRequired(false)
->setAttribute('accept', 'application/pdf')
->addRule(Form::MIME_TYPE, 'Můžete nahrát pouze PDF soubor!', 'application/pdf')
->addRule(Form::MAX_FILE_SIZE, 'Maximální velikost souboru je 2M!', 2 * 1024 * 1024);
$form->addProtection('Vypršel časový limit pro odeslání!');
$form->addSubmit('send', 'Odeslat');
$form->onSuccess[] = [$this, 'contactSucceeded'];
return $form;
}
Poznámka: Ten error znefunkční všechny odkazy a nejde se nikam dostat. Web je zde
Editoval ForestCZE (9. 8. 2020 18:59)
- Marek Bartoš
- Nette Blogger | 1275
$form->addProtection('Vypršel časový limit pro odeslání!');
Tohle startuje session. Nastartuj session sám v presenteru, v rámci
životního cyklu nejpozději v beforeRender()