Jak se vyvarovat – Cannot set HTTP code after HTTP headers have been sent? Session
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- kokoumes
- Člen | 39
Ahojte
pořád nemůžu přijít na to, proč mi to píše tuhle hlášku:
Cannot set HTTP code after HTTP headers have been sent (output started at
…/SitePresenter.php:192).
Zdroj vypadá takhle:
<?php
protected function createComponentBigAvailibilityForm(){
$namespace = Environment::getSession('availabilityForm');
$httpRequest = new HttpRequest;
$httpRequest->getPost('locStreet');
$form = new AppForm;
$form->setMethod('post');
$form->addSelect('region', 'Region:', $this->getFromDbRegion())->getControlPrototype()->onchange("submit();");
if (isset($namespace->region)) {
$form->setDefaults(array('region' => $namespace->region));
}
$form->addSelect('city', 'Město', $this->getFromDbCity())->getControlPrototype()->onchange("submit();");
if (isset($namespace->city)) {
$form->setDefaults(array('city' => $namespace->city));
}
$form->addSelect('street', 'Ulice', $this->getFromDbStreet())->getControlPrototype()->onchange("submit();");
if (isset($namespace->street)) {
$form->setDefaults(array('street' => $namespace->street));
}
$form->addSelect('cp', 'Čp', $this->getFromDbCp())->getControlPrototype()->onchange("submit();");
if (isset($namespace->cpp)) {
$form->setDefaults(array('cp' => $namespace->cpp));
}
if ($namespace->region == "--" || empty($namespace->region)) {
$form['city']->setDisabled(true);
}
if ($namespace->region == "--" || $namespace->city == "--" || empty($namespace->city) || empty($namespace->region)) {
$form['street']->setDisabled(true);
}
if ($namespace->street == "--" || $namespace->city == "--" || empty($namespace->city) || empty($namespace->street)) {
$form['cp']->setDisabled(true);
}
$form->onSubmit[] = callback($this, 'SubmittedBigAvailibilityForm');
$this->template->form = $form;
return $form;
}
?>
zracování – zde mi to hází tu chybu
<?php
public function SubmittedBigAvailibilityForm(AppForm $form){
$values = $form->getValues();
$namespace = Environment::getSession('availabilityForm');
if ( $namespace->region != $values['region']) {
$namespace->city="--";
$namespace->street="--";
$namespace->cpp="--";
}
if (!empty($values['region'])) {
$namespace = Environment::getSession('availabilityForm');
$namespace->region = $values['region'];
}
if (!empty($values['city'])) {
$namespace = Environment::getSession('availabilityForm');
$namespace->city = $values['city'];
}
$namespace = Environment::getSession('availabilityForm');
if ($namespace->city != $values['city']) {
$namespace->city="--";
$namespace->cpp="--";
}
if (!empty($values['street'])) {
$namespace = Environment::getSession('availabilityForm');
$namespace->street = $values['street'];
}
if ($namespace->street != $values['street']) {
unset($namespace->street);
}
if (!empty($values['cp'])) {
$namespace->cpp = $values['cp'];
}
$this->redirect('default');
}
?>
Chyba se zobrazuje v různých řádcích zpracování formuláře.
Nějak nevim co dělám špatně :-(