ermouth: (Default)
[personal profile] ermouth
Оказываеццо, в клятом PHP перед конструкцией php session_start() не может стоять ничего, что идет на выдачу. Это значит, что такая конструкция может быть только в файле с не-UTF кодировкой. Мерзость какая...

Date: 2007-05-20 01:37 am (UTC)
From: [identity profile] valthebald.livejournal.com
Ты не прав :)
1. При чем здесь UTF-8 кодировка? Если ты имеешь в виду UTF BOM signature, то эта приблуда исключительно для тупых редакторов, которые не могут самостоятельно определить юникодную кодировку в файле.
2. session_start посылает http header, так что естественно, что он должен стоять до вывода данных. Однако это ограничение (не PHP, а HTTP) легко обходится буферизацией вывода, так что можно подсовывать несчастному веб-серверу файлы с юникодной подписью:)
3. Поскольку заголовки могут идти в любом порядке (за исключением кода ответа, естественно), то перед session_start может идти header & set_cookie

Date: 2007-05-20 01:53 am (UTC)
From: [identity profile] ermouth.livejournal.com
я и имею в виду как раз BOM. и все мои непутевые редакторы пишут как раз с этой приблудой. и дримвивер, и фронтпэйдж и даже -- о ужас -- ноутпад :)

Date: 2007-05-20 02:03 am (UTC)
From: [identity profile] valthebald.livejournal.com
В дримвивере это однозначно настраивается. Про фронтпейдж не знаю.
Самое простое - вставить в .htaccess строки
php_value output_buffering 4096
php_flag output_buffering On

Date: 2007-05-20 09:30 am (UTC)
From: [identity profile] ermouth.livejournal.com
у меня стааааренький дримвивер мх :) в нем не настраивается, afaik.

Date: 2007-05-20 09:35 am (UTC)
From: [identity profile] ex-neo-is-fl156.livejournal.com
Серьёзные пацаны на PHP пишут только код (соотв., кроме ANSI тебе ничего не надо), а html и строки выносят отдельно, засасывая их через какой-нибудь template engine. Для чего это делается? (1) html пишут дизайнеры, которые программировать не умеют, (2) тебе всё равно нужны будут templates для многоязыковой поддержки, скинов, для внедрения твоего движка в другие сайты и т.п.

Ты дизайнер и программист в одном лице, соотв., редкий клиент, тебе не угодишь ;)

Date: 2007-05-20 09:45 am (UTC)
From: [identity profile] ermouth.livejournal.com
я так и сделал, так что я, похоже, серьезный пацан :)

нет, но каковы грабли. в плане языка всё более-менее понятно, обилие баксов даже придает некоторую позитивненькую зелененькую энергетику этому всему, бугаа :) но всякие вот такие мелочи...

Date: 2007-05-20 10:01 am (UTC)
From: [identity profile] ex-neo-is-fl156.livejournal.com
я так и сделал, так что я, похоже, серьезный пацан :)
О! Молодец! А что, таки-да! :)

Баксы мне тоже нравились, это секси.
Я думаю, ты бы не столкнулся с этими мелочами, если бы изначально выбрал правильный редактор. Я не видел, чтобы PHP писали в дримвивере, фронтпэйдже или в таком извращении как ноутпад в режиме "save as unicode". Я лично пользовал PhpEd (не путать PhpEdit, который тоже из той же оперы, но другой), потом стал использовать Far Manager + Colorer (плагин, расцвечивающий синтаксис, великая вестчь!). Ещё ребята рекоммендуют Zend Studio - это навороченный редактор. Вообще, навороченный редактор нужен только с одной единственной целью - чтобы у тебя был интегрированный дебаггер. Мне реально это не было нужно никогда, потому что на PHP тебе супер-легко вставить отладочную печать и на втором мониторе ;) нажать F5 (refresh) чтобы посмотреть результат (соответственно, дебаггер тебе нафиг не нужен), а на C++ мне всё равно нужно дебаггать сервис, поэтому я использую внешний текстовый дебаггер (cdb/windbg, kd). Сейчас я в качестве редактора исходников всегда использую Far + Colorer, и, что самое замечательное, он даже не поддерживает save as unicode (и это правильно, нефиг смущать людей лишними фичами ;))

Profile

ermouth: (Default)
ermouth

November 2021

S M T W T F S
 123456
78910111213
14151617181920
21 222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 1st, 2026 09:15 am
Powered by Dreamwidth Studios