Антон Шевчук // Web-разработчик

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

25 PHP

Пожалуй продолжу свою незамысловатую серию 25, в этот раз вспомним о наших ошибках…

  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 = true) { … } ?> такую ошибку Вы будете долго искать – старайтесь избегать подобных конструкций
  11. Переписываем функции PHP – воспользуйтесь поиском по manual’y
  12. Выражение <?php if (array_search(‘needle’, $array) != FALSE) {…} ?> – не сработает если искомый элемент доступен по ключу 0 либо “” – читаем внимательней manual по каждой функции
  13. Работаем под windows, хостинг на linux и сайт не поднимается – имя файла index.php, Index.php, INDEX.php и т.д. это все разные файлы для linux систем, а мы про это забыли
  14. Отключение вывода ошибок – код должен быть чистым  – так что error_reporting(E_ALL) Вам в помощь, следите даже за Notic’ами
  15. Залив проект на хостинг – отключите вывод ошибок на экран – логируйте их в файл – не будете краснеть потом
  16. PHP файлы имеют не стандартное расширение (к примеру .inc вместо .php) – если не защитить такие файлы, то может быть очень стыдно
  17. В рассчете на short_tags, поленились писать польностью <?php … ?> – теперь на новом хостинге переписываем шаблоны
  18. Понадеялись на magic_quotes, теперь наше приложение надежно как швейцарский … сыр
  19. Соблюдай стандарты кодирования и пиши комментарии к коду – твои последователи скажут спасибо
  20. Не пиши маты в сообщениях об ошибках и комментариях – заказчик может просматривать и тогда прийдется долго оправдываться
  21. Читают статью http://php.spb.ru/php/speed.html и думают, что только так можно/нужно оптимизировать код – это “блошиная” оптимизация относится к PHP3
  22. Реализуем функционал БД средствами PHP – array_search вместо WHERE, ну и другие чудеса незнания SQL
  23. Стучимся к БД в рекурсии – стараемся обходить подобные реализации
  24. Не нужно забивать гвозди пасатижами – “Мне надо реализовать гостевую книгу – возьму-ка я свой любимый набор библиотек на 6 мегабайт”
  25. Узнали Smarty, и теперь уверены, что научились разделять логику и отображение

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