Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как запретить выводить ошибки?
 
 автор: victoor   (24.05.2007 в 00:30)   письмо автору
 
 

Здравствуйте!
Мне бы хотелось сделать так, чтобы ошибки вообще не выводились. Как сделать это на уровне php.ini - я знаю.

А можно ли это как-то сделать на уровне .htaccess или даже в самом файле *.php?

Где-то читал, что для этого достаточно поставить
error_reporting(0);
, но не запомнил, где это надо ставить.
Если ставить в код странички - часть ошибок глушится (например, если нету подключаемого файла, но ошибка, если неправильно написана конструкция - не глушится :( )
Если ставить в .htaccess - сервер выдает ошибку.

Как сделать, чтобы все глушилось?

   
 
 автор: mr Bin   (24.05.2007 в 01:14)   письмо автору
 
   для: victoor   (24.05.2007 в 00:30)
 

Чтобы всё глушилось - такого нету.
Но по максимуму глушит это:

Error_Reporting(E_ALL & ~E_NOTICE);


Вставьте в верхушку страницы. Необязательно в самый верх, но чем выше, тем меньше ошибок будет :)

   
 
 автор: kasmanaft   (24.05.2007 в 07:25)   письмо автору
 
   для: mr Bin   (24.05.2007 в 01:14)
 

> Чтобы всё глушилось - такого нету
Однако мануал говорит обратное..


<?php

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR E_WARNING E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR E_WARNING E_PARSE E_NOTICE);

// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL E_NOTICE);

// Report all PHP errors (bitwise 63 may be used in PHP 3)
error_reporting(E_ALL);

// Same as error_reporting(E_ALL);
ini_set('error_reporting'E_ALL);

?> 

> ошибка, если неправильно написана конструкция - не глушится :(
А зачем их глушить?

   
 
 автор: mr Bin   (24.05.2007 в 12:22)   письмо автору
 
   для: kasmanaft   (24.05.2007 в 07:25)
 

Пошёл читать мануал :)

   
 
 автор: Trianon   (24.05.2007 в 10:50)   письмо автору
 
   для: victoor   (24.05.2007 в 00:30)
 

может лучше сперва конструкции правильно написать?

   
 
 автор: victoor   (24.05.2007 в 13:30)   письмо автору
 
   для: Trianon   (24.05.2007 в 10:50)
 

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

А конструкцию я для теста портил - это легче всего сделать...

   
 
 автор: Temnovit   (24.05.2007 в 17:50)   письмо автору
 
   для: victoor   (24.05.2007 в 13:30)
 

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

Вам удобно будет глушить ошибки только на хостинге, а на домашней машине оставлять как есть. Это можно сделать в самом начале скрипта написав:

<?
if ( @getenv('COMSPEC') === false //esli rabotajem ne v windows
          
error_reporting(0);     //viklu4ajem pokaz o6ibok
?>

   
 
 автор: Trianon   (24.05.2007 в 18:50)   письмо автору
 
   для: Temnovit   (24.05.2007 в 17:50)
 

И в лог не отправится вообще ничего. Хороший способ....

   
 
 автор: provodnik   (24.05.2007 в 10:56)   письмо автору
 
   для: victoor   (24.05.2007 в 00:30)
 

У меня в корневом .htaccess написана строка

php_flag display_errors off

   
 
 автор: Trianon   (24.05.2007 в 12:41)   письмо автору
 
   для: provodnik   (24.05.2007 в 10:56)
 

А у меня (к примеру)

php_value error_reporting 2047
php_value error_log "/tmp/log/myerrors.txt"
php_flag log_errors on
php_flag display_errors off


ошибки на боевых серверах нужно не просто отключать, а уводить на регистрацию в логи.

   
 
 автор: victoor   (24.05.2007 в 13:28)   письмо автору
 
   для: Trianon   (24.05.2007 в 12:41)
 

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

А первая стока приведенного кода, надо пологать, говорит, на какие ошибки мы обращаем внимание? И можно ли там писать что-то типа E_ALL?

Спасибо за код :-)

   
 
 автор: Trianon   (24.05.2007 в 13:43)   письмо автору
 
   для: victoor   (24.05.2007 в 13:28)
 

Можно написать что-то вроде
<?  
   
echo E_ALL & ~ E_NOTICE;  
?>

Запустить, поглядеть, увидеть
2039


и записать увиденное в .htaccess, поставив рядом человеческий текстовый коментарий.

   
 
 автор: victoor   (26.05.2007 в 20:16)   письмо автору
 
   для: Trianon   (24.05.2007 в 13:43)
 

>Можно написать что-то вроде
>
<?  
>   echo E_ALL & ~ E_NOTICE;  
>
?>

>Запустить, поглядеть, увидеть
2039


а у меня выводит 6135 ...
Это может зависить от ОС, на которой стоит апач?

   
 
 автор: kasmanaft   (26.05.2007 в 20:59)   письмо автору
 
   для: victoor   (26.05.2007 в 20:16)
 

-

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования