Ошибки начинающих PHP-разработчиков

Источник: habrahabr

Подборочка ошибок начинающих PHP разработчиков…

  1. Книга по PHP за 2002 год как источник знаний - это уже история, советую "PHP 5. Профессиональное программирование" - Э. Гутманс, С. Баккен - ISBN:5-93286-083-9, иль даже поновее...
  2. Использование web-сервера, где "всё включено" (Denwer и еже с ним) - научитесь сетапить сами, потом успеете перейти на полуфабрикаты
  3. Используем простенький редактор с подсветкой синтаксиса - пора взрослеть и переходить на IDE - с IDE увеличивается скорость разработки, особенно в больших проектах, где не один десяток классов.
  4. В php.ini включен параметр register_globals - отключаем это ЗЛО, по умолчанию отключен, но Вам он зачем-то понадобился
  5. Реализация "index.php" содержащая приблизительно следующий код: - это уязвимость, зовется PHP инъекцией - всегда проверяйте входные данные.
  6. Реализация авторизации, когда строка запроса к БД содержит что-то типа: "SELECT * FROM users WHERE login=".$_GET[`login`]." AND password=".$_GET[`password`] - читаем что такое SQL инъекции (это относится ко всем входным данным и SQL запросам)
  7. Доверяем POST переменным больше чем GET? - Будьте уверены подделать так же легко, так что проверяем
  8. AJAX это хорошо, дырявый AJAX - плохо - не забывай проверять права доступа для функций вызываемых в AJAX`е
  9. Не проверяем залитые пользователями файлы - теперь и мы знаем, что такое PHP Backdoor
  10. Присваивание в условии: такую ошибку Вы будете долго искать - старайтесь избегать подобных конструкций
  11. "Cannot send session cookie - headers already sent by… " - пытаемся установить куки, когда заголовок уж послан браузеру - незаметили пустую строку или пробел перед первым тегом
  12. Переписываем функции PHP - воспользуйтесь поиском по manual`y
  13. Выражение - не сработает если искомый элемент доступен по ключу 0 либо "" - читаем внимательней manual по каждой функции
  14. Работаем под windows, хостинг на linux и сайт не поднимается - имя файла index.php, Index.php, INDEX.php и т.д. это все разные файлы для linux систем, а мы про это забыли
  15. Отключение вывода ошибок - код должен быть чистым  - так что error_reporting(E_ALL) Вам в помощь, следите даже за Notic`ами
  16. Залив проект на хостинг - отключите вывод ошибок на экран - логируйте их в файл - не будете краснеть потом
  17. PHP файлы имеют не стандартное расширение (к примеру .inc вместо .php) - если не защитить такие файлы, то может быть очень стыдно
  18. В рассчете на short_tags, поленились писать польностью - теперь на новом хостинге переписываем шаблоны
  19. Понадеялись на magic_quotes, теперь наше приложение надежно как швейцарский… сыр
  20. Соблюдай стандарты кодирования и пиши комментарии к коду - твои последователи скажут спасибо
  21. Не пиши маты в сообщениях об ошибках и комментариях - заказчик может просматривать и тогда прийдется долго оправдываться
  22. Читают статью http://php.spb.ru/php/speed.html и думают, что только так можно/нужно оптимизировать код - это "блошиная" оптимизация относится к PHP3
  23. Реализуем функционал БД средствами PHP - array_search вместо WHERE, ну и другие чудеса незнания SQL
  24. Стучимся к БД в рекурсии - стараемся обходить подобные реализации
  25. Не нужно забивать гвозди пасатижами - "Мне надо реализовать гостевую книгу - возьму-ка я свой любимый набор библиотек на 6 мегабайт"
  26. Узнали Smarty, и теперь уверены, что научились разделять логику и отображение

Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=17793