В 74 строке по редиректу выдает ошибку браузера - проблему с переадресацией. Не может корректно завершить редирект...
Не могу найти причину..
Строитель
Отправлено: 25 Февраля, 2017 - 19:22:54
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Perun пишет:
В 74 строке по редиректу выдает ошибку браузера - проблему с переадресацией. Не может корректно завершить редирект.
А редирект выполняется на эту же страницу? Я так понимаю, весь ваш этот код прописан в файле index.php, и редирект выполняется на него же, но с передачей некоторых get-параметров? Если это так, то добавьте в это условие
Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2016
Помог: 0 раз(а)
Строитель пишет:
А редирект выполняется на эту же страницу? Я так понимаю, весь ваш этот код прописан в файле index.php, и редирект выполняется на него же, но с передачей некоторых get-параметров?
Скрипт отдельный, но инклюдится каждый раз в index.php. Наверное, нельзя сказать, что редиректит прям на себя, а в части представления через маршрутизатор подключается HTML файл exit.html.
Добавил проверку, работает, но раз 10 уже перечитал, никак не въеду в суть этой проверки в контексте.... Можете объяснить ход мыслей для тех кто в танке??
То, кудя я делал переадресацию мне понятно. а тут ступор... Причем в другах участках кода такая же переадресация, и там редиректит без проблем.
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
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'], и мы уже не попадём в этот блок с редиректом, т.к. условие не выполнится.
Perun
Отправлено: 25 Февраля, 2017 - 20:32:44
Гость
Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2016
Помог: 0 раз(а)
Спасибо. теперь вижу какая проблема с переадресацией. Спасибо за вариант решения! Но насколько я понимаю - это "костыль" и нужно пересматривать решение с переадресией на ошибку?
И попутно вопрос: Стоит ли озаботиться обработкой такой ошибки? Я имею в виду - переадресации, обработка и вывод ошибок на экран, или пусть этим браузер занимается? Это по сути довольно не стандартная ситуация - подделка куки, либо еще вариант - какие-то ошибки в БД
Как вариант, возможно проще, и мне так логически понятнее - просто удалять куку у клиента?
Плюсик за помощь не имею технической возможности поставить...
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Perun пишет:
Но насколько я понимаю - это "костыль" и нужно пересматривать решение с переадресией на ошибку?
Да.
Perun пишет:
И попутно вопрос: Стоит ли озаботиться обработкой такой ошибки? Я имею в виду - переадресации, обработка и вывод ошибок на экран, или пусть этим браузер занимается?
Если что-то нужно сообщить пользователю, касающееся его не корректных действий на странице (не верно заполнено поле, и т.п.), то лучше сообщить.
Perun пишет:
Как вариант, возможно проще, и мне так логически понятнее - просто удалять куку у клиента?
Верно, ведь пользователь нажал на кнопку "Выход".
Perun пишет:
Плюсик за помощь не имею технической возможности поставить
Я знаю - карма для вас станет доступна после набора пяти десяти постов на нашем форуме
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.