[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Неопределенная переменная
Ilyoni
	function MessageSend($p1, $p2) {
if ($p1 == 1) $p1 = 'Ошибка';
else if ($p1 == 2) $p1 = 'Подсказка';
else if ($p1 == 3) $p1 = 'Информация';
$_SESSION['message'] = '<div class="MessageBlock"><b>'.$p1.'</b>: '.$p2.'</div>';
exit(head('Location: '.$_SERVER['HTTP_REFERER']));
}
function MessageShow() {
if ($_SESSION['message'])$Message = $_SESSION['message'];
echo $Message;
$_SESSION['message'] = array();
}



Код вроде верный, только при проверке ведет себя не так как надо, но идеи он должен выкидывать на туже страницу и выводить сообщение, а на деле он перекидывает на пустую страницу с тайтлом: Location: <title>. нажав на кнопку назад возращается на нужную страницу с нужным результатом, то есть работает но косячно.

Notice: Undefined variable: Message in Z:\home\pavlushin.ru\www\index.php on line 30.
То есть строка
echo $Message;
sergeiss
Ну так у тебя эта переменная создается только при выполнении определенного условия. А если условие не выполнено, то переменная не создана и будет не определена при выводе.
Меняй логику обработки.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
icedfox
function MessageShow() {
$Message = !empty($_SESSION['message']) ? $_SESSION['message'] : 'ничего нет';
echo $Message;
$_SESSION['message'] = array(); // шо це такое ? зачем переопределять ? зачем вообще менять значение глобальных переменных !!!
}
Ilyoni
Цитата
Ну так у тебя эта переменная создается только при выполнении определенного условия. А если условие не выполнено, то переменная не создана и будет не определена при выводе.
Меняй логику обработки.


Я понял, но все таки проблема теперь больше в том что при специально допущенной ошибке, функция должна обновить эту страницу и написать причину ошибки, а она перекидывает на пустую страницу после чего когда я нажимаю назад, с пустой страницы на нужную, нужное сообщение появляется.
Ilyoni
Проблеу решил где head должно быть header вот правильный код:
	function MessageSend($p1, $p2, $p3 = '') {
if ($p1 == 1) $p1 = 'Ошибка';
else if ($p1 == 2) $p1 = 'Подсказка';
else if ($p1 == 3) $p1 = 'Информация';
$_SESSION['message'] = '<div class="MessageBlock"><b>'.$p1.'</b>: '.$p2.'</div>';
if ($p3) $_SERVER['HTTP_REFERER'] = $p3;
exit(header('Location: '.$_SERVER['HTTP_REFERER']));
}
function MessageShow() {
if ($_SESSION['message'])$Message = $_SESSION['message'];
echo $Message;
$_SESSION['message'] = array();
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.