Cannot send session cache limiter – headers already sent
- MW
- Člen | 626
Zdravím, prosím o radu.
Aplikace na localu v pohode.
Na VPS dostavam tuto
chybu.
Toto je presenter dane stranky. Jina to nedela, jen tato s formulářem.
Restartoval jsem server, chvili to bylo ok, ale pak znovu. Zkousel jsem session:
autostart, false i true.
Napada prosím někoho něco?
Moc dekuji !
<?php
use Nette\Application\UI;
class RegistracePresenter extends BasePresenter {
public function createComponentRegistrationForm($name) {
$form = new UI\Form($this,$name);
$form->addSubmit('send', 'Odeslat');
$form->addGroup('Přihlášovací údaje');
$form->addText('login', 'Login:', '25')
->setRequired('Zvolte si přihlašovací jméno.');
$form->addPassword('heslo', 'Heslo:', '25')
->setRequired('Vyplňte heslo !');
$form->addPassword('heslo2', 'Heslo pro kontrolu:', '25')
->setRequired('Vyplňte heslo pro kontrolu !')
->addRule(UI\Form::EQUAL, 'Hesla se neshodují.', $form["heslo"]);
$form->addGroup('O klubu');
$form->addText('jmeno', 'Vaše jméno:', '25')
->setRequired('Zadejte Vaše jméno.');
$form->addText('nazev_klubu', 'Název klubu:', '25')
->setRequired('Zadejte název klubu.');
$form->addText('url', 'URL stránek')
->setEmptyValue('http://')
->setRequired('Zadejte URL stránek.');
$form->addSelect('sporty_id', 'Sport:', $this->getModel('dataModel')->getData('sporty')->order('nazev')->fetchPairs('id', 'nazev'));
$form->addGroup('Případné platební údaje');
$form->addText('fakturacni_jmeno', 'Fakturační jméno', '25');
$form->addText('adresa', 'Adresa:', '25');
$form->addText('ic', 'IČ:', '25');
$form->addText('dic', 'DIČ:', '25');
$form->addGroup('Ochrana proti spamu');
\TextCaptcha\TextCaptcha::setSession(\Nette\Environment::getSession());
\TextCaptcha\TextCaptcha::setBackend(new \TextCaptcha\ArrayBackend());
\TextCaptcha\TextCaptcha::setLanguage("cs");
$form->addTextCaptcha();
$span = \Nette\Utils\Html::el('span', 'Souhlasím s ');
$href = \Nette\Utils\Html::el('a target=\'_blank\'', 'obchodními podmínkami')
->href($this->link('Podminky:'));
$terms = $span->add($href);
$form->addCheckbox('terms', $terms)
->setRequired('Souhlas');
$form->onSuccess[] = callback($this, 'registrationFormSubmitted');
return $form;
}
public function registrationFormSubmitted($form) {
$values = $form->getValues();
$values->role = 'user';
$values->od = date("Y-m-d");
$values->heslo = MD5($values->heslo);
unset($values->heslo2);
unset($values->registrationFormantispamtextcaptcha);
unset($values->terms);
try {
$this->getModel('dataModel')->saveData('kluby', $values);
} catch (Exception $e) {
If($e->getCode() == '23000') {
$form->addError('Login, název klubu nebo URL již existuje !');
}
else {
$form->addError($e->getMessage());
}
}
if(!$form->hasErrors()){
//ulozeni licence na 14 dni pro novou registraci
$noveId = $this->getModel('dataModel')->getData('kluby')->select('LAST_INSERT_ID() AS nid')->fetch()->nid;
$ted = time();
$znacka = mktime(0, 0, 0, date('m', $ted), date('d', $ted) + 14, date('Y', $ted));
$this->getModel('dataModel')->saveData('licence', array('kluby_id' => $noveId, 'datum' => date('Y-m-d', $znacka)));
//inicializace nastaveni klubu
$this->getModel('dataModel')->saveData('kluby_nastaveni', array('kluby_id' => $noveId));
$this->redirect('Info:message', array('message' => 'Registrace proběhla v pořádku.'));
}
}
}
- MW
- Člen | 626
Stále stejny problem. Prikladam neon. Je nejaka moznost, jak ověřit,
jestli se to nastavi spravne?
PHP direktiva v php.ini session_autostart mam na 0 .. ale to jsem mel na
lokahostu taky.
config.neon :
common:
php: # PHP configuration
date.timezone: Europe/Prague
# session.save_path: "%tempDir%/sessions"
# zlib.output_compression: yes
nette:
session:
autoStart: true
services:
robotLoader:
run: true
database:
class: Nette\Database\Connection
arguments: ['mysql:host=localhost;dbname=xxx', 'xxx', 'xxx']
modelLoader:
class: ModelLoader
arguments: ["@database"]
authenticator:
class: Authenticator
arguments: [kluby, @database]
authorizator:
class: acl
- MW
- Člen | 626
Tak dela to TextCaptcha.
Jak na to prosim? Delam to takto blbe?
Díky
\TextCaptcha\TextCaptcha::setSession(\Nette\Environment::getSession());
\TextCaptcha\TextCaptcha::setBackend(new \TextCaptcha\ArrayBackend());
\TextCaptcha\TextCaptcha::setLanguage("cs");
$form->addTextCaptcha();
- MW
- Člen | 626
Hral jsem si hral, az jsem zkusil do presenteru pridat
public function startup()
{
parent::startup();
if (!$this->session->isStarted()) {
$this->session->start();
}
}
A najednou je to bez chyby.
Tedy me evidentne asi nezafunguje v configu ten autostart.
Poradí někdo prosím, proc to tak muze byt nebo co mam blbe?
Diky moc !!!