Вчимося працювати з GET та POST запитами. Php надсилання даних на сервер Параметри з get запиту php

Головна / Усунення несправностей

У мене є структура URL із рядком запиту та параметром під назвою position ,

http://computerhelpwanted.com/jobs/?occupation=administrator&position=network+administrator

У мене також є список вибору форми з ім'ям вибору форми position ,

Коли користувач робить вибір, він надсилає значення параметра до атрибуту дії з параметром select name = «position» як параметр для використання в рядку запиту.

У мене є питання, як мені отримати доступ до значень вибору форми окремо від значень рядка запиту?

Я використовую метод _GET для виклику значення параметра рядка запиту.

$position = isset($_GET["position"]) ? ($_GET["position"]) : "";

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

Як я можу отримати доступ до значення вибору форми у порівнянні з моїм PHP?

Оновити

У мене проблема з канонічною URL-адресою, вказаною в заголовку.

так має бути

єдина різниця полягає в - та + у рядку запиту.

Не всі рядки мого запиту мають +. У деяких є. Але я показую контент з обох URL, незалежно від того, чи є у нього або +. У будь-якому випадку обидва URL отримують однаковий вміст сторінки.

Але оскільки канонічний створюється динамічно з URI, а не значення елемента форми, на обох сторінках контенту є 2 різних канонічних символу.

Використання _Get ('value') отримує значення з рядка запиту замість елемента форми. Я знаю це, тому що значення елемента форми має пробіл між network administrator який отримує urlencoded, коли форма представляє як network+administrator , Так що якщо я можу порівняти зі значенням елемента форми, я можу встановити правильний канонічний.

Ви могли помітити, що на більшість сайтів можна бачити такі адреси:

http://сайт/index.php?blog=2

Тут, навіть не знаючи php, можна здогадатися, що ми звертаємось до файлу index.phpАле те, що йде після питання, мало хто знає. Все досить просто: ?blog=2це оголошення глобальної змінної «$_GET["blog"]» із значенням «2». Таким чином я в скрипт передаю змінну, яка відповідає за виведення інформації з бази даних. Давайте напишемо невеликий скрипт у якому Ви все наочно побачите:

if(isset($_GET["blog"])) (
echo $_GET["blog"];
}
?>

Ми використовуємо оператор умов if() як умову стоїть ось такий рядок:

Isset($_GET["blog"])

isset() дозволяє дізнатися чи існує змінна яка вказана в дужках, тобто умова, яку я описав у коді звучить так: Якщо існує змінна $_GET["blog"] то вивести вміст цієї змінної на екран. Ось що вийшло:

Думаю зрозуміло Створюється глобальна змінна $_GETз ідентифікатором, який ми оголосили в адресному рядку ( в даному випадкуз ідентифікатором "blog")

Тепер я хочу пояснити один момент. Припустимо, нам необхідно оголосити дві змінні, як це зробити? Перша змінна оголошується після питання «?» Друга змінна оголошується після такого знака «&» ( Якщо чесно не знаю, що це за знак), ось приклад оголошення трьох змінних:

http://сайт/index.php?a=1&b=2&c=3

Ось код висновку:

if(isset($_GET["a"]) AND isset($_GET["b"]) AND isset($_GET["c"])) (
echo $_GET["a"]."
";
echo $_GET["b"]."
";
echo $_GET["c"]."
";
}
?>

Умова звучить так:

Якщо існує глобальна змінна $_GET["a"] і глобальна змінна $_GET["b"] і глобальна змінна $_GET["с"] вивести їх на екран, Ось результат:

Форми

Перш ніж ми перейдемо до postзапитам, чи необхідно розібрати, що таке форми? Чому потрібно? Тому що глобальна змінна $_POST[""] створюється через форми. Що таке форма? Це поля для введення будь-якої інформації користувачем. Поля бувають в один рядок, великі поля, також бувають радіо кнопочки, чек бокси. Розберемо все по порядку.

Форма це тег:


елементи форми

Форма має атрибути, перерахую найпоширеніші:

Давайте створимо форму:


елементи форми

Як файл обробника я поставив файл test.phpоскільки саме в ньому пишу для Вас приклади. Метод відправки я поставив post тому що саме цим методам користуються в 99.9% випадках. Так само я надав нашій формі ім'я — form

Тепер поринемо у світ елементів форми. Насамперед Ви повинні зрозуміти, що майже всі елементи є тегом відмінність лише в атрибуті typeу цих тегів. Давайте я перелічу використовувані елементи форм:

Я впевнений, що ви неодноразово зустрічали такі поля, так що тут як кажуть: «no comments»

Тепер давайте складемо невелику тренувальну анкету, з якою працюватимемо далі. Наше завдання скласти невелику анкетку яка повідає нам ім'я заповнюючого, стать, з якої він країни, улюблений колір і поле тексту де користувач може додати щось про себе. Ось що в мене вийшло:

Ваше Прізвище Ім'я По-батькові:

Ваша стать:
М
Ж

З якої ви країни



Улюблений(і) колір(и):

Чорний:
Червоний:
Білий:
Інший:

Про себе:




Зверніть увагу, що майже кожен тег має атрибут. value, навіщо він? У нього записуються дані, які Ви збираєтеся перенести на іншу сторінку. Сподіваюся зрозуміло

Тепер якщо запустити цей код у браузері, ми побачимо наступне:

У форми я використав атрибут actionзі значенням test.phpце означає, як я вже казав, що дані з форми передадуть файл test.php.

POST запит

Тепер напишемо php код, який дозволить нам побачити введену нами інформацію. Де зберігаються дані? У випадку з запитом, наші дані лежали в глобальній змінній $_GET[""]. При запиті, дані будуть лежати в глобальній змінній $_POST[""]. У квадратних дужках необхідно прописувати, як і у випадку з глобальною змінною get, ідентифікатор. Запитання, де цей ідентифікатор взяти? Ось для чого нам потрібний атрибут name у елементів форм! Саме ці імена і є ключем у глобальному масиві post. Ну що ж, приступимо до опису скрипту:

if(isset($_POST["submit"])) (
echo "ПІБ: ".$_POST["fio"]."
";
echo "Пол: ".$_POST["sex"]."
";
echo "Країна проживання: ".$_POST["city"]."
";

Echo "Улюблений колір(и):
";
echo $_POST["color_1"]."
";
echo $_POST["color_2"]."
";
echo $_POST["color_3"]."
";
echo $_POST["color_4"]."
";
echo "Про себе: ".$_POST["about"]."


";
}
?>

Написана нами умова if свідчить: Якщо існує глобальна змінна $_POST["submit"] виводимо дані на екран. Ця глобальна змінна створюється якщо ми натиснули на кнопку відправки, ось для чого в даному прикладінеобхідний атрибут name у кнопці. Ви цілком можете поставити запитання, чому ж у кнопки атрибут name не обов'язковий? Все досить просто. Зазвичай програміст не відстежує натискання кнопки, а відстежує надіслані дані. Для коректної роботи, наприклад форми контактів, необхідно відстежити не натискання кнопки, а правильність введення інформації, і дізнатися чи вводили цю інформацію взагалі. У нашому прикладі ми не перевіряли надіслані дані, а просто відстежили натискання кнопки, для спрощення прикладу... Ось що у нас вийшло:

Висновок

Ну що ж, сьогодні ми розібрали два методи передачі даних між скриптами, так само галопам познайомилися з формами. Дуже сподіваюся, що ця інформація Вам десь знадобиться. Якщо є якісь питання, чи думки, пишіть коментарі. Успіхів Вам, на сьогодні у мене все!

PS: Хочете що б комп'ютерні ігристали ще реалістичнішими? directx 11 для windows 7 скачати безкоштовно можна на віндоус ін! Насолоджуйтесь чудовою графікою!

Вирішив зробити собі шпаргалку про основні методи відправлення та отримання даних із веб сервера засобами php та js. Так і народилася ця нотатка. У ній я розглянув найчастіше використовувані прийоми обміну даними між веб-клієнтом і веб-сервером, які використовують php розробники.

Головними лідерами відправки даних є php get запит і php запит post, за ними йде технологія AJAX. Так що ж відмінності get і post запитів.

  • get запит передається в адресному рядку (у http заголовку) і видно користувачеві
  • post запит передається в тілі документа
  • обсяг get запиту обмежений (максимум 276 символів)
  • метод get не передає файли
  • метод post передає файли

Php get запит

Щоб зробити php get запит нам для початку слід створити html формуз поля для введення даних. У тезі form вказуємо до якого файлу на сервері звертатися та яким методом проводити відправлення . Також не забуваємо задавати полю атрибут name , це буде назва осередку масиву GET $_GET["data"]; з якого ми отримаємо дані у файл на сервері. Як надсилати дані get через форму я думаю ясно, тепер спробуємо передати їх через адресний рядок. index.php?data=1 якщо ми вб'ємо такий запит в адресний рядок і відправимо, то у файлі в index.php ми отримаємо з $_GET["data"] значення 1. З цим я думаю те саме все зрозуміло, тепер приклад.

Завдання:є файл index.php з формою відправки get запиту до іншого файлу, наприклад get.php. При отриманні геть запиту файл get.php повинен передати масив даних у index.php. В index.php отриманий масив має вивестись.

Реалізація. Файл index.php

//У формі методом get через приховане поле надсилаємо значення 1

Файл get.php

array("login" => "Administrator", "password" => "h734yuiw8"), 1 => array("login" => "John", "password" => "78dfud776s")); //отримуємо прапор $flag=$_GET["flag"]; //якщо прапор 1 то передаємо масив гетом //магія у функції serialize if($flag==1)( header("Location: index.php?data=".serialize($users).""); exit; ) else( header("Location: index.php"); exit; ) ?>

Php запит post

Php запит post передається так само через форму, тільки атрибут у тезі form буде method="post" . І отримувати дані в вказаному файліми будемо з масиву пост $_POST["search"] і відразу наведемо приклад.

Завдання:надіслати дані з index.php методом POST на сервер у файл get.php і отримати їх назад, якщо поле відправки даних порожнє вивести повідомлення про незаповнене поле. Рішення почнемо з index.php


Заповніть поле запиту

Введений запит:

Файл get.php

Передача масиву AJAX

Виконаємо те саме завдання за допомогою ajax. Взагалі то ajax це технологія, що відноситься до javascript, але в рамках нотатки про передачу даних на сервер торкнемося і цієї технології. Звичайно, ajax це тема окремої статті. У процесі запиту ще виводитимемо гіфку індикатора завантаження. Також маємо два файли index.php та get.php. Файл index.php Не забуваймо підключати jquery. Зверну увагу, для приховування гіфки при першому завантаженні сторінки призначаємо блоку box стиль display: none

© 2022 androidas.ru - Все про Android