Ответ 1
Вы не должны указывать более двух строк в URL-адресе. Проверьте URL.
Good URL - "http://mail.google.com" - 1 line
Bad URL - "http://mail. - 2 lines
google.com/"
Я делаю кодирование в 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;
}
Вы не должны указывать более двух строк в URL-адресе. Проверьте URL.
Good URL - "http://mail.google.com" - 1 line
Bad URL - "http://mail. - 2 lines
google.com/"
Проблема может быть в вашем phpMyAdmin, таблице wp_options, option_value.
Если перед URL есть пробел, он сгенерирует ОШИБКУ: предупреждение: заголовок не может содержать более одного заголовка, новая строка обнаружена в...
Кажется, что переменные, которые вы используете для создания атрибута Location, имеют в них новый символ строки. Передайте их через urlencode()
Попробуйте кодировать URL-адрес, и он должен работать: http://php.net/manual/en/function.urlencode.php
Вы должны поместить URL-адрес http://example.com, пожалуйста, избегайте http://example.com/ "" /" не дает URL-рассогласование, поэтому избегайте, эта же проблема будет поступать и в Wordpress. Поэтому попробуйте использовать вот так.
Это предупреждение появляется, чтобы указать, что у вас может быть новая строка [/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%; **