0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Клиент-серверная архитектура</a></li>
1
<ul><li><a>Клиент-серверная архитектура</a></li>
2
<li><a>Определение способа отправки данных</a><ul><li><a>Атрибут action</a></li>
2
<li><a>Определение способа отправки данных</a><ul><li><a>Атрибут action</a></li>
3
<li><a>Атрибут method</a></li>
3
<li><a>Атрибут method</a></li>
4
</ul></li>
4
</ul></li>
5
<li><a>Метод GET</a><ul><li><a>Особенности Get</a></li>
5
<li><a>Метод GET</a><ul><li><a>Особенности Get</a></li>
6
</ul></li>
6
</ul></li>
7
<li><a>Работа с POST</a><ul><li><a>Применение file_get</a></li>
7
<li><a>Работа с POST</a><ul><li><a>Применение file_get</a></li>
8
<li><a>Использование fread</a></li>
8
<li><a>Использование fread</a></li>
9
</ul></li>
9
</ul></li>
10
<li><a>Просмотр HTTP-запроса</a></li>
10
<li><a>Просмотр HTTP-запроса</a></li>
11
<li><a>Серверная сторона - получение</a></li>
11
<li><a>Серверная сторона - получение</a></li>
12
</ul><p>PHP - скриптовый язык общего назначения. Применяется преимущественно для веб-разработки и формирования клиент-серверных моделей. Поддерживается большинством хостинг-провайдеров. PHP - непревзойденный лидер для создания динамических веб-страниц.</p>
12
</ul><p>PHP - скриптовый язык общего назначения. Применяется преимущественно для веб-разработки и формирования клиент-серверных моделей. Поддерживается большинством хостинг-провайдеров. PHP - непревзойденный лидер для создания динамических веб-страниц.</p>
13
<p>Сам язык и его интерпретатор под названием Zend Engine разрабатываются группой свободных разработчиков. Этот проект имеет открытый исходный код. Он наделен собственной лицензией, которая не совместима с GNU GPL.</p>
13
<p>Сам язык и его интерпретатор под названием Zend Engine разрабатываются группой свободных разработчиков. Этот проект имеет открытый исходный код. Он наделен собственной лицензией, которая не совместима с GNU GPL.</p>
14
<p>При написании скриптов для обработки форм необходимо использовать метод POST в PHP. Далее он будет рассмотрен более подробно. Эта информация пригодится как новичкам, так и более опытным разработчикам. Дополнительно предстоит изучить метод запроса GET.</p>
14
<p>При написании скриптов для обработки форм необходимо использовать метод POST в PHP. Далее он будет рассмотрен более подробно. Эта информация пригодится как новичкам, так и более опытным разработчикам. Дополнительно предстоит изучить метод запроса GET.</p>
15
<h2>Клиент-серверная архитектура</h2>
15
<h2>Клиент-серверная архитектура</h2>
16
<p>Web базируется на простейшей клиент-серверной архитектуре. Она работает так:</p>
16
<p>Web базируется на простейшей клиент-серверной архитектуре. Она работает так:</p>
17
<ol><li>Клиент (обычно им выступает веб-браузер) формирует и отправляет запрос на сервер.</li>
17
<ol><li>Клиент (обычно им выступает веб-браузер) формирует и отправляет запрос на сервер.</li>
18
<li>В качестве сервера выступают различные веб-серверы: IIS, Apache, Tomcat и другие.</li>
18
<li>В качестве сервера выступают различные веб-серверы: IIS, Apache, Tomcat и другие.</li>
19
<li>Для передачи PHP запроса используется протокол HTTP.</li>
19
<li>Для передачи PHP запроса используется протокол HTTP.</li>
20
<li>Сервер получает команду от клиента, обрабатывает ее.</li>
20
<li>Сервер получает команду от клиента, обрабатывает ее.</li>
21
<li>Происходит передача ответа клиенту по аналогичному протоколу.</li>
21
<li>Происходит передача ответа клиенту по аналогичному протоколу.</li>
22
</ol><p>Выше - пример организации простейшей клиент-серверной модели. Со стороны клиента обычно используется HTML форма. Такое название получил удобный способ настройки и отправки HTTP-запроса для отправки информации на серверную часть.</p>
22
</ol><p>Выше - пример организации простейшей клиент-серверной модели. Со стороны клиента обычно используется HTML форма. Такое название получил удобный способ настройки и отправки HTTP-запроса для отправки информации на серверную часть.</p>
23
<h2>Определение способа отправки данных</h2>
23
<h2>Определение способа отправки данных</h2>
24
<p>Элемент <form> на PHP-сайте отвечает за метод отправки данных. Все его атрибуты используются для того, чтобы можно быстро настроить запрос на отправку. Происходит это при нажатии на специальную кнопку. Пример - "Отправить". Наиболее важными атрибутами <form> служат:</p>
24
<p>Элемент <form> на PHP-сайте отвечает за метод отправки данных. Все его атрибуты используются для того, чтобы можно быстро настроить запрос на отправку. Происходит это при нажатии на специальную кнопку. Пример - "Отправить". Наиболее важными атрибутами <form> служат:</p>
25
<ul><li>action;</li>
25
<ul><li>action;</li>
26
<li>method.</li>
26
<li>method.</li>
27
</ul><p>Они должны быть изучены<a>PHP разработчиками</a>перед тем как рассматривать POST и GET.</p>
27
</ul><p>Они должны быть изучены<a>PHP разработчиками</a>перед тем как рассматривать POST и GET.</p>
28
<h3>Атрибут action</h3>
28
<h3>Атрибут action</h3>
29
<p>Action - параметр, который определяет, куда необходимо отправить данные. Его значение - это актуальный URL-адрес. Если соответствующий атрибут отсутствует, информация передается на URL-адрес страницы, в которой размещается форма.</p>
29
<p>Action - параметр, который определяет, куда необходимо отправить данные. Его значение - это актуальный URL-адрес. Если соответствующий атрибут отсутствует, информация передается на URL-адрес страницы, в которой размещается форма.</p>
30
<p>Выше - пример работы с абсолютным URL. А вот - пример использования относительного веб-адреса. Информация будет передаваться на другой URL в пределах сервера:</p>
30
<p>Выше - пример работы с абсолютным URL. А вот - пример использования относительного веб-адреса. Информация будет передаваться на другой URL в пределах сервера:</p>
31
<p>Большинство старых веб-страниц, написанных на PHP и других языках, используют такую форму синтаксиса:</p>
31
<p>Большинство старых веб-страниц, написанных на PHP и других языках, используют такую форму синтаксиса:</p>
32
<p>Она указывает на то, что информация должна быть направлена на страницу с формой. Связано это с тем, что до HTML5 атрибут action являлся обязательным. Современные PHP сайты избавлены от необходимости использования соответствующего параметра.</p>
32
<p>Она указывает на то, что информация должна быть направлена на страницу с формой. Связано это с тем, что до HTML5 атрибут action являлся обязательным. Современные PHP сайты избавлены от необходимости использования соответствующего параметра.</p>
33
<h3>Атрибут method</h3>
33
<h3>Атрибут method</h3>
34
<p>Methods используется для определения способа, которым осуществляется передача информации. Протоколы HTTP позволяют выполнить операцию несколькими способами:</p>
34
<p>Methods используется для определения способа, которым осуществляется передача информации. Протоколы HTTP позволяют выполнить операцию несколькими способами:</p>
35
<ul><li>через GET;</li>
35
<ul><li>через GET;</li>
36
<li>при помощи метода, name POST.</li>
36
<li>при помощи метода, name POST.</li>
37
</ul><p>Каждый раз, когда пользователь хочет получить доступ к ресурсу в Сети, браузер будет отправлять requests на name URL (адрес веб-страницы). HTTP request включает в себя две части: заголовок, включающий в себя набор глобальных метаданных о возможностях интернет-обозревателя, а также тела. В нем может содержаться информация, необходимая серверу для обработки конкретной команды.</p>
37
</ul><p>Каждый раз, когда пользователь хочет получить доступ к ресурсу в Сети, браузер будет отправлять requests на name URL (адрес веб-страницы). HTTP request включает в себя две части: заголовок, включающий в себя набор глобальных метаданных о возможностях интернет-обозревателя, а также тела. В нем может содержаться информация, необходимая серверу для обработки конкретной команды.</p>
38
<p>Method name GET поддерживает передачу параметров с предыдущей страницы на следующую в составе строки запроса, представленной в формате универсального идентификаторы URL-ресурса. При его использовании для обработки form method к веб-адресу, обозначенному через атрибут action, после разделителя необходимо добавить в виде вопросительного знака указанное имя (name) и значения переменной. После этого вся строка передается обрабатывающему агенту. В случае с PHP и веб-страницами - веб-серверу.</p>
38
<p>Method name GET поддерживает передачу параметров с предыдущей страницы на следующую в составе строки запроса, представленной в формате универсального идентификаторы URL-ресурса. При его использовании для обработки form method к веб-адресу, обозначенному через атрибут action, после разделителя необходимо добавить в виде вопросительного знака указанное имя (name) и значения переменной. После этого вся строка передается обрабатывающему агенту. В случае с PHP и веб-страницами - веб-серверу.</p>
39
<p>Метод Get используется браузером. Он указывает серверу на то, что нужно передавать на указанный пользователем ресурс.</p>
39
<p>Метод Get используется браузером. Он указывает серверу на то, что нужно передавать на указанный пользователем ресурс.</p>
40
<p>Выше - пример работы соответствующего элемента. После нажатия пользователем на кнопку с name "Отправить", браузер соединит перечисленные далее компоненты в указанном порядке. Пробелов между ними не будет:</p>
40
<p>Выше - пример работы соответствующего элемента. После нажатия пользователем на кнопку с name "Отправить", браузер соединит перечисленные далее компоненты в указанном порядке. Пробелов между ними не будет:</p>
41
<ul><li>URL в кавычках, который идет после слова action;</li>
41
<ul><li>URL в кавычках, который идет после слова action;</li>
42
<li>знак вопроса, указывающий на то, что остальные символы формируют GET-строку;</li>
42
<li>знак вопроса, указывающий на то, что остальные символы формируют GET-строку;</li>
43
<li>переменная name и знак равенства, а также параметр value;</li>
43
<li>переменная name и знак равенства, а также параметр value;</li>
44
<li>амперсанд и пара name = value.</li>
44
<li>амперсанд и пара name = value.</li>
45
</ul><p>Браузер сформирует строчку, указанную выше. Далее он перенаправит ее в пределах собственного адресного пространства в виде нового запроса. Так выглядит PHP сценарий:</p>
45
</ul><p>Браузер сформирует строчку, указанную выше. Далее он перенаправит ее в пределах собственного адресного пространства в виде нового запроса. Так выглядит PHP сценарий:</p>
46
<p>А вот - наглядный пример того, как обрабатывается форма:</p>
46
<p>А вот - наглядный пример того, как обрабатывается форма:</p>
47
<p>Обработчик форм получит доступ к каждому передаваемому через GET-метод компоненту при помощи обращения к массиву $_Get.</p>
47
<p>Обработчик форм получит доступ к каждому передаваемому через GET-метод компоненту при помощи обращения к массиву $_Get.</p>
48
<p>А вот еще один пример:</p>
48
<p>А вот еще один пример:</p>
49
<p>За счет использования request name GET, в адресной строке браузера появится URL-адрес. Здесь информация добавляется в качестве последовательности пар name/значение. HTTP-запрос будет выглядеть так:</p>
49
<p>За счет использования request name GET, в адресной строке браузера появится URL-адрес. Здесь информация добавляется в качестве последовательности пар name/значение. HTTP-запрос будет выглядеть так:</p>
50
<p>Здесь на сервер передаются части информации на сервер: say со значением Hi, а также to с параметром Mom.</p>
50
<p>Здесь на сервер передаются части информации на сервер: say со значением Hi, а также to с параметром Mom.</p>
51
<h3>Особенности Get</h3>
51
<h3>Особенности Get</h3>
52
<p>Если данные формы передаются через метод with name GET, необходимо запомнить следующее:</p>
52
<p>Если данные формы передаются через метод with name GET, необходимо запомнить следующее:</p>
53
<ul><li>данный метод не может быть применим для создания регистрационных форм;</li>
53
<ul><li>данный метод не может быть применим для создания регистрационных форм;</li>
54
<li>каждая операция передачи информации, включая исходные данные, регистрируется в журнале веб-сервера;</li>
54
<li>каждая операция передачи информации, включая исходные данные, регистрируется в журнале веб-сервера;</li>
55
<li>GET не поддерживает присваивание информации переменной среды сервера, поэтому длина URL имеет ограничения.</li>
55
<li>GET не поддерживает присваивание информации переменной среды сервера, поэтому длина URL имеет ограничения.</li>
56
</ul><p>Второй способ передачи данных на PHP сайте - это method POST.</p>
56
</ul><p>Второй способ передачи данных на PHP сайте - это method POST.</p>
57
<h2>Работа с POST</h2>
57
<h2>Работа с POST</h2>
58
<p>POST - это один из нескольких методов запросов, поддерживаемых HTTP-протоколами. Он необходим для того, чтобы направить запрос, при котором веб-сервер принимает данные, заключенные в тело исходного сообщения, для дальнейшего хранения. Пост используется для загрузки документов и представления заполненных веб-форм.</p>
58
<p>POST - это один из нескольких методов запросов, поддерживаемых HTTP-протоколами. Он необходим для того, чтобы направить запрос, при котором веб-сервер принимает данные, заключенные в тело исходного сообщения, для дальнейшего хранения. Пост используется для загрузки документов и представления заполненных веб-форм.</p>
59
<p>Браузеры используют method name POST PHP для связи с сервером при запросе ответа с учетом информации, написанной в теле HTTP-запроса. If форма отправляется через posted, данные будут добавлены в тело HTTP-запроса. URL-строка не будет подвергаться видимым изменениям.</p>
59
<p>Браузеры используют method name POST PHP для связи с сервером при запросе ответа с учетом информации, написанной в теле HTTP-запроса. If форма отправляется через posted, данные будут добавлены в тело HTTP-запроса. URL-строка не будет подвергаться видимым изменениям.</p>
60
<p>Так будет выглядеть предыдущий пример, но написанный через POST в PHP:</p>
60
<p>Так будет выглядеть предыдущий пример, но написанный через POST в PHP:</p>
61
<p>Когда форма отправляется через соответствующий метод, сведения будут добавлены не в URL-адресе. Набор переданных данных можно найти в теле HTTP-запроса:</p>
61
<p>Когда форма отправляется через соответствующий метод, сведения будут добавлены не в URL-адресе. Набор переданных данных можно найти в теле HTTP-запроса:</p>
62
<p>Заголовок с name Content-Length задает размер тела, а Content-Type отвечает за тип отправляемых сведений на сервер.</p>
62
<p>Заголовок с name Content-Length задает размер тела, а Content-Type отвечает за тип отправляемых сведений на сервер.</p>
63
<p>Для создания PHP request типа POST, можно использовать несколько подходов:</p>
63
<p>Для создания PHP request типа POST, можно использовать несколько подходов:</p>
64
<ul><li>через file_get_contents;</li>
64
<ul><li>через file_get_contents;</li>
65
<li>при помощи fread с другими функциями.</li>
65
<li>при помощи fread с другими функциями.</li>
66
</ul><p>Оба варианта используют stream context create для выполнения необходимых полей заголовка.</p>
66
</ul><p>Оба варианта используют stream context create для выполнения необходимых полей заголовка.</p>
67
<h3>Применение file_get</h3>
67
<h3>Применение file_get</h3>
68
<p>В PHP отправить данные через POST можно посредством file_get_contents. Stream context create в этом случае предстоит применять для того, чтобы вручную заполнять заголовки и указывать тип содержимого (а именно - HTTP):</p>
68
<p>В PHP отправить данные через POST можно посредством file_get_contents. Stream context create в этом случае предстоит применять для того, чтобы вручную заполнять заголовки и указывать тип содержимого (а именно - HTTP):</p>
69
<p>Выше - наглядный пример того, как выглядит исходный код при реализации рассматриваемого приема.</p>
69
<p>Выше - наглядный пример того, как выглядит исходный код при реализации рассматриваемого приема.</p>
70
<h3>Использование fread</h3>
70
<h3>Использование fread</h3>
71
<p>Чтобы выполнить метод name POST, можно использовать функцию fread. Здесь stream context create применяется для того, чтобы составить заголовки HTTP-запросов:</p>
71
<p>Чтобы выполнить метод name POST, можно использовать функцию fread. Здесь stream context create применяется для того, чтобы составить заголовки HTTP-запросов:</p>
72
<p>Данная функция может быть использована для загрузки или получения файлов через интернет (по почте или иным способом). </p>
72
<p>Данная функция может быть использована для загрузки или получения файлов через интернет (по почте или иным способом). </p>
73
<p>Считывание веб-страниц ограничивается доступной частью пакета. Необходимо задействовать функцию stream_get_contents или цикл while для считывания содержимого меньшими фрагментами. Происходить это должно до тех пор, пока не будет достигнут конец файла:</p>
73
<p>Считывание веб-страниц ограничивается доступной частью пакета. Необходимо задействовать функцию stream_get_contents или цикл while для считывания содержимого меньшими фрагментами. Происходить это должно до тех пор, пока не будет достигнут конец файла:</p>
74
<p>Здесь при обработке изучаемой команды последний аргумент функции fread будет равен размеру фрагмента. Он не должен превышать 8 192 (8*1 024).</p>
74
<p>Здесь при обработке изучаемой команды последний аргумент функции fread будет равен размеру фрагмента. Он не должен превышать 8 192 (8*1 024).</p>
75
<h2>Просмотр HTTP-запроса</h2>
75
<h2>Просмотр HTTP-запроса</h2>
76
<p>При работе с запросами name HTTP стоит обратить внимание на то, что они никогда не демонстрируются пользователям. Сведения форм обычно отображаются через специальные дополнительные инструменты - Chrome Developer Tools, FireFox Network Monitor и другие.</p>
76
<p>При работе с запросами name HTTP стоит обратить внимание на то, что они никогда не демонстрируются пользователям. Сведения форм обычно отображаются через специальные дополнительные инструменты - Chrome Developer Tools, FireFox Network Monitor и другие.</p>
77
<p>В Google Chrome submit сведения форм показываются во вкладке "Сеть". Чтобы их увидеть, необходимо:</p>
77
<p>В Google Chrome submit сведения форм показываются во вкладке "Сеть". Чтобы их увидеть, необходимо:</p>
78
<ol><li>Нажать на F12.</li>
78
<ol><li>Нажать на F12.</li>
79
<li>Перейти в Network.</li>
79
<li>Перейти в Network.</li>
80
<li>Щелкнуть по "All", а затем в разделе Name выбрать сайт. В рассматриваемых случаях - это foo.com.</li>
80
<li>Щелкнуть по "All", а затем в разделе Name выбрать сайт. В рассматриваемых случаях - это foo.com.</li>
81
<li>Кликнуть по "Headers".</li>
81
<li>Кликнуть по "Headers".</li>
82
</ol><p>Пользователи увидят вызываемый URL name. Запросы GET дадут возможность увидеть сведения в адресе. Если использовался POST, они не отобразятся. Знать об этом необходимо по нескольким причинам:</p>
82
</ol><p>Пользователи увидят вызываемый URL name. Запросы GET дадут возможность увидеть сведения в адресе. Если использовался POST, они не отобразятся. Знать об этом необходимо по нескольким причинам:</p>
83
<ol><li>Когда требуется отправить пароль или иные важные сведения, нельзя использовать GET. Это связано с безопасностью.</li>
83
<ol><li>Когда требуется отправить пароль или иные важные сведения, нельзя использовать GET. Это связано с безопасностью.</li>
84
<li>При отправке большого документа, рекомендуется задействовать POST.</li>
84
<li>При отправке большого документа, рекомендуется задействовать POST.</li>
85
</ol><p>Когда сведения отправлены, остается получить их.</p>
85
</ol><p>Когда сведения отправлены, остается получить их.</p>
86
<h2>Серверная сторона - получение</h2>
86
<h2>Серверная сторона - получение</h2>
87
<p>Независимо от выбранного HTTP, сервер вернет input type (строку) в виде листа с параметрами ключ/значение. Получение доступа к нему зависит от платформы разработки и особенностей применяемых фреймворков. Наиболее распространенный вариант - это чистый PHP.</p>
87
<p>Независимо от выбранного HTTP, сервер вернет input type (строку) в виде листа с параметрами ключ/значение. Получение доступа к нему зависит от платформы разработки и особенностей применяемых фреймворков. Наиболее распространенный вариант - это чистый PHP.</p>
88
<p>В соответствующем языке имеются различные объекты для доступа к сведениям. Пример - при применении POST-метода информация просто выдается пользователю. Дальнейшая ее судьба определяется каждым отдельным человеком.</p>
88
<p>В соответствующем языке имеются различные объекты для доступа к сведениям. Пример - при применении POST-метода информация просто выдается пользователю. Дальнейшая ее судьба определяется каждым отдельным человеком.</p>
89
<p>При обработке фрагмента кода на экране появится следующее:</p>
89
<p>При обработке фрагмента кода на экране появится следующее:</p>
90
<p>Здесь будет показана страничка с отправленными сведениями. Когда они переданы на отправку, информация переходит в форму php-example.php. В ней содержится код, представленный выше.</p>
90
<p>Здесь будет показана страничка с отправленными сведениями. Когда они переданы на отправку, информация переходит в форму php-example.php. В ней содержится код, представленный выше.</p>
91
<p>Лучше разобраться с рассмотренной темой помогут дистанционные компьютерные курсы. На них научат писать приложения и создавать клиент-серверные модели на любом понравившемся языке.</p>
91
<p>Лучше разобраться с рассмотренной темой помогут дистанционные компьютерные курсы. На них научат писать приложения и создавать клиент-серверные модели на любом понравившемся языке.</p>
92
<p><a>Интересует PHP? Добро пожаловать на курс в Otus</a>!</p>
92
<p><a>Интересует PHP? Добро пожаловать на курс в Otus</a>!</p>
93
93