Александр Сивичев
Самоучитель PHP+MySQL. Для тех, кто вчера купил компьютер

Глава 1: Введение в PHP

1.1 Что такое PHP?

История языка

PHP (Hypertext Preprocessor) – это язык программирования, который изначально был разработан в 1994 году датским программистом Расмусом Лердорфом как набор CGI-скриптов для мониторинга посещаемости веб-сайта.

Что такое CGI?

CGI (Common Gateway Interface) – это стандартный интерфейс для взаимодействия веб-сервера с внешними программами или скриптами, такими как PHP, которые генерируют динамический контент.

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

Основные особенности PHP

Серверный язык: PHP используется для обработки данных на сервере, генерируя HTML, который затем отправляется на клиентскую сторону.

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

Кросс-платформенность: PHP работает на различных операционных системах, включая Windows, Linux, macOS.

Интеграция с базами данных: PHP отлично работает с такими системами управления базами данных, как MySQL, PostgreSQL, SQLite.

Что такое база данных?

База данных – это организованный набор данных, который может быть легко доступен, управляем и обновляем. Системы управления базами данных (СУБД) позволяют эффективно работать с такими базами.

MySQL, PostgreSQL и SQLite: отличия

MySQL – это популярная реляционная СУБД с открытым исходным кодом, ориентированная на скорость работы и широкое распространение. Используется во многих веб-приложениях, например, в сочетании с PHP.

PostgreSQL – это более мощная реляционная СУБД с поддержкой сложных запросов и стандартов SQL. Она известна своей надежностью и расширяемостью.

SQLite – это легковесная СУБД, встроенная в приложения. SQLite не требует отдельного сервера, и базы данных хранятся в одном файле. Используется, например, в мобильных приложениях.

Применение PHP в веб-разработке

PHP используется для:

Создания динамических веб-страниц.

Разработки веб-приложений (например, CMS, e-commerce).

Создания API для взаимодействия с другими системами.

Работы с базами данных (создание и обработка запросов к БД).

1.2 Установка и настройка PHP

Установка PHP на различных операционных системах

Windows:

Для Windows самым простым способом является установка XAMPP или WAMP, которые включают PHP, Apache и MySQL в одном пакете.

Также можно скачать PHP с официального сайта (php.net) и установить его вручную, но для новичков лучше использовать готовые решения, такие как XAMPP.

Linux (Ubuntu/Debian):

На Ubuntu можно установить PHP с помощью команды:

sudo apt update

sudo apt install php libapache2-mod-php php-mysql

После этого нужно перезапустить Apache:

sudo systemctl restart apache2

macOS:

На macOS проще всего установить PHP с помощью Homebrew:

brew install php

Настройка веб-сервера (например, Apache, Nginx)

Apache:

Убедитесь, что модуль PHP включен в конфигурации Apache.

Для этого в файле конфигурации Apache (например, /etc/apache2/httpd.conf) нужно убедиться, что строка:

LoadModule php_module libexec/apache2/libphp7.so

После этого перезапустите Apache:

sudo systemctl restart apache2

Nginx:

Для использования PHP с Nginx, потребуется настроить PHP-FPM.

Нужно указать Nginx, что запросы PHP следует передавать на PHP-FPM через сокет или TCP.

Проверка установки

После установки PHP можно проверить его версию с помощью команды:

php -v

Также создайте файл info.php в вашем веб-каталоге с содержимым:

<?php

phpinfo();

?>

Затем откройте этот файл в браузере (например, http://localhost/info.php) – если PHP настроен правильно, вы увидите информацию о вашей установке PHP.

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

1.3 Первый скрипт на PHP

Основы синтаксиса

PHP используется внутри HTML-кода с помощью тега <?php … ?>. Пример простого скрипта:

<?php

echo "Hello, World!";

?>

Этот скрипт выведет текст "Hello, World!" на экран.

Вывод данных с помощью echo и print

echo – это конструкция, которая выводит одну или несколько строк. Она не возвращает значение и может быть использована без скобок.

echo "Hello, PHP!";

print – аналогична echo, но возвращает значение (всегда 1), и её можно использовать как часть выражений.

print "Hello, PHP!";

Можно также выводить переменные:

<?php

$name = "Alice";

echo "Hello, $name!";

?>

Это выведет: Hello, Alice!

Глава 2: Основы PHP

2.1 Переменные и типы данных

Что такое переменная?

Переменная – это именованный контейнер, который используется для хранения данных в программе. В PHP переменные начинаются с символа $, например: $name, $age.

Строки, числа, массивы

Строки – это последовательности символов, которые могут содержать текст, цифры, пробелы и специальные символы. В PHP строки могут быть заключены в одинарные или двойные кавычки.

Пример:

$text = "Hello, World!";

$singleQuoted = 'Hello, PHP!';

Числа – это числовые значения, которые могут быть целыми или с плавающей запятой (дробными).

Пример:

$integer = 10; // целое число

$float = 10.5; // число с плавающей запятой

Массивы – это коллекции данных, которые могут содержать несколько элементов, доступных по индексам или ключам.

Пример:

$colors = array("red", "green", "blue");

$person = array("name" => "Alice", "age" => 25);

Типы данных в PHP

PHP поддерживает несколько основных типов данных:

Строки (string): Текстовые данные.

Числа (integer, float): Целые числа и числа с плавающей запятой.

Массивы (array): Наборы данных.

Логический тип (boolean): Значения true или false.

Объекты (object): Инстансы классов.

NULL: Специальное значение для пустой переменной.

Преобразование типов

Приведение типов – это процесс преобразования значения одной переменной в другой тип данных. PHP выполняет неявное преобразование типов в некоторых ситуациях, а также предоставляет функции для явного преобразования.

Пример неявного преобразования:

$number = "10"; // строка

$sum = $number + 5; // строка автоматически преобразуется в число

Пример явного преобразования:

$float = 10.5;

$integer = (int) $float; // преобразование в целое число

2.2 Операторы

Арифметические операторы

Арифметические операторы выполняют математические операции:

+ – сложение.

– – вычитание.

* – умножение.

/ – деление.

% – остаток от деления (модуль).

Пример:

$a = 10;

$b = 5;

$result = $a + $b; // результат будет 15

Логические операторы

Логические операторы используются для выполнения логических операций:

&& – логическое "И".

|| – логическое "ИЛИ".

! – логическое "НЕ".

Пример:

$a = true;

$b = false;

$result = $a && $b; // результат будет false

Операторы сравнения

Операторы сравнения используются для сравнения значений:

== – равно.

=== – строго равно (сравнивает и типы данных).

!= – не равно.

!== – строго не равно.

> – больше.

< – меньше.

>= – больше или равно.

<= – меньше или равно.

Пример:

$a = 10;

$b = 20;

$result = $a < $b; // результат будет true

2.3 Условные операторы

Оператор if, else, elseif

Условные операторы используются для выполнения разных блоков кода в зависимости от условий.

Пример:

$age = 18;

if ($age >= 18) {

echo "Вы взрослый.";

} else {

echo "Вы несовершеннолетний.";

}

Что такое условие?

Условие – это выражение, которое возвращает логическое значение (истину или ложь). Условия могут быть выражены через операторы сравнения и логические операторы.

Тернарный оператор

Тернарный оператор – это сокращенная форма оператора if-else, который позволяет записывать условие в одну строку:

$age = 18;

echo ($age >= 18) ? "Взрослый" : "Несовершеннолетний";

// результат будет "Взрослый"

2.4 Циклы

Цикл for

Цикл for используется для многократного выполнения блока кода с заранее определённым количеством повторений:

for ($i = 0; $i < 5; $i++) {

echo $i; // выведет 0, 1, 2, 3, 4

}

Цикл while

Цикл while выполняет блок кода, пока условие истинно:

$i = 0;

while ($i < 5) {

echo $i; // выведет 0, 1, 2, 3, 4

$i++;

}

Цикл do-while

Цикл do-while выполняет блок кода хотя бы один раз, а затем проверяет условие:

$i = 0;

do {

echo $i; // выведет 0, 1, 2, 3, 4

$i++;

} while ($i < 5);

Циклы с массивами (foreach)

Цикл foreach используется для перебора элементов массива:

$colors = array("red", "green", "blue");

foreach ($colors as $color) {

echo $color; // выведет "red", "green", "blue"

}

Глава 3: Работа с формами и данными

3.1 Получение данных из формы

Что такое форма?

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

Метод GET и POST

Когда форма отправляется, данные могут передаваться с использованием двух основных методов:

GET – данные передаются через URL в строке запроса. Этот метод используется, когда данные не являются конфиденциальными или объемными (например, поисковые запросы).

Пример URL с методом GET:

https://example.com/form.php?name=John&age=30

POST – данные передаются в теле HTTP-запроса, что делает их невидимыми в URL. Этот метод предпочтителен для отправки чувствительной или объемной информации, например, при регистрации пользователей.

Пример:

<form action="submit.php" method="POST">

<input type="text" name="name">

<input type="password" name="password">

<input type="submit" value="Submit">

</form>

Суперглобальные массивы $_GET, $_POST

Суперглобальные массивы – это специальные массивы, которые содержат данные, переданные через различные механизмы запроса. В PHP существуют следующие суперглобальные массивы:

$_GET – используется для доступа к данным, переданным методом GET.

Пример:

$name = $_GET['name'];

$_POST – используется для доступа к данным, переданным методом POST.

Пример:

$name = $_POST['name'];

3.2 Обработка данных

Валидация и фильтрация данных

Валидация данных – это процесс проверки данных на соответствие определённым требованиям (например, проверка, что введённый email имеет правильный формат).

Фильтрация данных – это процесс изменения или удаления нежелательных символов из данных (например, удаление лишних пробелов).

В PHP для валидации и фильтрации данных существуют встроенные функции:

filter_var() – используется для фильтрации и валидации данных.

Пример валидации email:

$email = "user@example.com";

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

echo "Email is valid!";

} else {

echo "Invalid email!";

}

filter_input() – используется для фильтрации данных из суперглобальных массивов.

Пример:

$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);

Что такое SQL-инъекция?

SQL-инъекция – это тип атаки, при которой злоумышленник вставляет или «вставляет» произвольный SQL-код в запросы к базе данных с целью его выполнения. Это может привести к утечке, модификации или уничтожению данных.

Защита от XSS и SQL-инъекций

XSS (Cross-Site Scripting) – это атака, при которой вредоносный скрипт внедряется на веб-страницу с целью выполнения в браузере пользователя. Чтобы предотвратить XSS-атаки, необходимо использовать функции экранирования вывода, такие как htmlspecialchars().

Пример:

echo htmlspecialchars($user_input);

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.