session + header (новые странности)

orakul

Новичок
Наблюдается странность с браузером Opera!
Возможно, об этом уже писалось.

index.php
PHP:
session_start();
if ($_SESSION['error'])
{
  <печатать ошибку!>
  unset($_SESSION['error']);
}
else print_info();

function print_info()
{
  if (<какая-то ошибка, например, в данных из БД>)
  {
      $_SESSION['error']['message'] = 'у вас такая-то ошибка';
      header('Location: ' . <текущий адрес>);
      exit();
  }
  <печатать информацию!>
}
1. Обнаружается ошибка
1.1 В сеанс забивается error
1.2 Происходит перезагрузка этой же страницы
2. Печатается ошибка и убивается error в сеансе

И при перезагрузке происходит новая проверка.

Так вот, в InternetExplorer всё работает нормально.
А Opera показывает белый лист.

Cookies в Опере работают!!! В этом-то и вся мистика.

---

hint:
Если убрать header и жать refresh, оба браузера будут показывать ошибку чередуя ее с белым листом. Это естественно.

hint2:
Если подержать пол-секунды -- секунду refresh у Оперы, она начинает отображать требуемую ошибку (работать, как полагается).

Бред какой-то. =/
 
Сверху