session_start Проблемы

12
DyaDya
На сайте с 11.04.2007
Offline
147
#11

Не понимаю при чём здесь кодировка-то?

Просто функция session_start(); должна вызываться ДО ОТСЫЛКИ КАКИХ-ЛИБО ДАННЫХ В БРАУЗЕР! ТС, проверяйте свои скрипты!

Хотя... бывает глюк, когда сохраняешь в утф-8, то в самом начале добавляются какие-то странные символы, но их видно в обычном редакторе. Проверьте, возможно, у вас подобный косяк. Эти символы и отсылаются раньше старта сессии. Встречал такое в редакторе ФКЭдитор года два назад, удалял эти символы реплейсом! Аж смешно было, откуда они там брались, сам не понимаю. Скачивал с официального сайта.

Выбирайте качественный хостинг (http://vashmaster.ru/informaciya/o_poleznyh_programmah/news83.php) и продвигайте сайты в СЕОПУЛЬТ (http://seopult.ru/ref.php?ref=72b5ed9561fe66a1). А на «SAPE» я в обиде :) Не упрекайте за очепятки, пишу вслепую (http://ergosolo.ru/) и также делаю сайты (http://www.vashmaster.ru/) ;)
[Удален]
#12

DyaDya это и есть BOM (Byte Order Mask) - определяет формат UTF, т.е. говорит о том выводится ли старший байт перед младшим или наоборот, но это действует только для UTF16 и UTF32, а для UTF8 понятия порядка следования байтов не существует, но редакторы добавляют BOM в начало utf-8 документа. Т.к. при старте сессии необходимо, чтобы вывод не был осуществлен, нужно кодировать файлы без символа BOM в начале файла иначе вывод будет осуществлен еще до того, как вы пропишите свои скрипты.

ob_start() говорит о том, что нужно включить output buffering в начало файла (уже после метки), тогда символ BOM в начале файла нам не грозит варнингами при старте сессии, т.к. output будет осуществляться там, где нам нужно и вот такого не будет:

(output started at /var/www/.../index.php:1)

Вообще когда начинаешь работать с utf-8 порой возникают проблемы, но эти проблемы не более чем неудобства перехода с cp1251 к utf8 - нужно просто посидеть, почитать, понять, прозреть и радоваться.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий