почему при использовании die валится реквай

Фанат

oncle terrible
Команда форума
нет.
есть мнение новичков и есть мнение специалистов.

задача отображения ошибок и отладки - не теорема Ферма, чтобы по ееё поводу было много мнений.
Это проблема уровня таблицы умножения.

Любому человеку, в голове у которого есть мозг, будет очевидно, что информативное сообщение об ошибке - файла совсем нет или к файлу нет доступа (или любое другое, из десятка разных причин), а так же - к какому именно файлу, в каком скрипте, на какой строке - будет программисту полезнее .
Будешь продолжать утверждать, будто "cannot find file" удобнее?

Любой программист, с опытом поддержки хотя бы одного проекта , знает - ошибки, выводящиеся на экран при работе сайта, он НЕ УВИДИТ. И их надо смотреть в логе ошибок.
Будешь продолжать утверждать, будто "cannot find file" поможет исправить ошибку?

Любой вебмастер, которому дороги посетители его сайта, знает - если что-то идет не так, посетителю будет приятнее увидеть вежливое сообщение о неполадках с извинениями, и возможность перейти по ссылкам в другой раздел.
Будешь утверждать, что лучше показать огрызок сайта с невнятным бурчанием про какие-то файлы, до которых посетителю нет дела?

Это все прописные истины. а не "разные мнения"

-~{}~ 05.09.07 13:13:

еррор репортинг это не лучшее решение - не зря оно по умолчанию отключено.
здесь у тебя аж две ошибки.
во-первых, речь идет не об error_reporting - уровне отображения ошибок, а о том, куда выводить ошибки.
при отладке проекта - на экран, а на действующем сайте - в лог.
error_reporting по умолчанию ВКЛЮЧЕНО, на максимальное значение E_ALL.
а по умолчанию отключена на хостингах директива display_errors
и совершенно правильно отключена. чтобы не светить ошибками каждому встречному-поперечному.
 

kotlf

Новичок
что вам так сдалась cannot find file - это просто пример сооб щения - оно может быть на стлько информативным на сколько ты захочешь. пожно расширить конструкцию и перед даем ещё сделать отдельно проверку на существование и доступность и потом показать вежливое сообщение.

еррор репортинг - тут я наверное не прав просто я у себя включаю вывод ошибок на экран вот так error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
поэ тому и назвал всё это ерор репотингом

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

Фанат

oncle terrible
Команда форума
оно может быть на стлько информативным на сколько ты захочешь
по-моему, я разговариваю с человеком, который не понимает меня..

ты можешь объяснить, зачем специально делать сообщение информативным, если это за тебя УЖЕ делал пхп?
зачем ты настаиваешь на очевидной глупости?

по поводу мнений - я имел ввиду что с ошибками можно работаь по разному кто-то включает дисплей ерор,
еще раз объясняю. работают все одинаково
при запуске и отладке отображение на дисплей. на ивом сайте - в лог.

еще раз повторяю. на живом сайте программист этот дай НЕ УВИДИТ!
а увидит пользователь, который в этой информативности ни бельмеса, или хакер, которому этого только и надо.
а кто-то может это делать после того как реквай не отработал.
ага, мазохист.
вместо того, чтобы сразу увидеть ошибку, он будет делать это в два действия.
лезть в настройки, включать отображение, запускать заново.
меня поражает, до каких глупостей может додуматься человек - лишь бы отстоять свою, изначально неверную, позицию

в общем, с тобой все ясно.
очень хочешься доказать всем, что ты не глупость придумал, а просто это такой "альтернативный взгляд на проблему".
Хорошо. я с тобой соглашусь. То, что ты делаешь - это альтернативная глупость.
Все, больше тратить на тебя время я не намерен. Больше трех раз не повторяю.

-~{}~ 05.09.07 13:42:

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

-~{}~ 05.09.07 14:06:

Автору что-то объяснять бесполезно, а вот для тех, кто, возможно, будет читать эту тему, я поясню:
с ошибками можно работаь по разному кто-то включает дисплей ерор, кто-то проверяет наличие и доступность перед рекваем
эта фраза, как раз, иллюстрирует сказанное выше.
Человек не различает себя и посетителя сайта.
Он думает, что вся работа с ошибками ведется для себя, любимого. А посетители - это отбросы, пусть хавают, что дают.

А на самом деле все не так.
"включать дисплей еррор" и "проверять наличие перед рекваем" - это не противоположные сособы работать с ошибками. Это просто обработка ошибок, ориентированная на разную аудиторию.
Иприменяеются они не "или-или", а ОДНОВРЕМЕННО

Вывод ошибки на экран или в лог программист делает ДЛЯ СЕБЯ.
А проверку наличия файла (не для реквайра, разумеется, а файла с данными) - для ПОЛЬЗОВАТЕЛЯ.

Потому что обработка ошибок для тех и для других РАЗЛИЧАЕТСЯ. Но ламеры этого не понимают.

Резюме:
Для себя программист работает с сообщениями об ошибках, которые ему дает пхп. в логе или на экране.

Для реквайра можно писать проверку доступности файла, но это, имхо, паранойя.

Для чтения файла с данными надо обязательно проверять доступность, и по результатам выдавать пользователю извинения. ПРИ ЭТОМ сама ошибка при чтении файла запишется в лог, где её увидит проограммист и примет меры.
 

cDLEON

Онанист РНРСlub
Для самых умных напишу:
require для того и require что бы ОБЛАМЫВАТЬ дальнейшее выполнение, если файл НЕ найден.
 

dark-demon

d(^-^)b
по поводу не выполница никогда - с правильно поставленными скобками - читай выставленными приоритетами - дай срабатывает в случае неудачнго реквая - проверен о лично на пхп 5.2.3
не верю. приведи код.
 

dimagolov

Новичок
*****, я курил маны, но видать мало и так и не понял, как загнать Parse error в лог.
Что делал:
php.ini
Код:
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = "D:\Local\www\logs\phperror.log"
собственно в скрипте есть
Код:
error_reporting(E_STRICT);
ini_set('display_errors','off');
ini_set('log_errors','on');
ini_set('error_log','logs\ErrorLog.log');
но как я понимаю, при Parse error это до лампы, код все равно исполняться не начинает.

Результат - ошибка уже не идет в броузер (как при display_errors=on), но никакие логи не пишуться. Вообще это возможно заставить ее ложиться в лог?

Озаботился я этой ошибкой, когда начал отдавать файлы через загрузку в скрытый frame - чтобы не открывать новое окно для загрузки и не передавать в него сессию get-параметром. А в скрытом фрейме очень красиво - сразу спрашивает Open/Save и что более важное - не задумывается над созданием нового окна IE. Но вот отлаживать генерацию файла стало чертовски неудобно - вывода с Parse error я увидеть не могу, а больше никуда (по крайней мере у меня) эта ошибка не попадает.
 

cDLEON

Онанист РНРСlub
dimagolov
Попробуй через апач установить эти дерективы.

-~{}~ 06.09.07 18:11:

т.е. в .htaccess
 

dimagolov

Новичок
*****, только парсинга. если скрипт исполняется то все замечательно идет в лог.
 

dimagolov

Новичок
ну добился я своего.... parseError пошли в error log php
в общем... обратил внимание, что при выставленни E_ALL в php.ini phpinfo выдает error_reporting 2047, а не 8191 как можно было бы ожидать. написал руками вместо E_ALL 8191 и parseError в логе появились.
теперь осталось разобраться почему, блин, у E_ALL такое значение - 2047 и как это поменять.
 
Сверху