Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
39 / 9 / 10
Регистрация: 19.09.2016
Сообщений: 1,076

Header may not contain more than a single header

27.01.2017, 20:15. Показов 3917. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
if (isset($_POST['page'])) {
    $p = $_POST['page'];
    if (isset($_POST['module'])) {
      $m = $_POST['module'];
      if (isset($_POST['gamestatus'])) {
        $g = $_POST['gamestatus'];
        $ar = 'module='.$m.'&page='.$p.'&gamestatus='.$g;
      }
      else {
        $ar = 'module='.$m.'&page='.$p;
      }
    }
    else {
      $ar = 'page='.$p;
    }
  }
if ($login =='test' && $pass == 'test' && $em == 'test@test.com' && (filter_var($em, FILTER_VALIDATE_EMAIL))) {
      setcookie('login', 'LOGIN', time() +1800, '/');
      header("Location: ".'/index.php?'.$ar);
      exit();
}
else {  
  header("Location: ".'/index.php?'.$ar.'error=1');
  exit();
}
Почему ошибка?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.01.2017, 20:15
Ответы с готовыми решениями:

Warning: Cannot modify header information - headers already sent в header('Location: /index.php');
Warning: Cannot modify header information - headers already sent by (output started at S:\home\localhost\www\new\cms\login.php:10) in...

Ошибка header: cannot modify header information
Ребят, я так понял что тут header просто перекидывает на другую страницу. Можно ли как то заменить его, чтобы по нажатию кнопки он...

Не срабатывает header, ошибка "Cannot modify header information - headers already sent by"
Всем привет. Помогите решить проблему. Есть два файла index c формой, через которую загружаем фото и файл с функциями. Нужно, что бы...

6
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
27.01.2017, 20:46
У вас в коде две функции header, а текст ошибки обрезан. И как понять, где ошибка?

Что-то не то передаёте в заголовки. Проверьте, что лежит в $ar, попробуйте вывести Location на экран полностью.
0
39 / 9 / 10
Регистрация: 19.09.2016
Сообщений: 1,076
28.01.2017, 00:19  [ТС]
warning указывает на строку 23. Я инициирую именно этот переход - на страницу с признаком ошибки. Т.е. поблема именно в переменной $ar, а почему - не понимаю.
Причем в адресной строке обозревателя после перехода я вижу такую запись: http://www.degreetest.local/modules/auth/auth.php
Т.е. файловый путь к обработчику...
Если подставляю вместо $ar например $_POST['page'], т.е.:
header("Location: ".'/index.php?page='.$_POST['page'].'&error=1'); ($_POST['page'] у меня была = about)
Адресная строка становится адекватной:
http://www.degreetest.local/index.php?page=about&error=1

Полный текст ошибки:
Warning: Header may not contain more than a single header, new line detected in Z:\home\degreetest.local\www\modules\aut h\auth.php on line 23

Добавлено через 1 час 42 минуты
Цитата Сообщение от Jodah Посмотреть сообщение
Проверьте, что лежит в $ar
Попытался вывести переменную в форму, пишет:
Notice: Undefined variable: ar in Z:\home\degreetest.local\www\skins\defau lt\auth\auth_form.html
Цитата Сообщение от Jodah Посмотреть сообщение
попробуйте вывести Location на экран полностью.
Это как?

Добавлено через 1 час 29 минут
Сделал вот такие проверки:
PHP
1
2
3
if (isset($_POST['page']) && isset($_POST['module'])) {$ar= 'module='.$_POST['module'].'&page='.$_POST['page'];}
  if (isset($_POST['page'])) {$ar= 'page='.$_POST['page'];}
  if (isset($_POST['module'])) {$ar= 'module='.$_POST['module'];}
Когда в параметрах только модуль или страница - работает корректно. Когда проверяю два параметра, в переменную записывается только первый почему -то
Для при существовании и page и module, после редиректа в адресной строке получил:
http://www.degreetest.local/index.php?module=far&error=1
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
28.01.2017, 01:28
судя по тексту ошибки 95% в урле есть перенос строки.
0
39 / 9 / 10
Регистрация: 19.09.2016
Сообщений: 1,076
28.01.2017, 12:51  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
судя по тексту ошибки 95% в урле есть перенос строки.
Ну смысл того, что написано в тексте ошибки то я понял. Вопрос в самой сути ошибки. Не может там быть новой строки.
Значения которые я принимаю на проверку, я сам передаю в качестве $_GET[] параметров через форму в данный обработчик. Выше я привел пример начальной адресной строки, с которой я вызываю обработчик и что в результате получается, вернее - ничего не получается..
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
28.01.2017, 13:04
Цитата Сообщение от СергейСереб Посмотреть сообщение
Не может там быть новой строки.
Так сделай вар дамп полного текста заголовка и смотри результат в "исходном коде страницы"
PHP
1
2
3
var_dump("Location: ".'/index.php?'.$ar.'error=1');
//header("Location: ".'/index.php?'.$ar.'error=1');
exit();
0
39 / 9 / 10
Регистрация: 19.09.2016
Сообщений: 1,076
28.01.2017, 16:00  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Так сделай вар дамп полного текста заголовка и смотри результат в "исходном коде страницы"
При существовании всех трех передаваемых параметров в исходном адресе:
http://www.degreetest.local/index.php?module=game&page=game&gamestatus=start
заголовок правильный, вида:
string(71) "Location: /index.php?module=game&page=game&gamestatus=start&error=1"
Но почему-то редирект выполняется на :
http://www.degreetest.local/modules/auth/auth.php
Т.е. на обработчик обратно...

При отсутствии какого либо из передаваемых параметров, заголовок приобретает вид:
string(59) "Location: /index.php?module=&page=about&gamestatus= &error=1"
Т.е. общая запись остается прежней, только в нее не включаются соответствубщие переменные. Значит не работают проверки на основе которых формируется переменная $ar.
И опять таки, редирект выполняется на обработчик..

Добавлено через 1 час 17 минут
Какая-то ерунда с переменной $ar
Не работают проверки почему-то...

Добавлено через 27 минут
Разобрался! Народ, простите за беспокойство
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2017, 16:00
Помогаю со студенческими работами здесь

Не могу создать 2 класса header-composition и header-social
При создании 2 классов. например header-composition и hedaer-social первый работает, а второй уже нет, его просто браузер не видит через...

Исчезание блока header или div с class,id (header) при скроллинге и фиксация блока навигации
Есть несколько реализаций данного кода. Только вот не всё работает так как нужно. Стоит такая задача, нужно, чтобы два блока с начала...

Header()
ребята помогите разобраться, мне нужно после ввода логина и пароля перейти на другую страницу, но при этом сохранить все глобальные данные,...

Header
function MessageSend($p1, $p2) { if ($p1 == 1) $p1 ='Ошибка'; else if ($p1 == 2) $p1 ='Подсказка'; else if ($p1 == 3) $p1...

header
<?php header("Location::http://mysite.ru/date_to_age.php"); ?> <html> <head><title></title></head> <body> </body> </html> ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru