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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Десятки! Просто десятки Notice/

Сообщения:  [1-10]    [11-20]  [21-27] 

 
 автор: lElectroHardl   (18.03.2012 в 15:10)   письмо автору
 
   для: lElectroHardl   (16.03.2012 в 13:50)
 

Все гуд.
Я Вася :). Я погашение Нотайсов поставил, после Инклуда файла ЧПУ, который и давал ошибки :).
Все. Вопрос решен. Взял во внимания фразы "ЮЛЯ, парень, не гони, это опасно!" и "Инициализируй их сейчайже, наъ!".

   
 
 автор: lElectroHardl   (18.03.2012 в 15:07)   письмо автору
 
   для: Slo_Nik   (17.03.2012 в 16:34)
 

Вы не знаете логики моих приложений. Да, согласен, это опасно. но если КАЖДАЯ переменная в скрипте проходит пред. обработку, то думаю, дыры быть не должно :).

   
 
 автор: cheops   (18.03.2012 в 12:01)   письмо автору
 
   для: Slo_Nik   (17.03.2012 в 21:02)
 

Даже ниже, на уровне движка Zend, на котором построено ядро.

   
 
 автор: Slo_Nik   (17.03.2012 в 21:02)   письмо автору
 
   для: cheops   (17.03.2012 в 20:41)
 

как я понял это надо решать на уровне ядра?

   
 
 автор: cheops   (17.03.2012 в 20:41)   письмо автору
 
   для: Slo_Nik   (17.03.2012 в 20:00)
 

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

PS Залез в исходные коды и специально проверил (чтобы ничего не напутать) - это происки Zend-овского движка.

   
 
 автор: Slo_Nik   (17.03.2012 в 20:00)   письмо автору
 
   для: cheops   (17.03.2012 в 19:49)
 

ну а каким образом можно разбить этот уровень на более мелкие?

   
 
 автор: cheops   (17.03.2012 в 19:49)   письмо автору
 
   для: Slo_Nik   (17.03.2012 в 19:44)
 

>но инициализировать то всё равно надо...
Надо, особенно в крупных проектах.

   
 
 автор: Slo_Nik   (17.03.2012 в 19:44)   письмо автору
 
   для: cheops   (17.03.2012 в 17:31)
 

с register_globals понятно, но не надо об этом забывать..

но инициализировать то всё равно надо...

Нужно дробить этот уровень ошибок на еще более мелкий и позволять выборочно включать/отключать конкретные типы Notice-замечаний
каким образом это можно сделать?

   
 
 автор: cheops   (17.03.2012 в 17:31)   письмо автору
 
   для: Slo_Nik   (17.03.2012 в 16:34)
 

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

Однако, проблема остается, PHP традиционно силен именно неявным объявлением переменных, многие приемы основаны на этом. Поэтому будет оставаться целый класс разработчиков отключающих Notice ради этой возможности. Нужно дробить этот уровень ошибок на еще более мелкий и позволять выборочно включать/отключать конкретные типы Notice-замечаний. Так поступают во всех остальных языках, очень часто глушат конкретные даже не замечания, а предупреждения.

   
 
 автор: Slo_Nik   (17.03.2012 в 16:34)   письмо автору
 
   для: lElectroHardl   (17.03.2012 в 15:36)
 

А что Вы скажете на это?
Полагаться на значения по умолчанию неинициализированных переменных довольно проблематично при включении файла в другой файл, использующий переменную с таким же именем. Это также большой риск в системе безопасности при включенной опции register_globals.

   

Сообщения:  [1-10]    [11-20]  [21-27] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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