Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Исполнение функции

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
Nizz
Отправлено: 24 Августа, 2017 - 15:05:25
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Доброго времени суток ув. форумчане. Я долго думал как лаконично изложить свою трудность.
Надеюсь, что мне это удастся:
PHP:
скопировать код в буфер обмена
  1.  
  2. function Products_Close (){
  3.  unset($_SESSION['products']);
  4.    exit(header('Location: /home'));
  5. }
  6.  

Функция работает в самом верху до

Если я вставляю ее в скрипте, то она не работает корректно, а именно : редиректа не происходит и сессия не очищается. Код срабатывает лишь при повторном обновлении страницы.
И собственно всплывает такая ошибка
PHP:
скопировать код в буфер обмена
  1.  
  2. PHP Warning:  Cannot modify header information - headers already sent by (output started at /home)
  3.  

Подскажите пожалуйста как решить мне данную проблему.

(Отредактировано автором: 24 Августа, 2017 - 15:06:09)

 
 Top
Строитель Модератор
Отправлено: 24 Августа, 2017 - 15:24:07
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Nizz пишет:
Функция работает в самом верху
Ну правильно. Она и должна отрабатывать до начала любого вывода в браузер. Если очень хочется переместить её вызов ниже (т.е., после какого либо вывода), то используйте буферизацию вывода.
 
 Top
Nizz
Отправлено: 24 Августа, 2017 - 15:36:45
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Строитель нашел информацию о ob_start.
Насколько понимаю для использования достаточно написать следующее:

Но у меня все-равно не работает;
Помогите пожалуйста.
 
 Top
Строитель Модератор
Отправлено: 24 Августа, 2017 - 15:44:12
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Nizz, посмотрите здесь: http://php-zametki[dot]ru/php-nachin[dot][dot][dot]ciya-vyvoda[dot]html
Всё подробно описано с примерами.
 
 Top
Nizz
Отправлено: 24 Августа, 2017 - 15:56:16
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Строитель Спасибо вам за наводку и помощь. Надеюсь разберусь ))
(Добавление)
Извините пожалуйста, но либо я не правильно исполняю код, либо все-равно не работает
PHP:
скопировать код в буфер обмена
  1.  
  2.      ob_start();
  3.      exit(header('Location: /home'));
  4.      ob_end_flush();
  5.  

Редиректа не происходит. Укажите если не сложно на ошибку ?
 
 Top
Строитель Модератор
Отправлено: 24 Августа, 2017 - 16:30:04
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Nizz пишет:
Редиректа не происходит
Редиректа не происходит? Или вывода в браузер не происходит? Вот этот вариант попробуйте
Судя по адресу, перед вами откроется страница google.
 
 Top
Nizz
Отправлено: 24 Августа, 2017 - 16:40:37
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Строитель спасибо вам за отзывчивость. Но редиректа нет.
Ошибка при этом
PHP:
скопировать код в буфер обмена
  1.  
  2. PHP Warning:  Cannot modify header information - headers already sent by
  3.  

Сохраняется.
Единственная зацепка: меняется вид страницы (Урезается контент) на котором происходит обработка скрипта. Я уже два дня мучаюсь и не могу понять из-за чего это происходит.
 
 Top
Строитель Модератор
Отправлено: 24 Августа, 2017 - 16:54:34
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Nizz, а вы уверены, что именно в этом файле выполняется ваш код? Может быть выше по коду есть другие конструкции включений (инклуды)? И ещё, посмотрите в файле конфигурации вашего сервера, включена ли буферизация вообще?

В php.ini найдите строку:

output_buffering 1

Если вместо 1 там стоит 0, то замените его на 1.
Если перед output_buffering стоит точка с запятой ";", то удалите её.
(Добавление)
Nizz, и ещё не помешало бы посмотреть, как именно вы записываете код, и куда.
(Добавление)
Кстати, в конце этого текста с ошибкой PHP Warning: Cannot modify header information - headers already sent by должен быть указан номер строки - напишите мне, что прописано в строке вашего файла, соответствующей номеру из сообщения об ошибке.
 
 Top
Nizz
Отправлено: 24 Августа, 2017 - 17:17:59
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Строитель Весь обработчик получился слишком сложный и я (уже), уверен, что не правильная работа связана из-за неправильного построения функций. Я мог бы скинуть весь код, но я не уверен, что кто-то захочет в нем копаться.
 
 Top
Строитель Модератор
Отправлено: 24 Августа, 2017 - 17:22:31
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Nizz пишет:
Строитель Весь обработчик получился слишком сложный и я (уже), уверен, что не правильная работа связана из-за неправильного построения функций. Я мог бы скинуть весь код, но я не уверен, что кто-то захочет в нем копаться.
Ну, тогда хотя бы убедитесь, что старт буферизации у вас прописан ДО начала какого либо вывода в браузер.
 
 Top
Nizz
Отправлено: 24 Августа, 2017 - 17:37:05
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




Да спасибо. Ругается к слову на первые тэги php, но стоит без BOM метки. Так, что я не много в ступоре.
(Добавление)
Пускай я и не решил проблему, но все-равно огромное вам спасибо за отзывчивость и попытки помочь.
 
 Top
Строитель Модератор
Отправлено: 24 Августа, 2017 - 17:39:29
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Nizz пишет:
Да спасибо. Ругается к слову на первые тэги php, но стоит без BOM метки. Так, что я не много в ступоре.
Всё, что вам осталось сделать, так это преобразовать кодировку вашего пхп файла в UTF-8 без BOM. Сделать это можно например, в простом редакторе Notepad++
 
 Top
MouseZver
Отправлено: 24 Августа, 2017 - 17:40:14
Post Id



Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Июнь 2017  
Откуда: php.ru


Помог: 1 раз(а)




значит не везде utf8 есть родительский скрипт с кодировкой анси
 
 Top
Nizz
Отправлено: 24 Августа, 2017 - 17:41:22
Post Id



Гость


Покинул форум
Сообщений всего: 79
Дата рег-ции: Март 2016  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. in /c//s/p/f on line 107
  2. [PHP]
  3. exit(header('Location: /home'));
  4.  

Вот на что ругается, ошибся

(Отредактировано автором: 24 Августа, 2017 - 17:41:57)

 
 Top
Строитель Модератор
Отправлено: 24 Августа, 2017 - 17:42:48
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




UPD: "без BOM" -- файл в правильной кодировке? Тогда проверьте, что бы перед открывающим пхп-тегом "<?php" не было никаких символов (даже пробелов), и что бы он находился на самой первой строке.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB