Учимся строить с PHP: ускоренный курс

Оглавление

§1. Введение

Это руководство доступно для скачивания в формате PDF. Загрузите Learn To Build With PHP: ускоренный курс сейчас. Не стесняйтесь копировать и делиться этим со своими друзьями и семьей.

§2 — Привет, мир!

§ 3-форма

§ 4-базы данных

§5 — Получение контента из базы данных

§6 — логины и аутентификация

§7? -? Заключение и дальнейшее чтение

1. Введение

Какой твой любимый предмет в школе?

Если вы чем-то похожи на меня, держу пари, вы любили искусство. Гуманитарные науки. Вы знаете, предметы, которые некоторые высмеивают как бесполезные и туманные по своей природе, но независимо от того, что вы любите изучать их, потому что вы любите быть творческими
Учитесь строить с PHP: ускоренный курс строительства php 1
Могу поспорить, что вы никогда не думали о своих уроках IT так же, как о английском языке или искусстве; как чисто творческое начинание.

Какая жалость. Обучение программированию немного похоже на занятия по креативному языку. У вас есть идея, и вы можете выполнить ее так, как вам нравится. Это чистая креативность, но вместо того, чтобы обнажить свою душу на бумаге, вы приказываете компьютеру делать все возможное. Если вы можете мечтать об этом, и если вы можете описать это так, как ваш компьютер понимает, то вы можете сделать это.

Мы говорим с компьютерами через абстракции, называемые языками программирования. Их там целая куча, у каждого из которых есть свои преимущества, недостатки и действительно странные идиосинкразии. Они несовершенны по своей природе, но люди используют их для создания невероятных и удивительных вещей.

Один из этих языков называется PHP.

Возможно, вы слышали об этом раньше. Это язык, который Facebook, WordPress и Wikipedia используют для ежедневного обслуживания миллиардов запросов. Это де-факто язык, используемый для обучения людей программированию для Интернета. Это красиво просто, но невероятно мощно.

И в этом руководстве я собираюсь научить вас, как вы можете использовать его для создания своих собственных сайтов.

У вас есть идея запуска убийцы, которую вы не знаете, как ее реализовать? Вы хотите изучить язык, используемый для расширения WordPress? Вам просто интересно узнать о веб-программировании? Вы просто хотите освоить навыки, необходимые для того, чтобы оставаться актуальными в современной, ориентированной на технологии экономике знаний?

Независимо от вашей мотивации, эта книга призвана научить вас основам языка программирования PHP. Но сначала давайте немного поучимся истории.

1.1 История PHP

В младенчестве в Интернете все было немного… Ну? Плоский.

Сайты не были особенно интерактивными, и те, кто посещал эти сайты, столкнулись с относительно однонаправленным опытом. Добавление даже самых простых аспектов взаимодействия с пользователем было невероятно трудным, оставленным в области компьютерных ученых и опытных программистов.

А потом пришел Расмус Лердорф. Этот канадско-гренландский кодер создал язык программирования PHP, который позволял людям легко добавлять простейшие аспекты взаимодействия на свои веб-страницы. Это было ново, это было смело, и это взлетело почти немедленно.

Расмус Лердорф не мог предсказать, какое влияние его идея окажет на мир.

Сообщество стало формироваться, и программисты и компании охотно предоставляли время и деньги для развития языка. Медленно, но верно PHP начал создавать серьезные проблемы для Sun (теперь Oracle) и Microsoft, которые надеялись завоевать популярность на рынке веб-разработок с помощью своих платформ Java и ASP. Подъем языка программирования PHP может быть описан только как поразительно быстрый.

Это было 20 лет назад. Век в компьютерном мире. С тех пор язык программирования PHP стал предпочтительным способом для миллионов программистов, которые используют PHP в своей работе, чтобы участвовать в open source и воплощать свои идеи в жизнь. Это основной продукт цифрового мира.

Вы можете стать одним из тех миллионов. Эта книга покажет вам, как.

1.2 Что мы собираемся осветить?

Это довольно короткая книга, но мы многое расскажем. Всего за несколько страниц мы собираемся создать простой клон Twitter.

Хотя он не будет иметь тот же набор функций и полировку популярного сайта микроблоггинга, но мы сможем публиковать 140-символьные сообщения с учетной записью, в которую мы войдем.

1.3 Все о лампе

К настоящему времени мы должны знать, что PHP — невероятный язык для создания интерактивных веб-страниц. Но мы не говорили о том, как мы превращаем этот код в реальный продукт. Итак, давайте сделаем это.

По большей части код PHP работает на веб-сервере. Веб-сервер отвечает за отправку веб-страниц всем, кто переходит на конкретное доменное имя или IP-адрес.

Наиболее распространенным выбором веб-сервера является невероятно популярный веб-сервер Apache. Этот проект кроссплатформенного программного обеспечения с открытым исходным кодом поддерживает большую часть Интернета, причем 45% всех веб-сайтов обслуживают страницы с веб-сервера Apache. Тем не менее, полезно отметить, что доступны другие веб-серверы, включая LightTTPD и IIS от Microsoft.

Это образует вторую букву в аббревиатуре LAMP, которая обозначает Linux, Apache, Mysql и PHP. Мы знаем, что такое PHP. Я только что объяснил вам, что такое Apache. Возможно, вы когда-нибудь слышали о Linux. Но что такое «М» в лампе? MySQL.

Давайте поговорим о MySQL. Я бы положил деньги на ваш сайт, чтобы хранить информацию, собранную вашим веб-приложением. Более того, держу пари, что вы захотите хранить эту информацию где-то структурированным, безопасным и организованным. Да, вам придется использовать базу данных, и для большинства целей MySQL является довольно солидным выбором. Мы поговорим об этом позже.

Наконец, давайте кратко коснемся Linux. Большинство веб-сайтов PHP обслуживаются из систем, работающих под управлением популярной операционной системы Linux с открытым исходным кодом. Однако вам не обязательно использовать Linux в качестве среды разработки, если вы этого не хотите. Все в этой книге может быть использовано на OS X, Windows и Android

Операционная система Apache, MySQL и установка языка программирования PHP являются четырьмя составными частями наиболее распространенных конфигураций PHP. Но как нам их достать?

1.4 Настройка среды разработки

В отличие от некоторых языков программирования, настройка среды разработки PHP проста. Действительно, есть ряд пакетов, которые выполняют всю тяжелую работу за вас и избавляют вас от необходимости устанавливать каждый компонент (PHP, MySQL и Apache) по отдельности.

Windows

Самый простой способ настроить среду разработки PHP в Windows — это использовать XAMPP от Apache Friends. Этот пакет включает в себя MySQL, копию языка программирования PHP и веб-сервера Apache, а также административную панель управления и плагины для SSL (протокол, используемый для шифрования трафика в сети), а также отправку электронной почты.
Учимся строить с помощью PHP: ускоренный курс php building 2
XAMPP бесплатен и может быть найден на сайте друзей Apache. Важно подчеркнуть, что доступны две версии XAMPP. Один имеет номер версии 1.8.2 и работает на несколько более старой версии языка программирования PHP, а другой — на версии 1.8.3 и использует текущую версию PHP. Хотя я настоятельно рекомендую вам загрузить последнюю версию, содержание этого руководства должно работать с обоими.

Linux

Linux немного сложнее. Существует ряд операционных систем, которые существуют под эгидой «Linux», хотя каждая из них управляет установкой пакетов программного обеспечения по-своему.

Если вы используете Ubuntu и любой дистрибутив, в котором используются репозитории Ubuntu, вы можете запустить:

sudo apt-get установить ламповый сервер ^

Это установит сервер LAMP со всеми компонентами, необходимыми для следования этой статье. Этот процесс более подробно объясняется в этой статье, где я покажу вам, как установить сервер LAMP.

как часть установки платформы блогов WordPress.

Эти инструкции не будут работать в дистрибутивах, которые используют YUM или RPM для управления своими пакетами, при этом инструкции по настройке сервера LAMP значительно отличаются. Я бы порекомендовал вам взглянуть на документацию, прилагаемую к вашей операционной системе.

Однако есть и другой вариант. Помните XAMPP? Ну, так получилось, что он поставляется с поддержкой Linux и может быть загружен здесь. Однако, где это возможно, я настоятельно рекомендую вам установить сервер LAMP через менеджер пакетов.

Есть несколько причин для этого. Во-первых, он будет немного лучше интегрирован с вашей операционной системой и может быть легко обновлен. Кроме того, установка PHP через командную строку является хорошей практикой, если вы когда-либо развертываете свое приложение на VPS-сервере.

,

OS X

Я использую OS X в качестве основной платформы для разработки. Мне нравится гибкость, которую он мне предоставляет, и настройка среды разработки PHP в OS X безумно проста.

Я довольно неравнодушен к MAMP. Это входит в два продукта, один из которых является бесплатным, а другой стоит 59 долларов США (или 39 евро). Тем не менее, бесплатная версия более чем адекватна для целей данного руководства.

Чтобы получить MAMP, нужно получить ZIP-файл с веб-сайта, дважды щелкнув файл pkg и нажав «продолжить» так часто, как это необходимо.
Учимся строить с помощью PHP: ускоренный курс php building 3
Как и раньше, для вас вполне возможно создать среду разработки PHP с использованием XAMPP, которая также портирована на OS X. Это полностью ваше дело.

Android

Android? Я имею в виду, Android отлично подходит для отправки твитов и убийства времени на Angry Birds. Но разработка программного обеспечения? Неа. право?

Неправильно. Если вы приобрели мобильный телефон Android в прошлом году или около того, вполне вероятно, что он работает с процессором, столь же мощным, как и любой VPS, который вы получите менее чем за 10 долларов. А это значит, что достаточно для запуска PHP, Apache и MySQL.

На рынке есть много серверов Android LAMP, но мне действительно нравится Palapa Server. Он прекрасно работает на устаревшем планшете Nexus 7, и мне даже удалось без проблем подключить к нему Android. Это не идеальная среда разработки, но это возможно.

1.5 Выбор правильного текстового редактора

Вы, наверное, знакомы с текстовыми процессорами. Скорее всего, вы использовали Microsoft Word, Open Office или Google Docs для написания писем, школьных заданий или деловых документов.

Но вы можете не знать, что использовать обычный текстовый процессор для разработки программного обеспечения и веб-сайтов невозможно. Это почему? Главным образом потому, что когда вы пишете документ, вы оставляете в файле все виды посторонней разметки и форматирования. Конечный продукт — это не только слова, которые вы пишете, но и выравнивание каждого слова и его стиль.

В результате при написании кода мы используем текстовые редакторы. Кто они такие? Проще говоря, они позволяют вам писать файлы, которые сохраняются в чистом виде. Нет форматирования. Просто персонажи.

При написании кода я склонен использовать Sublime Text 2. Он поставляется с неопределенной бесплатной пробной версией (хотя иногда она требует обновления) и кучей функций, что делает написание программного обеспечения с ним радостью.

В частности, он поставляется с подсветкой синтаксиса для PHP, Javascript и HTML, что позволяет действительно легко читать код, который вы создаете. Вы можете скачать Sublime Text 2 здесь, и он доступен для Linux, Windows и OS X. Если вы не уверены, вы можете прочитать больше о Sublime Text 2

,

Если вы используете Android, вы обнаружите, что ваш выбор весьма ограничен. Я увлекаюсь VimTouch, который доступен бесплатно в магазине Google Play. У Vim довольно крутой курс обучения, но его стоит попробовать. Узнайте больше о том, почему стоит дать текстовому редактору Vim шанс

,

1.6 Предварительные условия

Мы собираемся перейти к изучению PHP. Хотя я планирую мягко познакомить вас с этим удивительным языком программирования, я ожидаю, что вы заранее поймете некоторые вещи.

В частности, я ожидаю, что вы поймете, как сайт структурирован с помощью HTML. Если вы не знаете свой

теги от вашего

, Это бесплатно для некоммерческого использования, но если вы планируете использовать его в коммерческом проекте, вам нужно заплатить за лицензию.
Учимся строить с помощью PHP: ускоренный курс php building 17
Загрузите копию MeekroDB с официального сайта. Получив его, разархивируйте его и поместите в корневой каталог документа.

Теперь вернемся к вашему текстовому редактору. Откройте postForm.php и добавьте следующие строки.

[NOEDIT]


require_once 'meekrodb.2.2.class.php';
DB::$user = 'user';
DB::$password = 'password';
DB::$dbName = ‘database';

[/NOEDIT]

Измените «user», «password» и «database», указав фактическое имя пользователя, пароль и имя базы данных.

Теперь пришло время вставить ваш пост в вашу базу данных. Добавьте следующие строки кода.

[NOEDIT]


DB::debugMode();
$microBlog = $_POST['microBlog'];
DB::insert('MicroBlog', array(
'post' => $microBlog)
);

[/NOEDIT]

Итак, давайте разберемся с этим.

DB :: DebugMode (); выдает сообщения об ошибках, если мы делаем что-то не так. В результате, это очень удобно, чтобы оставить это в нашем коде, так как это делает процесс разработки немного проще.

DB :: insert вызывается, когда нам нужно вставить один или несколько элементов в базу данных. «MicroBlog» относится к таблице базы данных, а «публикация» содержит сообщение, которое вы только что опубликовали на веб-сайте.

Мы можем увидеть, достигли ли наши сообщения базы данных, открыв PHPMyAdmin и посмотрев.
Учимся строить с помощью PHP: ускоренный курс php building 18
Если вы используете MySQL в Linux и установили его из диспетчера пакетов, вы можете открыть MySQL из терминала и выполнить следующие команды.

Используйте MicroBlog;

Выберите * из MicroBlog;

Просто, правда? Давайте попробуем, а дальше мы рассмотрим показ наших сообщений на главной странице. Обещаю, это не так уж сложно.

5. Получение контента из базы данных

Мы уже представили MeekroDB. Это библиотека базы данных, которая позволяет нам безопасно взаимодействовать с базой данных MySQL в контексте приложения PHP.

Если вы завершили предыдущую главу, у вас должно быть несколько сообщений в базе данных. Тем не менее, они просто сидят в базе данных и не используются. Как жаль! Итак, давайте посмотрим, как получить их в браузере.

Мы знаем, что мы можем использовать SQL — язык, используемый MySQL для запроса базы данных. В то время как MeekroDB позволяет вставлять контент в базу данных без использования SQL, для извлечения записей необходимо использовать некоторый SQL.

5.1 Выбор и представление результатов

Одним из таких утверждений является «Выбор заявления». Ранее мы использовали это, чтобы увидеть, распространились ли наши файлы в базу данных. Мы собираемся использовать его снова здесь.

Под тэгом закрывающей формы добавьте и между ними напишите следующие строки кода.

[NOEDIT]



[/NOEDIT]

Давайте посмотрим на это более внимательно. Мы знаем, что делают первые пять строк. Ранее мы использовали их как часть вставки наших сообщений в базу данных.

$ results = DB :: query («ВЫБРАТЬ пост из микроблога»);

Эта строка выбирает все сообщения из таблицы «MicroBlog», а затем копирует их в переменную с именем $ results.

И тогда это становится интересным. Таким образом, $ results состоит из нескольких элементов. Это означает, что мы можем перебирать их, используя что-то, что сильно напоминает те циклы «для», на которые мы ранее смотрели.

[NOEDIT]


foreach ($results as $row){
echo "
" . $row['post'] . "
";
}

[/NOEDIT]

Итак, здесь мы рассмотрим каждый результат и сопоставим его с переменной. Затем мы распечатываем его между несколькими тегами «div». Это позволяет нам инкапсулировать каждый пост и применять стили к каждому из них.
Учимся строить с помощью PHP: ускоренный курс php building 19
Сейчас это не так уж много, не так ли? Давайте изменим это.

5.2 Стайлинг

Создайте новый файл с именем «style.css» и добавьте следующую строку HTML-кода между тегами «Head».

Теперь пришло время сделать каждый пост более заметным и заметным. В «style.css» добавьте следующие строки.

[NOEDIT]


body {
background-color: #99CCFF ;
}
form {
text-align: center;
margin-left: 300px;
margin-right: 300px;
}
.microBlog {
text-align: center;
margin-left: 300px;
margin-right: 300px;
margin-bottom: 10px;
border-style:solid;
border-width:5px;
}

[/NOEDIT]

Я не буду оскорблять ваш разум, объясняя построчно, что это делает. Вы можете, вероятно, решить это, просто прочитав это. Мы дали каждому посту небольшое отступление, чтобы оно было относительно центрировано на экране. Мы также дали ему границу и выровняли форму по центру экрана.

Это производит что-то похожее на это.
Учимся строить с помощью PHP: ускоренный курс php building 20
Круто, верно?

Теперь, в нашей предпоследней главе, мы собираемся объединить все, что мы узнали до сих пор, и посмотрим, как мы можем обрабатывать логины.

6. Логины и аутентификация

Давайте представим, что мы хотим, чтобы только один человек мог публиковать обновления на нашем сайте. Как будто мы создаем очень личный твиттер.
Учимся строить с помощью PHP: ускоренный курс php building 21

6.1 Таблица пользователей

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

[NOEDIT]


CREATE TABLE Credentials (
username varchar(255),
password varchar(255),
PRIMARY KEY (username)
);

[/NOEDIT]

Как и раньше, запустите это для вашей базы данных, либо через терминал, либо через PHPMyAdmin.
Учимся строить с помощью PHP: ускоренный курс php building 22

6.2 Сессии PHP

Теперь нам нужно обработать логины и регистрации. Мы делаем это с помощью PHP-сессий. Способ, которым они работают, достаточно прост. У вас есть несколько переменных, которые присутствуют в веб-приложении, и они могут находиться в состоянии присутствия или нет, в зависимости от того, вошел ли пользователь в систему или нет.

Прежде чем вы сможете обрабатывать сеансы, вы должны сначала инициализировать сеанс. Добавьте эту строку в начало index.php.

Эта строка должна появляться в каждом файле, который обращается к сеансу.

Теперь нам нужно убедиться, что форма отправки сообщения видна только тем, кто вошел в систему. Замените форму, которую мы создали ранее, следующими строками кода.

[NOEDIT]



’;
}
?>

[/NOEDIT]

$ _SESSION [‘loggedin’] является переменной сеанса. Когда он установлен, пользователь сможет видеть форму, используемую для создания сообщений. Давайте добавим что-то еще.

[NOEDIT]


else {
echo ‘
Username:  
Password: ’; }

[/NOEDIT]

Когда вы перейдете к localhost / index.php сейчас, вы увидите, что вы больше не можете публиковать статус, и вам предлагается войти в систему. Это работает!

Но сначала нам нужно создать учетную запись для входа в систему. Итак, давайте добавим следующие строки на нашу страницу индекса.

[NOEDIT]


if (isset($_SESSION['loggedin'])){
echo 'Log Out';
} else {
echo 'Register';
}

[/NOEDIT]

Если наш пользователь вошел в систему, ему будет предоставлена ​​возможность выйти из системы. Аналогичным образом, если наш пользователь не вошел в систему, ему будет предоставлена ​​возможность зарегистрироваться.

Теперь нам нужно создать форму регистрации. Создайте новый файл с именем register.php и добавьте следующее.

[NOEDIT]


Register

Register

Username:

Password:

[/NOEDIT]

Пока вы это делаете, добавьте следующие строки в style.css.

[NOEDIT]


h2 {
text-align: center;
}

[/NOEDIT]

6.3 Регистрация пользователей

Теперь нам нужно добавить логику для регистрации пользователя. Создайте новый файл с именем registerForm.php и добавьте следующие строки.

[NOEDIT]


$username,
'password' => $hash
));
header('Location: http://localhost:8888/index.php');
?>

[/NOEDIT]

Многое из этого должно быть довольно знакомым, но кое-что новое. Я объясню это сейчас.

Безопасность всегда на переднем крае разработчика приложений. Всегда бывает неловко, когда происходит серьезное нарушение безопасности, что приводит к утечке информации о клиентах. Доверьтесь мне. Это никогда не приятно.

И это не помогает людям перерабатывать пароли. Да, если ваш сайт взломан и кто-то получит доступ к паролям ваших пользователей, это может привести к взлому учетных записей ваших пользователей на других сайтах.

Хеширование позволяет вам зашифровать пароль с помощью криптографического алгоритма, что значительно затрудняет его возврат к исходному виду. Эта задача решается с помощью одной строки кода в PHP.

$ hash = password_hash ($ password, PASSWORD_DEFAULT);

Однако приведенного мною примера недостаточно. Пароли должны быть засолены. Вы спросите, что это? Ну, это еще одна линия защиты, которая делает практически невозможным расшифровку паролей вашего пользователя. Тем не менее, это слишком сложно для маленького гида. В результате я бы посоветовал вам продолжить чтение этой темы. Этот пост в блоге дает довольно солидное руководство по соляции паролей с помощью PHP [http://www.sitepoint.com/hashing-passwords-php-5-5-password-hashing-api/].

Наконец, у нас есть эта любопытная линия.

заголовок (‘Местоположение: http: // localhost: 8888 / index.php’);

Это выполняет одну задачу — перенаправить браузер на домашнюю страницу. Просто, правда.

6.4 Вход в систему

Создайте файл с именем «login.php» и добавьте следующие строки.

[NOEDIT]


[/NOEDIT]

Как и раньше, здесь нет ничего дико нового. Мы представили DB :: queryFirstRow. Тем не менее, это довольно прозрачно с тем, что он делает, и получает первую строку из базы данных. Это немного быстрее, чем DB :: query, и создает объект, который нам не нужно повторять.

Другая концепция, которая была представлена, — это функция password_verify (). Это позволяет нам сравнивать хешированный и хешированный пароль и видеть, совпадает ли он. Если это так, мы устанавливаем значение $ _SESSION [‘loggedin’] (в данном случае одно), а затем перенаправляем на домашнюю страницу, где мы затем можем выйти из системы и опубликовать новые твиты.

Теперь проверьте это, увидев, можете ли вы войти в систему и создать новый пост!
Учимся строить с помощью PHP: ускоренный курс построения php 23

6.5 Выход

Выйти легко. Создайте новый файл с именем «logout.php». Внутри добавьте следующие строки.

[NOEDIT]


[/NOEDIT]

Сеанс, который ранее содержал активированную переменную loggedin, теперь уничтожен, что фактически вывело нас из системы. После уничтожения пользователь перенаправляется на домашнюю страницу.

7. Заключение и дальнейшее чтение

Надеюсь, вам понравилось это краткое введение в язык программирования PHP.

Я знаю, что это был тур со свистом. Я знаю, это было кратко. Я знаю, что это было спешно. Несмотря на это, я надеюсь, что четко изложил все свои пункты. Если вы недовольны или у вас есть дополнительные вопросы, пожалуйста, свяжитесь со мной. Мой адрес электронной почты — me@matthewhughes.co.uk, со мной также можно связаться через Twitter. Мое имя пользователя @matthewhughes, и я всегда рад ответить на отзывы читателей.

Прежде чем мы закончим, я хочу затронуть еще пару вопросов.

Во-первых, язык программирования PHP — потрясающий, мощный инструмент. Если вы хотите продолжить чтение, ознакомьтесь с PHP «Правильный путь» и «Программирование PHP» от O’Reilly. Оба являются удивительными ресурсами, и настоятельно рекомендуется.

Мои коллеги из MakeUseOf также ранее рекомендовали некоторые бесплатные ресурсы для изучения PHP

,

Наконец, исходный код этого проекта доступен на моем личном Github. Вы можете найти хранилище здесь. Если вы не уверены, что такое Git, ознакомьтесь с этой статьей о контроле версий Git.

, Если вы не знаете, как использовать Github, ознакомьтесь с Git Real от CodeSchool. Он быстро поднимет вам скорость, и это бесплатно.

Ссылка на основную публикацию
Adblock
detector