Проблема с сессиями

Иззет

Новичок
Здравствуйте, столкнулся с небольшой проблемой с сессиями, а именно:
Имеется форма регистрации, при обработке которой проверяются данные, и соответственно в некий массив сессии $_SESSION["error"] записываются сообщения об ошибках (Логин уже существует, не заполнено такое-то поле и т.д.).
Требуется вывести эти сообщения на странице 1 раз, т.е. после обновления они должны исчезнуть, что я думал нетрудно реализовать, прописав:
echo $_SESSION["error"]["login_busy"];
unset($_SESSION["error"]["login_busy"]);
Проблема в том, что данная переменная удаляется до вывода на экран, чего я не могу понять, ведь строчка с выводом идёт выше.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Главное задать вопрос, не задав вопроса. Занимайся отладкой, все работает. И переменная до вывода никуда не удаляется, потому как - скорей всего у тебя ее просто нет.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Пиши тест, приводи пример, поговорим.
 

Иззет

Новичок
Вырежу к примеру проверку логина:
PHP:
$query = "SELECT `customer_id` FROM `customers` WHERE `login` = '$login' LIMIT 1";
        $result_set = mysql_query($query) or die(mysql_error());
        $row = mysql_num_rows($result_set);
       
        if($row) $_SESSION["reg"]["login_busy"] = "Данный логин занят";
Далее происходит редирект на страницу с формой, где выводятся соответственные сообщения. Тут вся загвоздка: нужно удалить сессию после вывода на экран:
PHP:
echo $_SESSION["reg"]["login_busy"];
unset($_SESSION["reg"]["login_busy"]);
unset() удаляет её сразу же.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Неа, сразу он ее не удаляет. Просил написать элементарный кусок кода, для теста, ты не справился.

PHP:
<?php
//
session_start();
// Ставим тестовые данные в сессию и редиректим
if (empty($_GET['action']) or (!empty($_GET['action']) && $_GET['action'] == 'setSession')) {
$_SESSION["reg"]["login_busy"] = "Данный логин занят";
header('Location: index.php?action=doTest');
}
// Будем считать, что мы перешли на "другую" страницу после редиректа
if (!empty($_GET['action']) && $_GET['action'] == 'doTest') {
var_dump($_SESSION["reg"]["login_busy"]);
unset($_SESSION["reg"]["login_busy"]);
}
 

Иззет

Новичок
Разобрался. Проблема была в редиректе. Страница загружалась по ошибке 2 раза. Спасибо за помощь.
 
Сверху