@lexstile

Как решить проблему заголовков?

Нужно отдать код в заголовке 404 вместо 200.
ba12e9d21d164b9b8fc9968ea7e7b424.JPG
Код, который должен устанавливать 404:
if($this->group_id == -1)
		{
			//header("HTTP/1.1 404 Not Found", true, 404);
			header("HTTP/1.1 404 Not Found");
			ToolkitLib::ShowError("Ошибка. Выбрана несуществующая группа.");
			return false;
		}

Сейчас посылается в заголовках 200 код, переопределить его нельзя, хотел php.net/manual/ru/function.http-response-code.php
Отловить тоже не могу, в файле не нашел.
Файл menu.class.php:
pastecode.ru/1c389f
Версия php: 5.2
ХостЦМС: 5.9
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
Заголовок можно изменить только в случае, если вы еще не начали отдавать данные.
Варианты решения проблемы:

  1. Отыскать в вашей CMS возможность выводить весь контент единоразово, а в подобных модулях только подготавливать контент. Тогда сможете использовать там функцию header.
  2. Перенапрвлять на страницу 404 в случае ошибки с помощью JS. Примерно так (сохраню ваш стиль кода):
    <?php
    ...
    if($this->group_id == -1) { ?>
          <script> window.alert('Ошибка. Выбрана несуществующая группа'); windows.location.replace('/404'); </script>
    <?php }




PS PHP 5.2. Серьезно?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы