Получение предупреждения "Заголовок может содержать не более одного заголовка, обнаружена новая строка"

Я делаю кодирование в oops для загрузки изображения в PHP. Но после отправки изображения, оно дает предупреждение

"Заголовок может содержать не более одного заголовка, обнаружена новая строка"

Ниже приведена моя функция, при которой ее выдача ошибки

public function ft_redirect($query = '') {

    if (REQUEST_URI) {

        $_SERVER['REQUEST_URI'] = REQUEST_URI;

    }

    $protocol = 'http://';

    if (HTTPS) {

        $protocol = 'https://';
    }

    if (isset($_SERVER['REQUEST_URI'])) {

        if (stristr($_SERVER["REQUEST_URI"], "?")) {

            $requesturi = substr($_SERVER["REQUEST_URI"], 0, strpos($_SERVER["REQUEST_URI"], "?"));

            $location = "Location: {$protocol}{$_SERVER["HTTP_HOST"]}{$requesturi}";
        } else {


            $requesturi = $_SERVER["REQUEST_URI"];

            $location = "Location: {$protocol}{$_SERVER["HTTP_HOST"]}{$requesturi}";

        }

    } else {

        $location = "Location: {$protocol}{$_SERVER["HTTP_HOST"]}{$_SERVER['PHP_SELF']}";

    }

    if (!empty($query)) {

        $location .= "?{$query}";

    }

    header($location);

    exit;

}

Ответ 1

Вы не должны указывать более двух строк в URL-адресе. Проверьте URL.

Good URL - "http://mail.google.com"  - 1 line

Bad URL - "http://mail.              - 2 lines
            google.com/"

Ответ 2

Проблема может быть в вашем phpMyAdmin, таблице wp_options, option_value.

Если перед URL есть пробел, он сгенерирует ОШИБКУ: предупреждение: заголовок не может содержать более одного заголовка, новая строка обнаружена в...

Ответ 3

Кажется, что переменные, которые вы используете для создания атрибута Location, имеют в них новый символ строки. Передайте их через urlencode()

Ответ 5

Вы должны поместить URL-адрес http://example.com, пожалуйста, избегайте http://example.com/ "" /" не дает URL-рассогласование, поэтому избегайте, эта же проблема будет поступать и в Wordpress. Поэтому попробуйте использовать вот так.

Ответ 6

Это предупреждение появляется, чтобы указать, что у вас может быть новая строка [/n] в строковом содержимом ваших переменных. Пример

  header("Location: ../control.php?post='$title1'&sample='$val'");

здесь есть 2 переменные

$ title1 а также  & Амп; $ Вэл

поэтому во время работы, если появляется это предупреждение, предупреждение

"Заголовок не может содержать более одного заголовка, обнаружена новая строка"

Решение  Чтобы удалить сносимое новое строковое содержимое переменной Как это

    $val=str_replace(PHP_EOL, '', $val);
    $title1=str_replace(PHP_EOL, '', $title1);

Затем вы можете включить переменные в заголовок


Идеальный способ решения проблемы - вот так

$url="../control.php?post='$title1'&sample='$val'";
 $url=str_replace(PHP_EOL, '', $url);
 header("Location: $url");

** Это будет работать на 100%; **