Описание: Этот курс не является продолжением курса PHP ООП, он абсолютно обособлен. В нем рассматриваются некоторые техники, приемы и аспекты применения языка PHP, которые могут быть сподручными для начинающих веб-программистов или просто любителей поковырять языки программирования не только вширь, но и вглубь. Для просмотра курса необходимы базовые знания языка PHP (в среднем базы, данной в курсах Попова по PHP, будет достаточно).
Я пытался сделать все заметки независимыми друг от друга, но все же случаются пересечения тематик, это будет помечено отдельно в содержании. Там, где не отмечено пересечение тематик, уроки можно смотреть в произвольном порядке, где помечено, скорее всего техники демонстрируются с применением приемов из указанных заметок. Но на всякий случай не помешает просматривать в той последовательности, как указано в содержании, мало ли.
Некоторый материал не столь уж часто встречается даже в книгах, несмотря на то, что часто требуется в практике реальной разработки.
Также рассматриваются некоторые нововведения в php5, которые, по непонятным мне причинам, тоже не всегда входят в некоторые самоучители по php и видеокурсы.
Не смотря на то, что я пытался записывать этот курс полностью самодостаточным, все же он записан в рамках двух других курсов по php, как вспомогательный, поэтому, возможно изредка я буду ссылаться те материалы, которых нет в других заметках. То, что курс является "вспомогательным", думаю, не умаляет его полезности, но об этом судить вам.
Техники описываются преимущественно в теоретическом разрезе. Некоторые примеры приводятся в отрыве от реального применения с дырами в безопасности. Пожалуй, именно безопасности и будет посвящена очередная серия заметок
Дополнительная информация:
Поурочное описание :
mn-000-NetBeans-features
В обучающей литературе редко уделяют внимание среде разработки (IDE). Некоторые "зубры" призывают пользоваться notepad-ом, что лично я считаю прогрессирующим маразмом, есть большая разница, между умением писать код в экстремально неудобных условиях и необходимостью это делать.
В данной заметке рассмотрим несколько удобных фич, предоставляемых средой разработки NetBeans. Это не попытка приобщить вас к какому-то определенному редактору кода, просто пример того, что можно ожидать и требовать от редактора. Разумеется, это только основы, NetBeans - очень мощная среда и имеет гораздо больше средств. Будут рассмотрены кодовые шаблоны, комментарии FIXME и подобные и групповое переименование.
Выбор пал именно на NetBeans по причине его бесплатности и моих предпочтений. Также очень неплохим редактором является eclipse-pdt и имеет определенное кол-во фанатов Aptana. Главный минус у всех троих один - приличная нагрузка на железо, в особенности при работе над крупными проектами (Aptana в этом вопросе - чемпион, на моей не столь уж дохлой машине она валит все).
mn-001-cookies-and-sessions
В данной заметке рассмотрены базовые понятия сессий и куков, примеры применения и т.п.
mn-002-sessions-without-cookies
[Продолжительность: 14:50] (необходимо понимание работы кук и сессий, см. заметку mn-001-cookies-and-sessions)
mn-002-sessions-without-cookies
[Продолжительность: 14:50] (необходимо понимание работы кук и сессий, см. заметку mn-001-cookies-and-sessions)
Обычно для работы с сессиями необходимы включенные на стороне пользователя куки. У некоторых неадекватов они могут быть выключены. В данной заметке поясняется как подобную ситуацию можно обойти. Разумеется, в целях безопасности это не применимо для хранения сессий с секретными данными.
mn-003-redirects
Очень простая техника и скорее всего не будет ни для кого новостью, но все же. 2 основных вида редиректов: с задержкой и без.
mn-004-processing-forms
Форма - основной вид общения посетителей сайта с самим сайтом (если не учитывать адресную строку). У начинающих программистов часто возникает проблема повторной отправки данных после обновления страницы. В данной заметке мы решим эту проблему и позаботимся о выводе данных на той же странице, с которой отправили.
mn-004-processing-forms
В данной заметке приведен пример работы с текстовыми файлами, объяснение перетекает в реализацию операций CRUD (create, read, update, delete), только вместо таблиц БД используются текстовые файлы.
mn-005-text-files & text-editor
(необходимо понимание редиректов, сессий и работы с формами см. mn-001-cookies-and-sessions, mn-003-redirects, mn-004-processing-forms
В данной заметке приведен пример работы с текстовыми файлами, объяснение перетекает в реализацию операций CRUD (create, read, update, delete), только вместо таблиц БД используются текстовые файлы.
mn-006-php-cli
Обычно мы рассматриваем php как язык для написания сайтов, оригинально он для этого и разрабатывался, пишется сайт заливается на сервер - все счастливы. Но также его можно применять и для написания скриптов, автоматизирующих некоторые процессы на пользовательском компьютере, он может послужить альтернативой виндовым bat-файлам или никсовому башу и многим другим скриптовым языкам.
PS: собственно, сейчас на PHP можно писать даже приложения с графическим интерфейсом и "компилировать" в исполняемые экзешники. Но это отдельный вопрос и, по моему мнению, использование PHP для этих целий нецелессобразно.
mn-007-include_path
Порой бывает удобно создать директорию, где мы будем держать наши библиотеки. Но потом придется каждый раз подключая библиотеки при помощи include или require прописывать полный путь к этой директории. Не то, чтобы это была сильная головная боль, но иногда может оказаться сподручным воспользоваться опытом операционных систем и прописать часто используемые пути в path. Но применять надо с осторожностью (если в двух разных директорий будут файлы с одинаковыми названиями, то подключается тот, который стоит первым в путях)
mn-008-autoload
В данном уроке будет продемонстрированно как можно подключить файл с классом без помощи include или require инструкций, тем самым экономя себе время и несколько строчек кода
mn-009-php.ini-from-script
php.ini-файл - файл настроек интерпретатора PHP. Часто бывает полезно поменять какие-то его настройки на лету, или просто убедиться, что интерпретатор настроен так, как нам надо. В данной заметке мы узнаем как это делается, какие настройки можно менять и какие нельзя и как это может быть нам полезно.
mn-010-filter_input
(необходимо понимание сессий и редиректов mn-001-php-session-cookies и mn-004-redirects
Валидация входных и внутренних данных - важный вопрос безопасности и стабильности работы сайта. В PHP5.2 для этой цели была введена очень удобная ф-ция, и на момент написания этих строк до сих пор не вошла в русские переводы документации PHP (за исключением перевода на офсайте PHP, который почему-то уже убрали). В данном уроке мы провентилируем вопрос использования этой фичи.
mn-011-php-in-css
Вам когда-нибудь хотелось задекларировать переменную в css-файле? Или добавить немного динамики в статичные css-файлы, например, менять цвет background фона в зависимости от времени суток? Обычно подобный вопрос решается созданием отдельного css-класса и далее решение переходит в вид, а для использования переменных используются JS-библиотеки. Но JS может быть отключен на стороне пользователя, тогда дизайн поедет в неизвестном направлении, а если писать по классу для каждого времени суток, то это немало строчек займет. В любом случае в данной заметке предлагается более простое решение при помощи PHP. Данная техника позволяет сделать из css-файла полноценно обрабатываемый php-скрипт, можно будет как использовать переменные, так и создавать целые классы в стилевых таблицах (последнее - полный маразм, конечно же, но возможность имеется).
NB: лично я никогда не применяю эту технику в том виде, как описано в заметке, меня вообще не колышит, что делает в css верстальщик и какие у него там возникают проблемы. Но при определенной структуре сайта этот прием в сочетании с некоторыми колбэками может иметь и другие применения. А если вы одновременно являетесь и программистом и верстальщиком, то тем более вам может понравиться подобный прием.
mn-012-security
Пользователь - наш лучший друг. Для него мы должны добавлять как можно больше фич на наш сайт, чтобы он чувствовал себя наиболее комфортно. Пользователь - наш злейший враг, ибо по глупости, злому умыслу или смеха ради может нашему сайту навредить. Эта серия заметок будет посвящена безопасности сайта, защите от злостных хацкеров.
mn-012-security-1-include-vulnerability
Заметка посвящена include-уязвимостям, нередкие грабли начинающих разработчиков, когда подключаемые файлы зависят от введенных пользователем данных.
mn-012-security-2-mysql-injections
Полагаю, все слышали о mysql-инъекциях. Полагаю, что вы думаете, что знаете, как от них защититься. Но среди начинающих я несколько раз встречал защиту от одного типа mysql-инъекций и пробои против второго. Если вы не уверены на 100, что знаете, чем отличается инъекция для строковых параметров от внедрения в целочисленные, то рекомендую не брезговать этой заметкой.
Автор : k0stix aka jolly-wind
Сайт производителя: http://jolly-wind.ru
Название: PHP - заметки на полях. Полезные приемы в работе с PHP
Год выпуска: 2010 - 2011
Жанр: программирование
Язык: Русский
Качество видео: PCRec
Продолжительность: 8:21:33
Видеокодек: MPEG4 Video (H264) | V_MPEG4/ISO/AVC
Битрейт видео: ~80kb/s
Размер кадра: 1024x576
Аудиокодек: ACC
Битрейт аудио: ~40kb/s
Размер: 358 MB
Забрать : k0stix aka jolly-wind | PHP - заметки на полях. Полезные приемы в работе с PHP [2010 - 2011] PCRec