admin / 27.08.2018
Содержание
MySQL — это один из типов реляционных баз данных. MySQL представляет собой сервер, к которому могут подключаться различные пользователи.
Вы когда к интернету подключаетесь, вы же вводите логин и пароль, а также имя сервера к которому подключаетесь? При работе с MySQL используется такая же система.
Ещё один момент: что такое реляционная база данных? Реляционная — значит основанная на таблицах. Знаменитый редактор электронных таблиц Excel от Microsoft фактически является редактором реляционных баз данных.
Для подключения к серверу MySQL в PHP используется функция . Данная функция получает три аргумента: имя сервера, имя пользователя и пароль.
Функция возвращает идентификатор подключения, его сохраняют в переменной и в дальнейшем используют для работы с базами данных.
Код подключения к серверу MySQL:
В данном случае я работаю на локальном компьютере на Denwere, поэтому имя хоста localhost, имя пользователя root, а пароля нет.
Соединение также нужно закрыть, после завершения работы с MySQL. Для закрытия соединения используется функция . Расширяем пример:
Тут мы проверели идентификатор подключения на истинность, если с нашим подключением что-то не так, то и программа выполняться не будет, функция остановит её выполнение и выведет в браузер сообщение об ошибке.
Для проверки подключения используются следующие функции:
Функция возвращает строку, содержащую тип используемого соединения.
Также обратите внимание, при помощи команды я все параметры подключения сохранил в константах. Когда вы будете писать большие проекты, и подключатся к серверу MySQL будут много файлов, то удобно хранить параметры соединения в отдельном файле и вставлять его при помощи функции или .
На сервере MySQL может быть несколько баз данных. Первым делом нам нужно выбрать для работы нужную нам базу. В PHP для этого в функции есть ещё один параметр — имя базы данных.
Я создал у себя на компьютере через phpMyAdmin с именем tester. Подключаемся к ней:
Итак, мы выбрали для работы базу данных. Но как нам известно, реляционная база данных состоит из таблиц, а в нашей базе данных таблиц пока что нет. База данных создаётся пустая, без таблиц. Таблицы в неё нужно добавить отдельно. Вот давайте добавим в неё таблицу средствами PHP.
В названии баз данных MySQL часть SQL обозначает Structured Query Language, что переводится как структурированный язык запросов. На языке SQL мы будем писать запросы и из программы PHP посылать их серверу MySQL.
Чтобы создать таблицу нам просто нужно указать команду . Давайте создадим таблицу с именем users в столбцах которой будут храниться логины (столбец login) и пароли (столбец password) пользователей.
В этом коде мы присвоили переменной строку текста, которая представляет собой запрос SQL. Мы создаём таблицу с именем users, которая содержит два столбца login и password, у обоих тип данных VARCHAR(20). О типах данных мы поговорим позже, сейчас только отмечу, что VARCHAR(20) — это строка максимальной длины 20 символов.
Чтобы отправить наш запрос на сервер MySQL мы используем PHP функцию . Эта функция возвращает положительное число, если операция прошла успешно и false, если произошла ошибка (синтаксис запроса ошибочный или у программы нет прав на выполнение запроса).
Запрос SQL не обязательно записывать в переменную, его можно сразу записать как аргумент функции . Просто так код выллядит читабельней.
У этого скрипта есть один недостаток — он ничего не выводит в браузер. Давайте добавим сообщение:
Если мы повторно запустим этот скрипт на выполнение, то увидим в браузере сообщение: «Таблица не создана». Дело в том, что таблица была создана при первом запуске, а повторно невозможно создать таблицу с таким же именем. Мы столкнулись с ситуацией возникновения ошибки, значит настало время поговорить об обработке ошибок при работе с MySQL.
При отладке программы нам может понадобиться точная информация о ошибке. Когда в MySQL происходит ошибка, то сервер базы данных устанавливает номер ошибки и строку с её описанием. Для доступа к этим данным в PHP есть специальные функции.
Теперь давайте добавим функцию в наш скрипт:
Теперь наш скрипт вернёт в браузер строку: «Таблица не создана: Table ‘users’ already exists».
Итак, мы сейчас имеем не нужную нам таблицу. Пришло время научиться удалять таблицы из базы данных.
Для удаления таблицы используется команда , за которой следует имя таблицы.
Итак, мы освоили основы MySQL. Что мы научились делать:
Теперь нужно идти дальше. В следующем уроке мы будем расширять наши знания в области запросов к MySQL. Мы научимся добавлять строки в таблицу, обновлять данные в уже существующих строках и проводить ещё некоторые операции.
Потом мы подробно рассмотрим типы данных MySQL.
Далее мы научимся извлекать данные из таблиц MySQL, это важный урок, но не спешите его читать, сначала освойте все предыдущие уроки.
Читаем следующий урок: запросы MySQL.
Лабораторная работа №11
Цель работы: формирование умений использования PHP
Поясняющая информация
РНР — это действующий на стороне сервера встраиваемый в HTML язык, имеющий синтаксис, близкий к языку Си. Язык РНР дает возможность вставлять в файлы HTML инструкции языка PHP для создания динамического содержания. Эти инструкции обрабатывает препроцессор-интерпретатор РНР и заменяет их тем содержимым, которое производит этот код. Стандартное расширение файла с PHP-программой — php.
Принцип такой же, как и с SSI.
Синтаксис PHP
PHP-код включаются в html-код в следующем виде:
<?PHP текст_кода ?>
или
<?PHP
текст_кода;
?>
Например, вставка содержимого файла будет выглядеть так:
<?PHP include "ssi/top.php"; ?>
Коментарии
PHP поддерживает комментарии ‘C’, ‘C++’ и оболочки Unix.
Например:
<?php
echo "This is a test"; // Это однострочный комментарий в стиле c++
/* Это многострочный комментарий,
это ещё одна его строка */
echo "This is yet another test";
echo "One Final Test"; # Это комментарий в shell-стиле
?>
echo
<?php echo "Эта информация будет выведена в HTML";?>
Присвоение значений переменным
Переменные в программах на PHP, отделяются символами $.
$city = "Kazan";
city — переменная
Kazan — значение
Некоторые операции
инкремента/декремента;
++$a Pre-increment Увеличивает $a на 1, затем возвращает $a.
$a++ Post-increment Возвращает $a, затем увеличивает $a на 1.
—$a Pre-decrement Уменьшает $a на 1, затем возвращает $a.
$a— Post-decrement Возвращает $a, затем уменьшает $a на 1.
арифметические:
$a + $b Сложение Сумма $a и $b.
$a — $b Вычитание Разность $a и $b.
$a * $b Умножение Произведение $a и $b.
$a / $b Деление Частное от деления $a на $b.
$a % $b Modulus Целочисленный остаток от деления $a на $b.
Выражения сравнения вычисляются в 0 или 1, означая FALSE или TRUE (соответственно). PHP поддерживает > (больше), >= (больше или равно), == (равно), != (не равно), < (меньше) и <= (меньше или равно).
Эти выражения чаще всего используются внутри условных операторов, таких как if.
сравнения:
$a == $b равно TRUE, если $a равно $b.
$a != $b не равно TRUE, если $a не равно $b.
$a <> $b не равно TRUE, если $a не равно $b.
$a < $b меньше TRUE, если $a строго меньше $b.
$a > $b больше TRUE, если $a строго больше $b.
$a <= $b меньше или равно TRUE, если $a меньше или равно $b.
$a >= $b больше или равно TRUE, если $a больше или равно $b.
строковые:
Имеются две строковые операции. Первая — операция (‘.’), которая возвращает объединение из правого и левого аргументов. Вторая — операция присвоения (‘.=’), которая присоединяет правый аргумент в левому аргументу.
$a = "Hello ";
$b = $a . "World!"; // теперь $b содержит "Hello World!"
$a = "Hello ";
$a .= "World!"; // теперь $a содержит "Hello World!"
Некоторые операторы
if/else
if ($a > $b) {
print "a больше чем b";
} else {
print "a не больше чем b";
}
while
$i = 1;
while ($i <= 10) {
print $i++; /* будет печататься значение $i++ до тех пор пока $i не больше 10 */
for
for ($i = 1; $i <= 10; $i++) {
print $i; /* будет выполнятся цикл от $i=1 $i <= 10 с шагом $i++ */
}
Установка cookie с помощью PHP.
setcookie — отправляет куки.
Вызовы этой функции должен быть перед тэгами <html> или <head>!!!
Синтаксис:
int setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
Пример:
setcookie ("student", "pupkin");
Получение и использование cookie сервером с помощью PHP.
После того как куки установлены, доступ к ним может быть получен при загрузке страницы через массив $_COOKIE
Cookie автоматически декодируется и присваивается переменной с тем же именем, что и имя куки. Для просмотра содержимого нашей тестовой куки в скрипте просто используйте один из следующих примеров:
echo $student;
echo $_COOKIE["student"];
Необходимые компоненты для создания счетчика каждой страницы
Счетчик должен вестись для каждой страницы, значит нужно хранить значения для каждой страницы отдельно, будем хранить их в отдельном файле.
Так как файлов будет много, создадим для них отдельный каталог на локальном диске /www/students/group/login/counter.
Чтобы его использовать в программе присвоим переменной $counter_path путь к этому каталогу.
Пример:
$counter_path = "путь к вашему каталогу";
Для автоматического формирования имени файлов для каждой страницы будем использовать URI этой страницы. Но в URI нам надо изменить все "/" на "_", потому что имя файла не может содержать /.
str_replace("что меняем","на что меняем", строка в которой производится замена) — функция замены
getenv("переменной окружения") — функция получает значение переменной окружения.
REQUEST_URI — переменная окружения URI
Присвоим исправленный URI переменной $count_page, т.е.
имя создаваемого файла.
Пример:
$count_page = str_replace("что меняем","на что меняем", URI этой страницы);
getenv("REQUEST_URI") — URI этой страницы
Если файл ($count_page) уже существует, то есть страница посещалась ранее, то нужно считать значение счётчика из файла и увеличить его на единицу.
file("путь к каталогу/имя файла") — функция считывает содержимое текстового файла в массив, каждый элемент массива соответствует строке файла с символом ‘\n’
Откроим файл, и присвоим значения переменной $contents
Пример:
$contents = @file("путь к каталогу/имя файла")
$count = $contents[0] + 1;
Перед вызовом функции file(…) стоит знак ‘@’ — это сделано для того, чтобы PHP не выдавал предупреждения, если файл отсутствует.
Если файл не существует, то есть мы на этой странице впервые, то присвоить счётчику единичное значение.
Обработка этого условия должна выглядеть так:
if (присвоение содержимого файла переменной $contents) {
увеличение счетчика на 1
} else {
присвоить счётчику единичное значение
}
Теперь откроем файл для записи нового значения счётчика
fopen("/путь к каталогу/имя файла", "w") — открывает файл или URL.
Параметр ‘w’ означает — Открыть только для записи; поместить указатель в начало файла и усечь файл до нулевой длины. Если файл не существует, делается попытка создать его.
Создадим указатель файла
Пример:
$file = fopen("/путь к каталогу/имя файла", "w");
запишем новое значение счётчика
Пример:
fwrite (указатель файла, строка для записи в файл) — функция записи в файл
Закроим файл
fclose (указатель файла) — закрывает открытый указатель файла
После этого нужно вывести значение счетчика, применив echo.
Практические задания
Задание 1
Создать новую страницу применив PHP вместо SSI.(Страница должна иметь вид главной страницы небольшого сайта)
Сделайте, чтобы cookie передавались не с помощью META — данных, а с помощью setcookie (указав свою фамилию, имя).
Проверьте работоспособность на сервере.
Укажите, в виде комментариев, для чего предназначена каждая PHP команда.
Задание 2
Создайте счетчик посещаемости страниц (файл count.inc).
Для записи файлов со значением счетчика, используйте каталог counter (он у вас уже создан!!!).
Вставьте его с помощью include в (Фамилия).php.
Проверьте работоспособность на сервере.
Укажите, в виде комментариев, для чего предназначена каждая PHP команда.
К сдаче лабораторной предоставляются: работающие страницы на сервере с комментариями указанных тегов и их свойств в исходнике.
Исходники
Исходники PHP
Здесь представлены примеры нескольких скриптов, написанных на языке PHP, с их исходным кодом. Если вы уже познакомились с азами данного языка и можете уже ориентироваться в нём – то эти «исходники» могут оказать полезными для вас. На их примере можно хорошо понять общее функционирование простых игр и прочих программ, после чего вы и сами сможете их написать. Данные исходники были когда-то написаны людьми для учебной работы или просто саморазвития, после чего по мере устарения материала они выложили его на просторы интернета для всеобщего обозрения, так что если вам этого мало, то в интернете можно найти исходные коды программ гораздо серьёзнее этих.
«Простые часы»
Скачать: [clock.zip»]
«Счётчик посетителей»
Скачать: [counter.zip]
«Доска новостей»
Скачать: [docknews.zip]
«PHP форум»
Скачать: [exbbforum.zip]
«Обработка формы для отправления письма»
Скачать: [msg.zip]
«Счётчик онлайн-посетителей»
Скачать: [onlinecounter.zip]
«Простой форум»
Скачать: [phpforum.zip]
«Счётчик посетителей с выводом статистики»
Скачать: [statcounter.zip]
Последнее обновление: 1.11.2015
Сейчас мы создадим небольшой сайтик, который призван дать начальное понимание работы с PHP.
Для создания программ на PHP нам потребуется текстовый редактор. Наиболее популярным на сегодняшний день является программа Notepad++
Перейдем к ранее созданному каталогу C:\localhost, который будет хранить все документы сайта.
Создадим текстовый файл и назовем его index.html. Откроем его в текстовом редакторе и добавим в него следующий код:
<!DOCTYPE html> <html> <head> <title>Первый сайт на PHP</title> <meta charset=»utf-8″> </head> <body> <h2>Введи свои данные:</h2> <form action=»display.php» method=»POST»> <p>Введите имя: <input type=»text» name=»firstname» /></p> <p>Введите фамилию: <input type=»text» name=»lastname» /></p> <input type=»submit» value=»Отправить»> </form> </body> </html>
Код html содержит форму с двумя текстовыми полями. При нажатии на кнопку данные этой формы отсылаются скрипту display.php, так как он указан в атрибуте .
Теперь создадим этот скрипт, который будет обрабатывать данные. Добавим в папку C:\localhost новый текстовый файл. Переименуем его в display.php. По умолчанию файлы программ на php имеют расширение .php. Итак, добавим в файл display.php следующий код:
<!DOCTYPE html> <html> <head> <title>Первый сайт на PHP</title> <meta charset=»utf-8″> </head> <body> <?php $name = $_POST[«firstname»]; $surname = $_POST[«lastname»]; echo «Ваше имя: <b>».$name . » » . $surname . «</b>»; ?> </body> </html>
Здесь уже в разметке html идут вкрапления кода PHP. Для добавления выражений PHP на страницу используются теги , между которыми идут инструкции на языке PHP. В коде php мы получаем данные формы и выводим их на страницу.
Каждое отдельное выражение PHP должно завершаться точкой с запятой. В данном случае у нас три выражения. Два из них получают переданные данные формы, например, .
— это переменная, которая будет хранить некоторое значение. Все переменные в PHP предваряются знаком $. И так как форма на странице index.html использует для отправки метод POST, то с помощью выражения мы можем получить значение, которое было введено в текстовое поле с атрибутом . И это значение попадает в переменную $name.
С помощью оператора echo можно вывести на страницу любое значение или текст, которые идут после оператора. В данном случае () с помощью знака точки текст в кавычках соединяется со значениями переменных $name и $surname и выводится на страницу.
Теперь обратимся к форме ввода, перейдя по адресу http://localhost:8080:
Введем какие-нибудь данные и нажмем на кнопку отправить:
Итак, у нас сработал скрипт display.php, который получил и вывел отправленные данные на страницу.
НазадСодержаниеВперед
Конечно для создания простого сайта можно использовать CMS Joomla или просто сделать сайт на WordPress, но зачем стрелять по комарам из пистолета?
Для этих целей вполне подойдет статический сайт на HTML, но ведь иногда заказчик хочет расширить функционал своего сайта, добавить новые страницы, изменить дизайн и т. п. Поэтому уже изначально я начинаю разрабатывать динамический движок сайта, используя язык программирования PHP.
Именно PHP лежит в основе разработок всех известных и популярных CMS. Поэтому знать его основы я думаю не помешает любому веб-мастеру, ведь тогда он будет более свободно и уверенно манипулировать движком своей CMS.
В первую очередь, при разработке сайта на PHP, основной акцент должен ставиться именно на безопасность. К безопасности скриптов можно отнести:
1. Инициализация переменных;
2. Проверка параметров передаваемых пользователем;
3.
Права файлов сценариев;
4. И еще много, много чего другого.
Но так, как эта статья посвящена созданию простого сайта на PHP, то здесь будут приводится самые основы безопасности сценариев.
Как уже многим известно, структура сайта обычно состоит из основной части, заголовка (хэдера) и подвала (футера). Для начала мы создадим два файла footer.htm и top.htm это и будут наши подключаемые заголовок и подвал, а потом поместим их в папку templ. Для их подключения создадим файл option.php с таким содержанием:
Дальше нам необходимо создать два скрипта, которые будут подключать наши .htm файлы к основному сценарию index.php. Назовем их maketop.php и makefooter.php. У них будет одинаковый функционал, а именно они будут инклудить переменные из option.php. Примерно вот таким образом:
А теперь подключим эти файлы к общему скрипту index.php. А вот и простой пример, как это можно сделать:
Вот у нас и получился простой движок сайта визитки на PHP. Но с точки зрения безопасности он написан не правильно. Ведь ничто не помешает хакеру обратиться к файлу maketop.php напрямую, через строку браузера. Следующий пример подключает и выводит на экран файл локальной конфигурации веб-сервера .htaccess а можно посмотреть и другие, не менее интересные файлы:)
http://localhost/my-server/makefooter.php?pagefooter=.htaccess
Здесь злоумышленник может использовать метод Get, который позволяет обращаться к файлам на сервере через адресную строку браузера. Для того, что-бы защитить свой сценарий от взлома необходимо запретить изменение переменных. В нашем случае необходимо запретить прямой вызов промежуточных файлов, которые могут содержать код PHP. Ну а сделать это можно следующим образом. Для этого необходимо в коде шаблона, в самом начале веб-страницы объявить константу равную единице, и теперь наш файл index.php будет выглядеть так:
А в каждом промежуточном скрипте, а именно maketop.php и makefooter.php необходимо сделать проверку, на наличие этой константы, т. е. если она не существует (её нет), значит файл не подключается из шаблона, а вызывается напрямую через строку URL. Для этого в скрипты maketop.php и makefooter.php необходимо добавить код:
Примерно такую защиту можно использовать для того, что-бы запретить вызов промежуточных PHP скриптов, напрямую через URL.
По материал сайта WordPress&Master-It
Создание сайта на php
Безопасность php сценариев
У нас вы можете найти для своего проекта бесплатные скрипты php, получить консультацию по их использованию и модернизации – если это даже не получится сделать на форуме, всегда можно обратиться к разработчику. Все исходные коды рассортированы по категориям в каталог php скриптов. Здесь можно найти не только готовые php скрипты, но и примеры php скриптов, на основе которых вы могли бы сделать что-то своё. Архив php скриптов регулярно пополняется как свежими кодами, так и найденными на просторах сети, которые заслуженно относятся к категории «лучшие php скрипты».
Вне зависимости от того, профессионал вы в области программирования на php или же начинающий сайтостроитель, вам обязательно может понадобиться скачать php скрипты. Ведь было бы странно стремиться придумывать php скрипты для сайта, если готовые php скрипты уже разработаны кем-то ещё и любезно выложены на наш сайт.
Если вы искали php скрипты для сайта, то вы попали по нужному адресу.
К сожалению, сейчас в Интернет можно наткнуться на множество объявлений «бесплатные php скрипты скачать», однако, когда вы переходите по ссылке, вы попадаете (в лучшем случае) в магазин готовых скриптов php, либо на сайт разработчика, который предложит создать требуемый вам код за деньги.
Так зачем же платить, если можно скрипты php скачать бесплатно на нашем сайте. Естественно, если у вас есть чем поделиться, то вы тоже можете пополнить наш архив php скриптов, завоевав, таким образом, благодарность коллег и уважение в среде гуру. В нашем каталоге можно найти простые php скрипты, суть которых заключается выводе определённых форм или надписей на сайт, а можно найти и настоящие жемчужины со сложным многостраничным кодом, который обошёлся бы вам в кругленькую сумму, если бы вы заказали создание подобного скрипта в специализированной фирме.
FILED UNDER : IT