Как показать свое сообщение вместо стандартных сообщений об ошибках?

  • Автор темы Автор темы tend
  • Дата начала Дата начала

tend

Новичок
Как показать свое сообщение вместо стандартных сообщений об ошибках?

Всем привет!

Как сделать так, чтобы пользователям, просматривающим сайт, показывались не такие сообщения (например):
[06-Feb-2007 15:53:49] PHP Warning: mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/***/public_html/***/***.php on line 35
а какое нибудь свое.... типа: "Ошибка. Пожалуйста, обновите страницу."?
Но чтобы в файле error_log записывалось стандартное сообщение, чтобы можно было сделать анализ и узнать какие были ошибки.
 
Как сделать так, чтобы пользователям, просматривающим сайт, показывались не такие сообщения
display_errors=off
а какое нибудь свое.... типа: "Ошибка.
if или try..catch
Но чтобы в файле error_log записывалось стандартное сообщение
log_errors=on
 
А как самому сгенерировать ошибку "Can't connect to local MySQL server" или подобную?
Хочу проверить как работает то, что я сделал.
 
указать неверный хост в параметрах подключения не догадался?
 
неа, не догадался :))
Фанат, спасибо большое!

-~{}~ 12.02.07 14:12:

возник еще небольшой момент...
я это сделал через .htaccess, прописав "php_flag display_errors off", но после этого начала выскакивать ошибка "500 Internal Server Error". У меня в .htaccess есть еще одна строка: "ErrorDocument 404 /404.php". Может это как-то повлияло на ошибку?
Можно ли как-то прописать display_errors=off не через .htaccess, а в самом php-скрипте?
 
Фанат
"php_flag display_errors 0" тоже такую же ошибку выдает... "500 Internal Server Error"...
на просьбу о выключении display_errors мне хостер ответил следующее (цитирую): "Вы можете менять установку для "display_errors" прямо из PHP".
знаю как совсем отключать лог через php: error_reporting(0);
но вот что-то подобное с display_errors не нахожу... как это сделать?
 
tend
>"php_flag display_errors 0" тоже такую же ошибку выдает... "500 Internal Server Error"...
[упал под стол]


Родимый, у тебя ошибку даёт не РНР а Апач!!!!! Смотри чё не так в .htaccess и иже с этим!
 
Vallar_ultra
да, ошибка от Апача, ты прав
в корне сайта лежит .htaccess и в нем всего одна строка:
php_flag display_errors 0
у меня только одно предположение... что через .htaccess поменять установку display_errors нельзя... я где-то о таком читал... вот поэтому, как мне кажется, хостер и сказал, что менять через PHP... хотя точно я не знаю и могу ошибаться, так как в этом я не силен
 
set_error_handler
(PHP 4 >= 4.0.1, PHP 5)

set_error_handler -- Sets a user-defined error handler function
 
ага, зашел в сипанельку, а там написало в чем проблема:
Invalid command 'php_flag', perhaps mis-spelled or defined by a module not included in the server configuration
Орфографических ошибок точно нет... вроде. :)
А вот по поводу второй причины я так и не понял. Кто знает, помогите плиз.
 
Vallar_ultra
падай под стол в другом месте пожалуйста.

tend
в php можно через ini_set, но лучше сделать через htaccess
500 Internal Server Error - это не ошибка. В переводе это звучит так: "загляни в error_log"

-~{}~ 12.02.07 15:11:

tend
похоже, что у хостера php стоит в режиме cgi
теоретически, в таком случае он мог бы давать доступ к php.ini
но если не дает - то только через скрипт
 
в php можно через ini_set, но лучше сделать через htaccess
я так понимаю, метод через .htaccess только один... и он у меня не работает, поэтому остается через скрипт, но я не понял как это сделать
если есть ссылочка где об этом можно почитать, плиз дай, потому что не знаю даже что искать... или примерчик напиши, если он не трудный

-~{}~ 12.02.07 15:30:

сорри, уже сам нашел

-~{}~ 12.02.07 15:55:

ура, все получилось!
добавил в скрипт "ini_set('display_errors',0);" и все заработало как надо
в php можно через ini_set, но лучше сделать через htaccess
а можно узнать почему? какие-то побочные эффекты?
если разница существенная, тогда буду просить хостера...
 
Сверху