Как стать автором
Обновить

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

Время на прочтение3 мин
Количество просмотров10K
25 PHP
Подборочка ошибок начинающих 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 require_once $_GET['mod']; ?> — это уязвимость, зовется 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. Присваивание в условии: <?php if ($auth = DEFINE_NAME) {… } ?> такую ошибку Вы будете долго искать — старайтесь избегать подобных конструкций (используйте конструкцию ввида <?php if (DEFINE_NAME == $auth) {… } ?> — если пропустите один знак «равно» — интерпретатор выдаст ошибку)
  11. «Cannot send session cookie — headers already sent by… » — пытаемся установить куки, когда заголовок уж послан браузеру — незаметили пустую строку или пробел перед первым тегом <?
  12. Переписываем функции PHP — воспользуйтесь поиском по manual'y
  13. Выражение <?php if (array_search('needle', $array) != FALSE) {...} ?> — не сработает если искомый элемент доступен по ключу 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, поленились писать польностью <?php… ?> — теперь на новом хостинге переписываем шаблоны
  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, и теперь уверены, что научились разделять логику и отображение
  27. Проверяем ВСЕ входные данные, XSS уязвимости нам не нужны


Если есть что добавить — пишем в комментариях…

P.S. Изначально было перечислено 25 ошибок, оттель и картинка такая…
Теги:
Хабы:
Всего голосов 185: ↑127 и ↓58+69
Комментарии230

Публикации

Истории

Работа

PHP программист
146 вакансий

Ближайшие события