PHP.SU

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


 Страниц (5): « 1 2 [3] 4 5 »   

> Без описания
Champion Супермодератор
Отправлено: 15 Декабря, 2009 - 11:17:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4353
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




В связи с участившимися случаями этого заболевания, думаю, стоит написать небольшую инструкцию, как от этого лечиться. Ну, лекарство номер 1 - это Гугл и Яндекс, но кому лень анализировать многочисленные рутинные обсуждения этой проблемы, вот вам краткая памятка, которая все вопросы должна снимать.

Итак, у на появилась такая вещь:
Cannot send session cookie - headers already sent by (output started at script1.php:1 [ * ]) in script2.php on line 2 [ ** ]
Нам сообщают, что заголовки уже были посланы и больше нельзя. Заголовки могут встречаться только один раз в начале документа.
Написано на какой строке в каком скрипте начался вывод в браузер(отмечано пушистой звездочкой) и на какой строке мы попытались послать заголовок (отмечено 2 пушистыми звездочками).

После вывода информации в браузар слать заголовки нельзя. Остается только осмыслить, что такое вывод в браузер. Да-да, если вы это читаете, то вы это не осмыслили.
* команды вывода php (echo, print...)
* различные warnigs, notices, которые произошли в результате других операций в скрипте.
* ЛЮБЫЕ СИМВОЛЫ, расположенные до <?php. Это и пробелы, и энтеры, и невидимый символ BOM.

Википедия про BOM пишет:
Этот способ позволяет различать UTF-16LE и UTF-16BE, поскольку символа U+FFFE не существует. Также он иногда применяется для обозначения формата UTF-8, хотя к этому формату и неприменимо понятие порядка байтов. Файлы, следующие этому соглашению, начинаются с таких последовательностей байтов:

UTF-8
EF BB BF
UTF-16BE
FE FF
UTF-16LE
FF FE
UTF-32BE
00 00 FE FF
UTF-32LE
FF FE 00 00

Короче, скрипты, написанные в UTF-8 следует сохранять без BOM и во многих текстовых редакторах есть эта возможность. Всё.
 
 Top
OrmaJever Модератор
Отправлено: 29 Февраля, 2012 - 21:08:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 7524
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Стереть и написать снова слово "Сохранить"


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Tox
Отправлено: 29 Февраля, 2012 - 21:10:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 314
Дата рег-ции: Нояб. 2011  
Откуда: Россия


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




да я уже так делал) не первый день в notepad)) все равно абракадабра


-----
In Console We Trust. Code hard. Or die.
 
 Top
OrmaJever Модератор
Отправлено: 29 Февраля, 2012 - 21:14:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 7524
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Может есть мета тег с другой кодировкой или header() ?
А если нету, то их бы добавить
PHP:
скопировать код в буфер обмена
  1. header('Content-type: text/html; charset=utf-8');

CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Tox
Отправлено: 29 Февраля, 2012 - 21:15:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 314
Дата рег-ции: Нояб. 2011  
Откуда: Россия


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




Не, файл чистый в этом плане. header только с Location
все пашет, спасибо

(Отредактировано автором: 29 Февраля, 2012 - 21:18:48)



-----
In Console We Trust. Code hard. Or die.
 
 Top
DelphinPRO
Отправлено: 29 Февраля, 2012 - 21:19:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 7190
Дата рег-ции: Февр. 2012  


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




OrmaJever пишет:
Но ведь без этих 3 бафтов програмы тоже могут отличить в какой кодировке файл! От них толку ноль?


Не могут. Все определения кодировок построены на статистическом анализе частоты использования имеющихся символов, и не дают 100% гарантии точности определения. Метки ВОМ как раз решают эту проблему.
Что касается "UTF-8 без ВОМ", то это не отдельная кодировка, а такой своеобразный хак для PHP, который не умеет корректно работать с метками ВОМ, точнее почему-то считает их печатными символами. Вот и приходится в файле с кодировкой utf-8 вырезать заветные три символа.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
KoO
Отправлено: 05 Мая, 2012 - 11:40:42
Post Id


Новичок


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


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




Помоги плиз. Проблема как у всех, только мой сайт лежит на моём компе с Denwerом.
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\localhost\www\shop_mustang1\index.php:1) in Z:\home\localhost\www\shop_mustang1\sapka.php on line 2
Вот код
Sapka (Отобразить)

index (Отобразить)

Примерно тоже самое стоит на другом сайте,но там такой ошибки нет. BOM через Notepad++ отрубил, до того было 2 ошибки, вот осталась одна, как исправить не знаю.
 
 Top
DelphinPRO
Отправлено: 05 Мая, 2012 - 17:25:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 7190
Дата рег-ции: Февр. 2012  


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





минут пять думал, что же такое "Сапка" O_o (sapka.php)
Понимание пришло неожиданно - это же "Шапка"!


Оба файла сохраните в utf8 без BOM
Попробуйте неиспользовать закрывающие теги ?> в самом конце файлов


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
KoO
Отправлено: 05 Мая, 2012 - 19:53:05
Post Id


Новичок


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


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




DelphinPRO пишет:
минут пять думал, что же такое "Сапка" O_o (sapka.php)
Понимание пришло неожиданно - это же "Шапка"!

извините, был файл уже Шапка,пришлось изощрится Ха-ха
про UTF8 уже сделал,после этого пропала ошибка типа этого Cannot send session cookie - headers already sent by (output started at script1.php:1 [ * ]) in script2.php on line 2 [ ** ]
Но вот 2 ошибка не пропадает,а с ?> как его убрать, тогда же работать ничего не будет Не понял

Хаха прикол, запустил заново дримвеер и сайт и вуаля
Спойлер (Отобразить)

(Отредактировано автором: 05 Мая, 2012 - 20:02:49)

 
 Top
DelphinPRO
Отправлено: 05 Мая, 2012 - 20:24:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 7190
Дата рег-ции: Февр. 2012  


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




KoO пишет:
а с ?> как его убрать, тогда же работать ничего не будет

а вы пробовали? Это широкоизвестный прием для исключения случайных пробелов в выводе
(Добавление)
я вот сейчас скопировал ваш код, сохранил без БОМ и все работает как надо, без ошибок.
Вы уверены, что ваши файлы в utf-8 без BOM?
может дримвивер пересохраняет файлы не в той кодировке?
(Добавление)
перед <?php не должно быть пробелов и переводов строк.

Блин, об этой проблеме столько написано, что просто нереально самому в ней не разобраться.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
KoO
Отправлено: 05 Мая, 2012 - 20:34:31
Post Id


Новичок


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


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




еслиб я ковырялся в php годик или 2, я бы наверно не мучился, но я учусь и у нас работа по созданию "Магазина" да да,в кавычках)))
и в этой сфере я лишь 3 недели)) Радость
может я прикреплю файл и вы посмотрите?

(Отредактировано автором: 05 Мая, 2012 - 20:51:52)

 
 Top
DelphinPRO
Отправлено: 05 Мая, 2012 - 20:54:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 7190
Дата рег-ции: Февр. 2012  


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




файлы index.php и niz.php сохранены в UTF-8
а надо в UTF-8 without BOM

т.е. в данном случае мешает как раз та самая метка BOM в index.php


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
KoO
Отправлено: 05 Мая, 2012 - 20:57:33
Post Id


Новичок


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


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




касяк,я как раз лишь index не запускал в нотепаде++ и там не менял))
сейчас проверю
(Добавление)
помогло, но эм, появилась маленькая загвоздочка, теперь весь сайт куча каракуль Не понял как тогда с этим быть?
о это прикольно, без BOM каракули и сайт адско снесло влево, а с BOM всё отлично,что за бред? Не понял

(Отредактировано автором: 05 Мая, 2012 - 21:03:56)

 
 Top
DelphinPRO
Отправлено: 05 Мая, 2012 - 21:05:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 7190
Дата рег-ции: Февр. 2012  


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




в HTML <meta http-equiv="content-type" content="text/html; charset=utf-8" />
в htaccess AddDefaultCharset utf-8
кодировка таблиц в БД - UTF8
кодировка соединения с БД utf-8


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
KoO
Отправлено: 05 Мая, 2012 - 21:12:51
Post Id


Новичок


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


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




эм, htaccess вообще не существует Закатив глазки
в БД Utf-8 стоит, а вот про кодировку соединения я не понял Не понял
 
 Top
Страниц (5): « 1 2 [3] 4 5 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB