Я сам учу PHP. Не верите? Знаете, почему у меня ник "Строитель"? Именно потому, что я ним и работаю в реальной жизни. И потому, что я не хочу дальше работать строителем, я самообразовываюсь. И более того, может быть у меня это и не получится (стать программистом), т.к. не так это просто, как может показаться на первый взгляд.
Ваше стремление изучить язык похвально, но вы выбрали не верный путь, который вас не приведёт к знаниям. Поверьте мне, самоучке. Если вы прислушаетесь к тому, что я напишу далее, то вы или сдвинетесь с мёртвой точки, или откроете для себя другой путь, за пределами программирования (например, веб дизайн).
Что вам нужно сделать на данном этапе? - выбросить тот недокод, который вы сюда "тычите", и пойти от простого к сложному. Откройте мануал, и просто начните читать (например, синтаксис). По мере чтения копируйте листинги кода из прочитанного материала на свой предварительно установленный локальный сервер, и запускайте его (я про скопированный код). Если не понимаете, как он работает, то пооперируйте значениями из этого кода. Если снова не понятно - перечитайте заново, возможно дважды или более раз.
Если же вам так и не станут понятны очевидные (для других) вещи, то не продолжайте терять ваше время, и попробуйте например научиться работать с графикой (асильте фотошоп, и возможно вы станете востребованным дизайнером) ... Дело в том, что человеческий мозг должен иметь предрасположенность к программированию. Не каждый человек способен мыслить так, как требуется в этой области. И дело не в образовании или в его отсутствии, а именно в способности человеческого мозга мыслить подобным образом.
EvgenyTkachev, во первых, вам не мешало бы оформить внятно первый пост (подробно раскрыть проблему); во вторых - такая проблема такою и останется, т.к. кроме вас ваш код отсюда никому не виден.
alex.pro100, создайте вместо этой переменной $_SESSION['msg'] массив $_SESSION['msg'][] , а в выводе обращайтесь к нему через функцию объединения элементов массива join($_SESSION['msg'])
Но насколько я понимаю - это "костыль" и нужно пересматривать решение с переадресией на ошибку?
Да.
Perun пишет:
И попутно вопрос: Стоит ли озаботиться обработкой такой ошибки? Я имею в виду - переадресации, обработка и вывод ошибок на экран, или пусть этим браузер занимается?
Если что-то нужно сообщить пользователю, касающееся его не корректных действий на странице (не верно заполнено поле, и т.п.), то лучше сообщить.
Perun пишет:
Как вариант, возможно проще, и мне так логически понятнее - просто удалять куку у клиента?
Верно, ведь пользователь нажал на кнопку "Выход".
Perun пишет:
Плюсик за помощь не имею технической возможности поставить
Я знаю - карма для вас станет доступна после набора пяти десяти постов на нашем форуме
В вашем варианте все ветвления условий if приводили выполнение кода в этот блок :
else {
$_SESSION['exit'] = 'There is a cookie\'s error.';
header('Location: http://www.d.local/index.php?page=exit');
exit();
}
Далее в этом блоке срабатывал редирект на httр://www.d.local/index.php?page=exit ...
И так снова и снова (зацикливание). И чтобы избежать зацикливания, я добавил ещё одно условие, в котором проверяется, не было ли ранее редиректа. Если переменная $_GET['page'] пуста, или не соответствует строке "exit", значит редиректа ещё небыло, и можно его выполнять. Ну а поле редиректа станет доступна $_GET['page'], и мы уже не попадём в этот блок с редиректом, т.к. условие не выполнится.
В 74 строке по редиректу выдает ошибку браузера - проблему с переадресацией. Не может корректно завершить редирект.
А редирект выполняется на эту же страницу? Я так понимаю, весь ваш этот код прописан в файле index.php, и редирект выполняется на него же, но с передачей некоторых get-параметров? Если это так, то добавьте в это условие