HTML Diff
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>Элемент &lt;form&gt; на PHP-сайте отвечает за метод отправки данных. Все его атрибуты используются для того, чтобы можно быстро настроить запрос на отправку. Происходит это при нажатии на специальную кнопку. Пример - "Отправить". Наиболее важными атрибутами &lt;form&gt; служат:</p>
24 <p>Элемент &lt;form&gt; на PHP-сайте отвечает за метод отправки данных. Все его атрибуты используются для того, чтобы можно быстро настроить запрос на отправку. Происходит это при нажатии на специальную кнопку. Пример - "Отправить". Наиболее важными атрибутами &lt;form&gt; служат:</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