Обработка запросов с помощью php реферат

Обновлено: 28.06.2024

Internet – всемирная сеть, которая объединяет множество компьютерных сетей различного уровня и отдельных компьютеров, обменивающих друг с другом информацией по каналам общественных телекоммуникаций на базе протоколов связи TCP/IP. Информация в Интернет хранится на серверах (сайтах). Серверы, объединенные высокоскоростными магистралями, составляют базовую часть сети Интернет. Доступ пользователей к информационным ресурсам Internet обычно осуществляется через провайдеров или корпоративную сеть.

Оглавление

Введение…………………………………………………………………………. 2
Язык программирования PHP
Основные понятия PHP……………………………………………..3
Основные отличия PHP от других языков, используемых
для web-разработки………………………………………………………. 3
Основные преимущества языка PHP……………………………….3
Язык запросов SQL
Основные понятия SQL…………………………………………….6
Возможности SQL…………………………………………………. 6
База данных MySQL
Основные понятия MySQL………………………………………….8
Использование MySQL……………………………………………. 8
Возможности MySQL……………………………………………….9
Заключение……………………………………………………………………….10
Список использованных источников………………………………………..….11

Файлы: 1 файл

Реферат по информатике.docx

  1. Язык программирования PHP
    1. Основные понятия PHP……………………………………………..3
    2. Основные отличия PHP от других языков, используемых
      1. Основные преимущества языка PHP……………………………….3
      1. Основные понятия SQL…………………………………………….6
      2. Возможности SQL…………………………………………………. 6
      1. Основные понятия MySQL………………………………………….8
      2. Использование MySQL……………………………………………. 8
      3. Возможности MySQL……………………………………………….9

      Список использованных источников………………………………………..…. 11

      Internet – всемирная сеть, которая объединяет множество компьютерных сетей различного уровня и отдельных компьютеров, обменивающих друг с другом информацией по каналам общественных телекоммуникаций на базе протоколов связи TCP/ IP. Информация в Интернет хранится на серверах (сайтах). Серверы, объединенные высокоскоростными магистралями, составляют базовую часть сети Интернет. Доступ пользователей к информационным ресурсам Internet обычно осуществляется через провайдеров или корпоративную сеть.

      1. Язык программирования PHP
        1. Основные понятия PHP

        PHP – это широко используемый язык сценариев общего назначения с открытым исходным кодом. PHP это язык программирования, специально разработанный для написания web-приложений (сценариев), исполняющихся на Web-сервере. PHP позволяет создавать качественные Web-приложения за очень короткие сроки, получая продукты, легко модифицируемые и поддерживаемые в будущем. PHP прост для освоения, и вместе с тем способен удовлетворить запросы профессиональных программистов [1].

        Аббревиатура PHP означает "Hypertext Preprocessor (Препроцессор Гипертекста)". Первоначально аббревиатура PHP означала "Personal Home Pages".

          1. Основные отличия PHP от других языков, используемых для

          Синтаксис языка берет начало из C, Java и Perl. Важным преимуществом языка PHP перед такими языками, как языков Perl и C заключается в возможности создания HTML документов с внедренными командами PHP. Подробнее об этой возможность смотрите здесь.

          Значительным отличием PHP от какого-либо кода, выполняющегося на стороне клиента, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. Язык PHP допускает возможность сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, таким образом клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта PHP [1].

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

          Практический характер РНР обусловлен пятью важными характеристиками:

          Язык PHP постоянно совершенствуется, и ему наверняка обеспечено долгое доминирование в области языков web-программирования, по крайней мере, в ближайшее время.

          Как правило, сейчас активно используются версии PHP4 и PHP5.

          Версия PHP3 уже практически не используется, поскольку значительно уступает по функциональности и производительности старшим версиям PHP.

          Принципиальным отличием PHP5 от PHP4 является новое ядро Zend Engine 2. В PHP5 объектная модель была значительно переработана, добавлено много новых возможностей, благодаря которым PHP5 получил некоторые черты таких объектно-ориентированных языков, как C++ и Java. Производительность встроенных стандартных функций PHP увеличилась на 40% и более [5].

          1. Язык запросов SQL
            1. Основные понятия SQL

            SQL (Structured Query Language, язык структурированных запросов) — это специальный язык, используемый для определения данных, доступа к данным и их обработки [2].

            Язык SQL относится к непроцедурным (nonprocedural) языкам — он лишь описывает нужные компоненты (например, таблицы) и желаемые результаты, не указывая, как именно эти результаты должны быть получены.

            Каждая реализация SQL является надстройкой над процессором базы данных (database engine), который интерпретирует операторы SQL и определяет порядок обращения к структурам БД для корректного и эффективного формирования желаемого результата.

            Стандарт SQL определяется ANSI — American National Standarts Institute (Американским Национальным Институтом Стандартов) и в настоящее время принят ISO — International Standarts Organization (Международной Организацией по Стандартизации) [4].

            SQL — непроцедурный язык: серверу базы данных сообщается, что нужно сделать и каким образом. Для обработки запроса сервер базы данных транслирует команды SQL во внутренние процедуры. Благодаря тому, что SQL скрывает детали обработки данных, его легко использовать [3].

            Что можно делать с помощью SQL:

            - SQL позволяет создавать таблицы данных.

            - SQL позволяет хранить данные.

            - SQL позволяет получать данные.

            - SQL позволяет изменять данные.

            - SQL позволяет изменять структуру таблиц.

            - SQL позволяет объединять данные.

            - SQL позволяет выполнять вычисления.

            - SQL позволяет обеспечивать защиту данных.

            Команды SQL разделяются на следующие группы:

            - Команды языка определения данных — DDL (Data Definition Language). Эти SQL команды можно использовать для создания, изменения и удаления различных объектов базы данных [5].

            - Команды языка управления данными — DCL (Data Control Language). С помощью этих SQL команд можно управлять доступом пользователей к базе данных и использовать конкретные данные (таблицы, представления и т.д.).

            - Команды языка управления транзакциями — TCL (Тгаnsасtiоn Соntrol Language). Эти SQL команды позволяют определить исход транзакции.

            - Команды языка манипулирования данными — DML (Data Manipulation Language). Эти SQL команды позволяют пользователю перемещать данные в базу данных и из нее.

            1. База данных MySQL
              1. Основные понятия MySQL

              Программное обеспечение MySQL представляет собой очень быстрый многопоточный, многопользовательский надежный SQL-сервер баз данных (SQL - язык структурированных запросов). Сервер MySQL предназначен как для критических по задачам производственных систем с большой нагрузкой, так и для встраивания в программное обеспечение массового распространения.

              Система управления базами данных.

              База данных представляет собой структурированную совокупность данных. Эти данные могут быть любыми - от простого списка предстоящих покупок до перечня экспонатов картинной галереи или огромного количества информации в корпоративной сети. Для записи, выборки и обработки данных, хранящихся в компьютерной базе данных, необходима система управления базой данных, каковой и является ПО MySQL. Поскольку компьютеры замечательно справляются с обработкой больших объемов данных, управление базами данных играет центральную роль в вычислениях. Реализовано такое управление может быть по-разному - как в виде отдельных утилит, так и в виде кода, входящего в состав других приложений [4].

              Система управления реляционными базами данных.

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

              MySQL является очень быстрым, надежным и легким в использовании. MySQL обладает также рядом удобных возможностей, разработанных в тесном контакте с пользователями. Первоначально сервер MySQL разрабатывался для управления большими базами данных с целью обеспечить более высокую скорость работы по сравнению с существующими на тот момент аналогами. И вот уже в течение нескольких лет данный сервер успешно используется в условиях промышленной эксплуатации с высокими требованиями. Несмотря на то, что MySQL постоянно совершенствуется, он уже сегодня обеспечивает широкий спектр полезных функций. Благодаря своей доступности, скорости и безопасности MySQL очень хорошо подходит для доступа к базам данных по Internet [3].

              Технические возможности СУБД MySQL

              ПО MySQL является системой клиент-сервер, которая содержит многопоточный SQL-сервер, обеспечивающий поддержку различных вычислительных машин баз данных, а также несколько различных клиентских программ и библиотек, средства администрирования и широкий спектр программных интерфейсов (API).

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

              На подобном сайте в зависимости от запроса пользователя можно генерировать различные страницы сайта. Отсюда следуют все остальные возможности языка:

              1) Возможность реализации регистрации и авторизации пользователя на сайте.

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

              Взаимодействие между клиентом и сервером начинается по инициативе клиента . Клиент запрашивает вид обслуживания, устанавливает сеанс, получает нужные ему результаты и сообщает об окончании работы.

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

              Логичнее всего устанавливать сервер на компьютере, входящем в какую-либо сеть, локальную или глобальную. Однако можно устанавливать сервер и на отдельно стоящий компьютер (тогда он будет являться одновременно и клиентом и сервером ).

              Существует множество типов серверов . Вот лишь некоторые из них.

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

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

              Далее в ходе лекции, говоря " сервер ", мы будем подразумевать web-сервер .

              В качестве примеров web-серверов можно привести сервер Apache группы Apache , Internet Information Server (IIS) компании Microsoft, SunOne фирмы Sun Microsystems, WebLogic фирмы BEA Systems, IAS (Inprise Application Server ) фирмы Borland, WebSphere фирмы IBM, OAS (Oracle Application Server ).

              Статистика использования ведущих web-серверов

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

              Протокол реализует принцип запрос/ответ . Запрашивающая программа– клиент инициирует взаимодействие с отвечающей программой– сервером , и посылает запрос, содержащий:

              Ответ сервера содержит:

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

              Давайте рассмотрим более подробно, в какой форме отправляются запросы на сервер .

              Форма запроса клиента

              Клиент отсылает серверу запрос в одной из двух форм: в полной или сокращенной. Запрос в первой форме называется соответственно полным запросом , а во второй форме – простым запросом.

              Простой запрос содержит метод доступа и адрес ресурса. Формально это можно записать так:

              В качестве метода могут быть указаны GET , POST , HEAD , PUT , DELETE и другие. О наиболее распространенных из них мы поговорим немного позже. В качестве запрашиваемого URL чаще всего используется URL -адрес ресурса.

              Пример простого запроса :

              Полный запрос содержит строку состояния, несколько заголовков (заголовок запроса, общий заголовок или заголовок содержания) и, возможно, тело запроса. Формально общий вид полного запроса можно записать так:

              В обеих формах запроса важное место занимает URL запрашиваемого ресурса. Чаще всего URL используется в виде URL -адреса ресурса. При обращении к серверу можно применять как полную форму URL , так и упрощенную.

              Полная форма содержит тип протокола доступа, адрес сервера ресурса и адрес ресурса на сервере (рисунок 4.2).

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

              Далее мы рассмотрим наиболее распространенные методы отправки запросов .

              Методы

              Существует разновидность метода GET – условный GET . Этот метод сообщает серверу о том, что на запрос нужно ответить, только если выполнено условие, содержащееся в поле if-Modified-Since заголовка запроса. Если говорить более точно, то тело ресурса передается в ответ на запрос, если этот ресурс изменялся после даты, указанной в if-Modified-Since.

              Метод HEAD аналогичен методу GET , только не возвращает тело ресурса и не имеет условного аналога. Метод HEAD используют для получения информации о ресурсе. Это может пригодиться, например, при решении задачи тестирования гипертекстовых ссылок.

              До сих пор мы только теоретизировали, знакомились с основными понятиями. Теперь пора научиться использовать все это на практике. Далее в лекции мы рассмотрим, как посылать запросы серверу и как обрабатывать его ответы.

              Использование HTML-форм для передачи данных на сервер

              Как передавать данные серверу ? Для этого в языке HTML есть специальная конструкция – формы. Формы предназначены для того, чтобы получать от пользователя информацию. Например, вам нужно знать логин и пароль пользователя для того, чтобы определить, на какие страницы сайта его можно допускать. Или вам необходимы личные данные пользователя, чтобы была возможность с ним связаться. Формы как раз и применяются для ввода такой информации. В них можно вводить текст или выбирать подходящие варианты из списка. Данные, записанные в форму, отправляются для обработки специальной программе (например, скрипту на PHP) на сервере . В зависимости от введенных пользователем данных эта программа может формировать различные web-страницы, отправлять запросы к базе данных, запускать различные приложения и т.п.

              Разберемся с синтаксисом HTML-форм . Возможно, многие с ним знакомы, но мы все же повторим основные моменты, поскольку это важно.

              Итак, для создания формы в языке HTML используется тег FORM . Внутри него находится одна или несколько команд INPUT . С помощью атрибутов action и method тега FORM задаются имя программы , которая будет обрабатывать данные формы, и метод запроса, соответственно. Команда INPUT определяет тип и различные характеристики запрашиваемой информации. Отправка данных формы происходит после нажатия кнопки input типа submit . Создадим форму для регистрации участников заочной школы программирования.

              После обработки браузером этот файл будет выглядеть примерно так:

              Вот так создаются и выглядят HTML-формы . Будем считать, что мы научились или вспомнили, как их создавать. Как мы видим, в форме можно указывать метод передачи данных . Посмотрим, что будет происходить, если указать метод GET или POST , и в чем будет разница.

              Для метода GET

              При отправке данных формы с помощью метода GET содержимое формы добавляется к URL после знака вопроса в виде пар имя=значения , объединенных с помощью амперсанда & :

              Здесь action – это URL -адрес программы, которая должна обрабатывать форму (это либо программа, заданная в атрибуте action тега form , либо сама текущая программа, если этот атрибут опущен). Имена name1 , name2 , name3 соответствуют именам элементов формы, а value1 , value2 , value3 – значениям этих элементов. Все специальные символы, включая = и & , в именах или значениях этих параметров будут закодированы. Поэтому не стоит использовать в названиях или значениях элементов формы эти символы и символы кириллицы в идентификаторах.

              Если в поле для ввода ввести какой-нибудь служебный символ, то он будет передан в его шестнадцатеричном коде, например, символ $ заменится на %24 . Так же передаются и русские буквы.

              Для полей ввода текста и пароля (это элементы input с атрибутом type=text и type=password ), значением будет то, что введет пользователь. Если пользователь ничего не вводит в такое поле, то в строке запроса будет присутствовать элемент name= , где name соответствует имени этого элемента формы.

              Для кнопок типа checkbox и radio button значение value определяется атрибутом VALUE в том случае, когда кнопка отмечена. Не отмеченные кнопки при составлении строки запроса игнорируются целиком. Несколько кнопок типа checkbox могут иметь один атрибут NAME (и различные VALUE ), если это необходимо. Кнопки типа radio button предназначены для одного из всех предложенных вариантов и поэтому должны иметь одинаковый атрибут NAME и различные атрибуты VALUE .

              В принципе создавать HTML-форму для передачи данных методом GET не обязательно. Можно просто добавить в строку URL нужные переменные и их значения.

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

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

              Для метода POST

              Содержимое формы кодируется точно так же, как для метода GET (см. выше), но вместо добавления строки к URL содержимое запроса посылается блоком данных как часть операции POST . Если присутствует атрибут ACTION , то значение URL , которое там находится, определяет, куда посылать этот блок данных. Этот метод, как уже отмечалось, рекомендуется для передачи больших по объему блоков данных.

              Информация, введенная пользователем и отправленная серверу с помощью метода POST , подается на стандартный ввод программе, указанной в атрибуте action , или текущему скрипту, если этот атрибут опущен. Длина посылаемого файла передается в переменной окружения CONTENT_LENGTH , а тип данных – в переменной CONTENT_TYPE .

              Передать данные методом POST можно только с помощью HTML-формы , поскольку данные передаются в теле запроса, а не в заголовке, как в GET . Соответственно и изменить значение параметров можно, только изменив значение, введенное в форму. При использовании POST пользователь не видит передаваемые серверу данные.

              Основное преимущество POST запросов – это их большая безопасность и функциональность по сравнению с GET-запросами. Поэтому метод POST чаще используют для передачи важной информации, а также информации большого объема. Тем не менее не стоит целиком полагаться на безопасность этого механизма, поскольку данные POST запроса также можно подделать, например создав html-файл на своей машине и заполнив его нужными данными. Кроме того, не все клиенты могут применять метод POST , что ограничивает варианты его использования.

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

              Обработка запросов с помощью PHP

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

              Внутри PHP-скрипта имеется несколько способов получения доступа к данным , переданным клиентом по протоколу HTTP . До версии PHP 4.1.0 доступ к таким данным осуществлялся по именам переданных переменных (напомним, что данные передаются в виде пар "имя переменной, символ "=", значение переменной"). Таким образом, если, например, было передано first_name=Nina , то внутри скрипта появлялась переменная $first_name со значением Nina . Если требовалось различать, каким методом были переданы данные, то использовались ассоциативные массивы $HTTP_POST_VARS и $HTTP_GET_VARS , ключами которых являлись имена переданных переменных, а значениями – соответственно значения этих переменных. Таким образом, если пара first_name = Nina передана методом GET , то $ HTTP_GET_VARS ["first_name"]="Nina" .

              Пример 4.2. Допустим, мы создали форму для регистрации участников заочной школы программирования, как в приведенном выше примере. Тогда в файле 1.php , обрабатывающем эту форму, можно написать следующее:

              Приведем пример использования этих массивов. Допустим, нам нужно обработать форму, содержащую элементы ввода с именами first_name , last_name , kurs (например, форму form.html , приведенную выше). Данные были переданы методом POST , и данные, переданные другими методами, мы обрабатывать не хотим. Это можно сделать следующим образом:

              Для того, чтобы сохранить возможность обработки скриптов более ранних версий, чем PHP 4.1.0, была введена директива register_globals , разрешающая или запрещающая доступ к переменным непосредственно по их именам. Если в файле настроек PHP параметр register_globals =On , то к переменным, переданным серверу методами GET и POST , можно обращаться просто по их именам (т.е. можно писать $first_name ). Если же register_globals =Off , то нужно писать $ _REQUEST ["first_name"] или $ _POST ["first_name"] , $ _GET ["first_name"] , $ HTTP_POST_VARS ["first_name"] , $ HTTP_GET_VARS ["first_name"] . С точки зрения безопасности эту директиву лучше отключать (т.е. register_globals =Off ). При включенной директиве register_globals перечисленные выше массивы также будут содержать данные, переданные клиентом .

              Иногда возникает необходимость узнать значение какой-либо переменной окружения , например метод, использовавшийся при передаче запроса или IP-адрес компьютера, отправившего запрос. Получить такую информацию можно с помощью функции getenv() . Она возвращает значение переменной окружения , имя которой передано ей в качестве параметра.

              Как мы уже говорили, если используется метод GET , то данные передаются добавлением строки запроса в виде пар "имя_переменной=значение к URL -адресу ресурса". Все, что записано в URL после знака вопроса, можно получить с помощью команды

              Благодаря этому можно по методу GET передавать данные в каком-нибудь другом виде. Например, указывать только значения нескольких параметров через знак плюс, а в скрипте разбирать строку запроса на части или можно передавать значение всего одного параметра. В этом случае в массиве $_GET появится пустой элемент с ключом, равным этому значению (всей строке запроса ), причем символ " + ", встретившийся в строке запроса , будет заменен на подчеркивание " _ ".

              Методом POST данные передаются только с помощью форм, и пользователь ( клиент ) не видит, какие именно данные отправляются серверу . Чтобы их увидеть, хакер должен подменить нашу форму своей. Тогда сервер отправит результаты обработки неправильной формы не туда, куда нужно. Чтобы этого избежать, можно проверять адрес страницы, с которой были посланы данные. Это можно сделать опять же с помощью функции getenv() :

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

              Пример обработки запроса с помощью PHP

              Здесь все достаточно просто и понятно. Единственное, что можно отметить, – это способ передачи значений элемента checkbox . Когда мы пишем в имени элемента kurs[] , это значит, что первый отмеченный элемент checkbox будет записан в первый элемент массива kurs , второй отмеченный checkbox – во второй элемент массива и т.д. Можно, конечно, просто дать разные имена элементам checkbox , но это усложнит обработку данных, если курсов будет много.

              Заключение

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

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

              Внутри PHP-скрипта имеется несколько способов получения доступа к данным, переданным клиентом по протоколу HTTP . До версии PHP 4.1.0 доступ к таким данным осуществлялся по именам переданных переменных (напомним, что данные передаются в виде пар " имя переменной , символ " keyword283"> значение переменной"). Таким образом, если, например, было передано first_name=Nina , то внутри скрипта появлялась переменная $first_name со значением Nina . Если требовалось различать, каким методом были переданы данные, то использовались ассоциативные массивы $HTTP_POST_VARS и $HTTP_GET_VARS , ключами которых являлись имена переданных переменных, а значениями – соответственно значения этих переменных. Таким образом, если пара first_name = Nina передана методом GET , то $ HTTP_GET_VARS ["first_name"]="Nina" .

              Пример 4.2. Допустим, мы создали форму для регистрации участников заочной школы программирования, как в приведенном выше примере. Тогда в файле 1.php , обрабатывающем эту форму, можно написать следующее:

              Приведем пример использования этих массивов. Допустим, нам нужно обработать форму, содержащую элементы ввода с именами first_name , last_name , kurs (например, форму form.html , приведенную выше). Данные были переданы методом POST , и данные, переданные другими методами, мы обрабатывать не хотим. Это можно сделать следующим образом:

              Для того, чтобы сохранить возможность обработки скриптов более ранних версий, чем PHP 4.1.0, была введена директива register_globals , разрешающая или запрещающая доступ к переменным непосредственно по их именам. Если в файле настроек PHP параметр register_globals =On , то к переменным, переданным серверу методами GET и POST , можно обращаться просто по их именам (т.е. можно писать $first_name ). Если же register_globals =Off , то нужно писать $ _REQUEST ["first_name"] или $ _POST ["first_name"] , $ _GET ["first_name"] , $ HTTP_POST_VARS ["first_name"] , $ HTTP_GET_VARS ["first_name"] . С точки зрения безопасности эту директиву лучше отключать (т.е. register_globals =Off ). При включенной директиве register_globals перечисленные выше массивы также будут содержать данные, переданные клиентом .

              Иногда возникает необходимость узнать значение какой-либо переменной окружения , например метод, использовавшийся при передаче запроса или IP- адрес компьютера, отправившего запрос . Получить такую информацию можно с помощью функции getenv() . Она возвращает значение переменной окружения , имя которой передано ей в качестве параметра.

              Как мы уже говорили, если используется метод GET , то данные передаются добавлением строки запроса в виде пар "имя_переменной= значение к URL -адресу ресурса". Все, что записано в URL после знака вопроса, можно получить с помощью команды

              Благодаря этому можно по методу GET передавать данные в каком-нибудь другом виде. Например, указывать только значения нескольких параметров через знак плюс, а в скрипте разбирать строку запроса на части или можно передавать значение всего одного параметра. В этом случае в массиве $_GET появится пустой элемент с ключом, равным этому значению (всей строке запроса ), причем символ " + ", встретившийся в строке запроса , будет заменен на подчеркивание " _ ".

              Методом POST данные передаются только с помощью форм, и пользователь ( клиент ) не видит, какие именно данные отправляются серверу . Чтобы их увидеть, хакер должен подменить нашу форму своей. Тогда сервер отправит результаты обработки неправильной формы не туда, куда нужно. Чтобы этого избежать, можно проверять адрес страницы, с которой были посланы данные. Это можно сделать опять же с помощью функции getenv() :

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

              Пример обработки запроса с помощью PHP

              Здесь все достаточно просто и понятно. Единственное, что можно отметить, – это способ передачи значений элемента checkbox . Когда мы пишем в имени элемента kurs[] , это значит, что первый отмеченный элемент checkbox будет записан в первый элемент массива kurs , второй отмеченный checkbox – во второй элемент массива и т.д. Можно, конечно, просто дать разные имена элементам checkbox , но это усложнит обработку данных, если курсов будет много.

              Заключение

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

              Презентация: Обработка запросов PHP

              Основы клиент-серверных технологий

              Основы клиент-серверных технологий

              Основы клиент-серверных технологий

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

              Основы клиент-серверных технологий

              Основы клиент-серверных технологий

              Основы клиент-серверных технологий

              Взаимодействие между клиентом и сервером начинается по инициативе клиента. Клиент запрашивает вид обслуживания, устанавливает сеанс, получает нужные ему результаты и сообщает об окончании работы.

              Основы клиент-серверных технологий

              Основы клиент-серверных технологий

              Основы клиент-серверных технологий

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

              Основы клиент-серверных технологий

              Основы клиент-серверных технологий

              Основы клиент-серверных технологий

              Существует множество типов серверов. Вот лишь некоторые из них.
              Видеосервер Такой сервер специально приспособлен к обработке изображений, хранению видеоматериалов, видеоигр и т.п. В связи с этим компьютер, на котором установлен видеосервер, должен иметь высокую производительность и большую память.
              Поисковый сервер предназначен для поиска информации в Internet.
              Почтовый сервер предоставляет услуги в ответ на запросы, присланные по электронной почте.
              Сервер WWW предназначен для работы в Internet.
              Сервер баз данных выполняет обработку запросов к базам данных.
              Сервер защиты данных предназначен для обеспечения безопасности данных (содержит, например, средства для идентификации паролей).
              Сервер приложений предназначен для выполнения прикладных процессов. С одной стороны взаимодействует с клиентами, получая задания, а с другой – работает с базами данных, подбирая необходимые для обработки данные.
              Сервер удаленного доступа обеспечивает коллективный удаленный доступ к данным.
              Файловый сервер обеспечивает функционирование распределенных ресурсов, предоставляет услуги поиска, хранения, архивирования данных и возможность одновременного доступа к ним нескольких пользователей.

              Протокол HTTP и способы передачи данных на сервер

              Протокол HTTP и способы передачи данных на сервер

              Протокол HTTP и способы передачи данных на сервер

              Протокол HTTP и способы передачи данных на сервер

              Протокол HTTP и способы передачи данных на сервер

              Протокол HTTP и способы передачи данных на сервер

              Полный запрос содержит строку состояния, несколько заголовков (заголовок запроса, общий заголовок или заголовок содержания) и, возможно, тело запроса. Формально общий вид полного запроса можно записать так:
              := ( | | ) [ ]

              Читайте также: