PHP Notice. Как с этим бороться?

RomikChef

Guest
Warning: mysql_pconnect() [function.mysql-pconnect]: Access denied for user: 'ODBC@localhost' (Using password: NO) in c:\Program Files\PHP Expert Editor\php81.tmp on line 2
Если такая ошибка появляется, то надо кричать караул и бить во все колокола!!!
Программисту, конечно.
Это признак того, что НИ ХРЕНА НЕ РАЬОТАЕТ и СРОЧНО надо что-то делать!!!
а ты хочешь это подавить!!!

Это не красиво. Эта информация не нужна пользователю
НИКТО
НЕ
ГОВОРИТ
о
ВЫВОДЕ ПОЛЬЗОВАТЕЛЮ!

Пользователю это выводить не надо!
Это надо выводить админу, программисту!
ВЫВОДИТЬ!
а не ПОДАВЛЯТЬ!!!!!!!!!!

понимаешь разницу-то?
все правильно. пользователю ошибки показывать не надо!
Ни в коем случае!

но объясни мне - какая связь между подавлением и выводом?

Это не тема для отдельного топика.
Здесь обсуждать нечего.
Это аксиома.
 

_RVK_

Новичок
НИ ХРЕНА НЕ РАЬОТАЕТ и СРОЧНО надо что-то делать
Правильно, удалённый сервак с БД звавис. Что делать? Пойти побить админа. :)
Это форсмажор и его нужно предвидеть.
НИКТО
НЕ
ГОВОРИТ
о
ВЫВОДЕ ПОЛЬЗОВАТЕЛЮ!
А я как раз об этом и говорю. В процессе отладки пускай выводит полную информацию, но этого не должно быть на работающей системе. Я не призываю использовать @ везде где не попадя. Но в некоторых случаях это очень полезно.(в конце концов полный текст ошибки можно записать в лог и почитать на досуге)

Да и обьясни мне КАК можно ПОДАВИТЬ ошибку. Если ошибка произошла.... это нужна машина времени :)
 

RomikChef

Guest
окей.
если мы любим придираться к словам, то собака подавляет
сообщения об ошибках.

А я как раз об этом и говорю.
нет.
НЕТ НЕТ И НЕТ!
ты говоришь О ДРУГОМ!
ты говоришь не о запрете вывода ПОЛЬЗОВАТЕЛЮ, а о запрете вывода ВСЕМ ПОДРЯД.

а я говорю о том, что только пользователю не надо выводить сообщения об ошибках, а админу их НАДО выводить ОБЯЗАТЕЛЬНО. Они для этого и придуманы.
Но в некоторых случаях это очень полезно
Ты не смог привести ни одного случая.
Ты привел только вредные.
Как с коннектом к базе.
есть тысяча причин, по которым коннект не прошел - например, сервер в дауне, а не ошибка доступа.
нормальный программист прочтет ошибку, и будет исправлять.
а ты так и будешь прыгать с бубном вокруг своей абстрактной ошибки.
 

RomikChef

Guest
В процессе отладки пускай выводит полную информацию, но этого не должно быть на работающей системе.
Как раз на работающей это и критично!
Как раз админу надо срочно обо всех ошибках сообщать!!!
не подавлять сообщения об ошибках, а наоборот - СООБЩАТЬ.
Не показывая их пользователю.

Я совершенно не могу понять, как такая простая мысль не может найти дорогу в твою голову. соляры мало заправил?
 

_RVK_

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


а админу их НАДО выводить ОБЯЗАТЕЛЬНО. Они для этого и придуманы.
Цитирую себя:
'в конце концов полный текст ошибки можно записать в лог и почитать на досуге'


есть тысяча причин, по которым коннект не прошел - например, сервер в дауне, а не ошибка доступа.
Админ спьну удалил твою регистрацию на сервере, сгорел винт. Сервак переставили а BuckUp ещё не успели загрузить. Вообще я привёл не конкрктную ситуацию а просто пример обработки ошибки.
 

RomikChef

Guest
как этого добиться?
уж конечно, не собакой
display_errors=off
log_errors=on
как уже давно сделали все нормальные хостинги.
'в конце концов полный текст ошибки можно записать в лог и почитать на досу
Это надо делать не в конце концов а в штатном порядке.
И собака здесь лишняя - только прибавляет ненужной работы.
Вообще я привёл не конкрктную ситуацию а просто пример обработки ошибки.
ты попрекал меня этим, и сам же и путаешься.
ты путаешь обработку сообщения об ошибке, и обработку ошибки.
Я не говорю ничего против обработки ошибки!!!
Я ничего не имею против обработки ошибки.

Только вот собака твоя к обработке ошибки не имеет
НИКАКОГО
отношения.

Собакой ты подавляешь сообщение об ошибке.
Которое вообще никакого отношения обработке самой ошибки не имеет.

Я не отрицаю обработку ошибки.
обрабатывай на здоровье.

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

_RVK_

Новичок
ты путаешь обработку сообщения об ошибке, и обработку ошибки.
Я ничего не путаю. Я имею ввиду именно обработку ошибки. Не сообщения а именно ошибки. Я её не ПОДАВЛЯЮ а ОБРАБАТЫВАЮ. Я говорю пользователю что ошибка произошла а не молчу в тряпочку что всё впорядке.

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


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

RomikChef

Guest
так. начались передергивания.
за такое в реале хочется дать по морде.
Я ничего не путаю. Я имею ввиду именно обработку ошибки. Не сообщения а именно ошибки.
перечитываем тред:
>@ - очень вредный оператор
Не совсем согласен. Он полезен если хочешь обрабатывать ошибки сам.
вот здесь все и кроется.
собака к обработке ОШИБКИ не имеет ни малейшего отношения.
мы говорилио СОБАКЕ. т.е. - о СООБЩЕНИЯХ об ошибке.
Я говорю пользователю что ошибка произошла а не молчу в тряпочку что всё впорядке.
А какое это имеет отношение к использованию собак?
Если подавить вывод сообщений пользователю можно централизованно, а не расставляя собак в каждой строчке?

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

так вот. я повторяю еще раз.
обрабатывай ошибки, сколько тебе влезет.
только не надо под это дело подписывать собаку.
она ни малейшего отношения к обработке ошибки не имеет.
будет она стоять, или не будет - обработка ОШИБКИ сработает, как надо.

а вот как правильно обрабаотывать СООБЩЕНИЯ об ошибках на рабочем сервере - я тебе сказал. Без собак.

Ты собственно тоже не говорил почему собака так зловредна
я убил на это два часа рабочего времени.
если ты настолько туп, что до сих пор не понял конкретного примера, который я привел, в котором РАЗНЫЕ ошибки, которые могут произойти при соединении с базой данных, и вызывают РАЗНЫЕ СООБЩЕНИЯ, которые несут программисту ОЧЕНЬ ВАЖНУЮ информацию ВСЕ СКОПОМ подавляются, то дальнейшие объяснения бесполезны.
Жаль, я почему-то считал тебя более сообразительным.
 

RomikChef

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

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

RomikChef

Guest
что поставив централизованные настройки для сайта, ты сбережешь себе время на расставление собак в каждой строчке и нервы - на отлове ошибок, сообщения о которых ты сам же подавил.

что есть более правильные пути НЕ ПОКАЗЫВАТЬ пользователю системные сообщения об ошибках.

что ты, ради того, чтобы НЕ ПОКАЗЫВАТЬ ПОЛЬЗОВАТЕЛЮ, подавляешь вовсе.

что ты путаешь три вещи.
1. обработку ошибок.
2. обработку сообщений об ошибках.
3. показ сообщений об ошибках пользователю
 

RomikChef

Guest
поставив собаку, ты согласился с тем, что ошибка становится частью твоей программы.
 

_RVK_

Новичок
Ладно, хватит уже спорить. Здесь было сказанно куча ненужного. Можно было бы сразу посоветовать отключать отображение ошибок в php.ini. Собственно понял что так удобней, хотя глобальную пагубность собаки понял только когда ты сказал что она запретит запись ошибки и в лог тоже.
 

RomikChef

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

ну, а объяснять у меня криво получается - поэтому так много и пишу. не качеством, а количеством :)
 

}|{yK

Guest
Вижу люди уже подсказали как правильно инициализировать переменные, но хочу добавить от себя на заметку.

Можно делать так:
error_reporting(E_ALL ^ E_NOTICE);
И нотисов не увидишь больше, хотя лучше все делать правильно...
мне например больше нравиться программить при
error_reporting( E_ALL);
 

ONK

Пассивист PHPСluba
Ошибки надо не подавлять а перехватывать, в мане есть замечательный пример перехвата и обработки ошибок.
Для админа надо писать лог с подробным описанием ошибки, а пользователю (если ошибка критическая) кидать сообщения о временных технических неполадках на сервере.... Применением @ страдают очень многие, даже в PEAR во многих библиотеках так заткнут возможный вывод сообщений.
Лично я считаю подобный подход крайне вредным, в большом проекте он может вызвать вредноуловимые глюки.
 
Сверху