Статьи

Як працювати з POST-запитів в PHP

  1. Як побачити тіло POST-запиту
  2. висновок

Отже, в минулому уроці ми згадували про те, як відбувається робота користувача з сайтом. Їх спілкування відбувається в формі запит-відповідь. Користувач відправляє в запиті якісь дані, а сервер повертає будь-яку відповідь, в залежності від цих даних.

У попередньому уроці ми навчилися працювати з GET-запитами . Як ми пам'ятаємо, при цьому способі дані передаються на сервер за допомогою параметрів сторінки в адресному рядку. Таке буває зручно, коли нам потрібно поділитися посиланням в якій ці параметри потрібні. Наприклад, у нас запитують, де в Москві купити шафу. І ми скидаємо людині посилання на пошук в Яндексі:
https://yandex.ru/search/?text=шкаф%20в%20москве%20купить

Він переходить по ній і прекрасно себе почуває, тому що все вже введено за нього.

Однак, параметри сторінки в адресному рядку - це не завжди доречно. Наприклад, коли в параметрах міститься якась конфіденційна інформація: пароль, пін-код. І будь-який повз проходить людина може її побачити. Як в такій ситуації бути? Використовувати POST-запити!

Що це таке? Так все той же запит від клієнта до сервера, тільки параметри передаються всередині тіла запиту, а не в адресному рядку. І побачити їх просто так не вийде.

Що за тіло запиту? Ну, це просто дані, які передаються на сервер. При цьому вони приховані від зайвих очей.

Щоб відправити POST-запит потрібно в HTML-формі задати для атрибута method значення POST.

Ось так:

<Html> <head> <title> Форма входу </ title> </ head> <body> <form action = "/ login.php" method = "post"> <label> Логін <input type = "text" name = "login"> </ label> <br> <label> Пароль <input type = "password" name = "password"> </ label> <br> <input type = "submit" value = "Увійти"> < / form> </ body> </ html>

Дані, надіслані за допомогою POST-запиту доступні в PHP в суперглобального масиві $ _POST.

Давайте виведемо передані скриптом вище значення login і password. Для цього в файл login.php покладемо наступний код:

<? Php $ login =! Empty ($ _ POST [ 'login'])? $ _POST [ 'login']: ''; $ Password =! Empty ($ _ POST [ 'password'])? $ _POST [ 'password']: ''; ?&gt; <Html> <head> <title> Обробка POST-запиту </ title> </ head> <body> <p> Переданий login: <? = $ Login?&gt; <br> Переданий password: <? = $ Password ?> </ p> </ body> </ html>

Відкрийте тепер форму, введіть в неї значення і натисніть кнопку «Увійти».
Ви побачите введені вами в формі дані, при цьому вони не будуть відображатися в адресному рядку. Вуаля! Тепер ніхто не підгляне ваш пароль в адресному рядку.
Відкрийте тепер форму, введіть в неї значення і натисніть кнопку «Увійти»

Як побачити тіло POST-запиту

Щоб побачити дані POST-запиту в браузері, в Google Chrome потрібно перейти в режим розробника. Натисніть F12, перебуваючи у вікні браузера. Після цього ви побачите панель розробника.
Щоб побачити дані POST-запиту в браузері, в Google Chrome потрібно перейти в режим розробника

Перейдіть у вкладку Network, а потім встановіть галочку напроти пункту Preserve log.

Тепер поверніться на форму, і знову введіть дані, після чого натисніть на кнопку «Увійти».
Тепер поверніться на форму, і знову введіть дані, після чого натисніть на кнопку «Увійти»

Одночасно з тим, як ви натиснете на кнопку входу, ви побачите в панелі розробника запит на login.php.
Одночасно з тим, як ви натиснете на кнопку входу, ви побачите в панелі розробника запит на login

Натисніть на нього, і справа відкриються деталі запиту. За замовчуванням відкривається вихідний код відповіді. Тут можна побачити те, що було створене за допомогою PHP і відправлено веб-сервером в браузер.
Натисніть на нього, і справа відкриються деталі запиту

Нас тут цікавить вкладка Headers. Перейдіть в неї, і перейдіть в самий низ. Тут ви побачите ті дані, що браузер відправив на сервер.
Нас тут цікавить вкладка Headers

висновок

Ось так і працюють POST-запити під капотом. Використовують їх завжди, коли не потрібно відображати деталі запиту в адресному рядку. Хороші приклади: форма авторизації, введення даних про кредитну картку. Такими даними краще в адресному рядку не світити.

А зараз - трохи нестандартне домашнє завдання =)

Якщо цей урок був вам корисний, розкажіть про цей курс своїм знайомим або поділіться на нього посиланням в соціальних мережах.

Ru/search/?
Як в такій ситуації бути?
Що це таке?
Що за тіло запиту?
Empty ($ _ POST [ 'login'])?
Empty ($ _ POST [ 'password'])?
POST [ 'password']: ''; ?
Gt; <Html> <head> <title> Обробка POST-запиту </ title> </ head> <body> <p> Переданий login: <?
Login?
Gt; <br> Переданий password: <?

Новости

Как создать фото из видео
Кризис заставляет искать дополнительные источники дохода. Одним из таких источников может стать торговля на валютном рынке Форекс. Но чтобы не потерять свои деньги необходимо работать с надежным брокером.

Как оформить группу в вконтакте видео
Дано хотел свой магазин в вк, но не знал с чего начать его делать. Так как хотелось не банальный магазин с кучей ссылок и фото, а красиво оформленный. С меню, с аватаркой. После просмотра видео создал