uy - Yangi boshlanuvchilar uchun
PHP va GET va POST ma'lumotlarni uzatish usullari. POST, GET: so'rovlar bir-biridan qanday farq qiladi Get usuli yordamida ma'lumotlarni uzatish nima

Tavsif

Metod atributi serverga so'rov usuli haqida xabar beradi.

Sintaksis

...

Qiymatlar

Metod atributining qiymati katta-kichik harflarni sezmaydi. Ikkita usul bor - olish va yuborish.

Qabul qiling Ushbu usul eng keng tarqalgan usullardan biri bo'lib, kerakli ma'lumotlarni olish va ma'lumotlarni uzatish uchun mo'ljallangan manzil satri. Bu holda, ism=qiymat juftlari savol belgisidan keyin manzilga qo'shiladi va ampersand (& belgisi) bilan ajratiladi. Get usulidan foydalanishning qulayligi shundaki, barcha parametrlarga ega bo'lgan manzilni qayta-qayta ishlatish, masalan, brauzer xatcho'plarida saqlash va siz parametr qiymatlarini to'g'ridan-to'g'ri manzil satrida o'zgartirishingiz mumkin. Xabar yuborish usuli brauzer so'rovida serverga ma'lumotlarni yuboradi. Bu sizga olish usulida mavjud bo'lganidan ko'proq ma'lumot yuborish imkonini beradi, chunki u 4KB chegarasiga ega. Katta hajmdagi ma'lumotlar forumlarda, elektron pochta xizmatlarida, ma'lumotlar bazalarini to'ldirishda, fayllarni yuborishda va hokazolarda qo'llaniladi.

Majburiy atribut

Standart qiymat

HTML5 IE Cr Op Sa Fx

FORM tegi, metod atributi



Har qanday loyihani ishlab chiqishda, eng asosiy narsalardan biri foydalanuvchi bilan muloqot qilishdir. Biz undan biror narsani so'rashimiz va unga javob berish (so'rovnoma) huquqini berishimiz mumkin, biz unga mahsulot yoki xizmat haqida o'z fikrini yozish huquqini berishimiz mumkin, agar onlayn rejim yaratish kerak bo'lsa, biz unga xizmatlarimiz narxini hisoblashda yordam bera olamiz. do'kon va boshqalar.

Barcha holatlarda foydalanuvchi biror narsa yozish va biror narsani bosish huquqiga ega bo'lishi kerak. Shakllar aynan shunday.

PHP va HTMLda formalar bilan ishlash

Shakllar forma tegi bilan aniqlanadi:

usul atributi shaklni yuborish uchun qaysi usuldan foydalanilishini bildiradi. Ikkita usul mavjud - GET va POST. Quyida bu haqda ko'proq o'qing, shu bilan birga biz shaklning asosiy elementlari haqida qisqacha gaplashamiz:

Matn maydoni - matn kiritish

Ma'lumot kiritishingiz mumkin bo'lgan matn maydoni. nom atributi- Ism matn maydoni, qiymat- ma'nosi. Ular shunday ko'rinadi:

Tugma - Kirish yuborish

Shakllarni yuborish uchun ishlatiladigan tugma. Bu shunday ko'rinadi:

Matn bloki - Textarea

Matn bloki, odatda katta hajmdagi xabarlarni yozish uchun ishlatiladi. Atribut qatorlari, ustunlar - uzunlik va kenglik.

Tashqi ko'rinish:

Shakllar haqida ko'proq veb-saytimizda yoki boshqa manbalarda o'qing. Ushbu darsning maqsadi qanday qilib ko'rsatishdir PHP yordamida shakllarni qayta ishlash.

Shakllarni yuborishda GET va POST usuli

GET va POST usullari shakl ishga tushirilganda metod atributida ko'rsatiladi:

GET usuli sahifa manzilidagi ma'lumotlarni uzatadi, POST usuli- sarlavhalarda. Bu nima ekanligini yaxshiroq tushunish uchun GET va POST usuli Keling, serverga ismimiz va xabarimizni yuboradigan skript yozaylik va server xabarni ekranda ko'rsatadi.

PHP ma'lumotlarida GET usuli yordamida qabul qilinadi o'zgaruvchida saqlanadi $_GET. Ma'lumotlar POST usuli yordamida uzatiladi o'zgaruvchida saqlanadi $_POST.

Avval GET usuli bilan ishlash uchun kodni, keyin POST usulini yozamiz.

Shakllar - OX2.ru dizayn studiyasi

 

print_r($_GET); //print_r yordamida massivni chiqaring
?>

Ismingiz:
Xabar:



Endi POST usuli yordamida ma'lumotlarni yuborish uchun skriptni qayta ishlaymiz.

Shakllar - OX2.ru dizayn studiyasi

 

print_r($_POST); //print_r yordamida massivni chiqaring
?>

Ismingiz:
Xabar:



Bilan ishlashni yaxshiroq tushunish uchun PHP da shakllar, ma'lumotlarni yuborish va qabul qilish POST va GET usullari, keyingi darsda biz oddiy mantiqiy o'yin qilamiz.

Har qanday loyihani ishlab chiqishda eng asosiy narsalardan biri bu foydalanuvchi bilan muloqot qilishdir. Biz undan biror narsani so'rashimiz va unga javob berish (so'rovnoma) huquqini berishimiz mumkin, biz unga mahsulot yoki xizmat haqida o'z fikrini yozish huquqini berishimiz mumkin, agar onlayn rejim yaratish kerak bo'lsa, biz unga xizmatlarimiz narxini hisoblashda yordam bera olamiz. do'kon va boshqalar.

OX2 2014-10-05 2014-10-05

Brauzer mijozlari veb-serverga ma'lumot yuborishlari mumkin.

Brauzer ma'lumot yuborishdan oldin uni URL kodlash deb nomlangan sxema yordamida kodlaydi. Ushbu sxemada ism/qiymat juftliklari teng belgilar bilan birlashtiriladi va turli juftliklar ampersand bilan ajratiladi.

Name1=qiymat1&name2=qiymat2&name3=qiymat3

Bo'shliqlar olib tashlanadi va o'rniga + belgisi qo'yiladi va boshqa harf-raqamli bo'lmagan belgilar o'n oltilik qiymatlar bilan almashtiriladi. Ma'lumot kodlangandan so'ng u serverga yuboriladi.

GET usuli

GET usuli sahifa so'roviga qo'shilgan kodlangan foydalanuvchi ma'lumotlarini yuboradi. Sahifalar va kodlangan ma'lumotlar bir-biridan ajratilganmi? so'roq belgisi.

http://www.test.com/index.htm?name1=value1&name2=value2

  • GET usuli brauzerning "Joylashuv" maydonida server jurnallarida paydo bo'ladigan uzun qatorni ishlab chiqaradi.
  • GET usuli faqat 1024 belgigacha yuborish bilan cheklangan.
  • Agar parolingiz yoki boshqa parolingiz bo'lsa, hech qachon GET usulidan foydalanmang maxfiy ma'lumotlar serverga yuborish uchun.
  • GET-dan rasm yoki kabi ikkilik ma'lumotlarni uzatish uchun foydalanilmaydi matnli hujjatlar, serverga.
  • GET usuli yordamida yuborilgan ma'lumotlardan foydalanish mumkin atrof-muhit o'zgaruvchisi QUERY_STRING.
  • PHP GET usuli yordamida yuborilgan barcha ma'lumotlarga kirish uchun $_GET assotsiativ massivini taqdim etadi.

if($_GET["name"] || $_GET["age"]) ( echo "Xush kelibsiz ". $_GET["name"]; echo "Siz ". $_GET["yosh"]siz. " yoshda "; Chiqish(); )

Nomi: Yosh:

POST usuli

Usul POST HTTP sarlavhalari orqali ma'lumotlarni uzatadi. Ma'lumotlar usul misolida ta'riflanganidek kodlangan OLISH, va sarlavhaga joylashtirilgan QUERY_STRING.

  • POST usuli yuborilishi kerak bo'lgan ma'lumotlarning hajmi bo'yicha hech qanday cheklovga ega emas.
  • POST usuli ASCII va ikkilik ma'lumotlarni yuborish uchun ishlatilishi mumkin.
  • POST usuli yordamida yuborilgan ma'lumotlar HTTP sarlavhasi orqali o'tadi, shuning uchun xavfsizlik HTTP protokoliga bog'liq. Xavfsiz HTTP-dan foydalanib, ma'lumotlaringiz himoyalanganligiga ishonch hosil qilishingiz mumkin.
  • PHP POST usuli yordamida yuborilgan barcha ma'lumotlarga kirish uchun $_POST assotsiativ massivini taqdim etadi.

Quyidagi misolni joylashtirish orqali sinab ko'ring manba kodi test.php skriptiga kiriting.

if($_POST["name"] || $_POST["age"]) ( agar (preg_match("[^A-Za-z"-]",$_POST["name"])) ( o'lib (" noto'g'ri ism va ism alfa bo'lishi kerak"); ) echo "Xush kelibsiz". $_POST["name"]; echo "Siz ". $_POST["yosh"]siz. "yoshda."; exit(); )

Nomi: Yosh:

$_REQUEST o'zgaruvchisi

PHP o'zgaruvchisi $_REQUEST kabi tarkiblarni o'z ichiga oladi $_GET, $_POST, shunday $_COOKIE. Biz o'zgaruvchini muhokama qilamiz $_COOKIE biz kukilar haqida gapirganda.

PHP $_REQUEST o'zgaruvchisi GET va POST usullari yordamida yuborilgan shakl ma'lumotlaridan natijani olish uchun ishlatilishi mumkin.

Ularning umumiy tomoni shundaki, ular bir xil ishlaydi. Texnik jihatdan ular o'rtasida hech qanday farq yo'q. Ammo mafkuraviy farqlar mavjud.

Men ular haqida PHP kontekstida gapirib beraman. E'tibor bering, HTTP protokoli PHP bilan bilvosita bog'liq, chunki u almashinuv uchun yaratilgan html sahifalar va PHP shunchaki ikkalasining imkoniyatlarini kengaytiradi.

GET so'rovi ma'lumotlarni qabul qilish uchun, POST esa yuborish uchun ishlatiladi. (Texnik jihatdan ular bir xil ishlashini unutmang).

Shuning uchun, PHP kontekstida ushbu mafkuraga asoslanib, biz quyidagilarni amalga oshirdik:
1. Har safar PHP ni ishga tushirganingizda sukut bo'yicha superglobal massivlar ($_GET, $_POST) yaratiladi.
2. So‘rovlar qatorida so‘roq belgisi(?) bo‘lsa. Undan keyin hamma narsa ko'rib chiqiladi parametrlari GET so'rovi, ular "kalit" = "qiymat" formatida taqdim etiladi va ajratuvchi sifatida ampersand belgisi (&) ishlatiladi.
Misol:
GET /index.php?name=Andrey&familiya=Galkin
Bu so'rovlar qatori, 2 ta parametr mavjud. bu parametrlar $_GET massiviga kiradi.
3. $_POST boshqa usulda to'ldiriladi. ushbu massivning mazmuni "so'rov sarlavhalari" dan to'ldiriladi. Ya'ni, ko'zdan aniq yashiringan joydan. Brauzer bunday sarlavhalarni yaratishning barcha ishlarini bajaradi. Ba'zida sarlavhalarda biror narsa qo'lda tahrirlangan bo'lsa-da.

Ko'pincha, post so'rovi shakllarda (ma'lumotlarni yuborish uchun) ishlatiladi.

Misol uchun, bizda 2 ta maydondan iborat kirish formasi mavjud: login va parol.

Tasavvur qilaylik, biz GET usulidan foydalanamiz. Keyin, shaklni yuborayotganda, biz quyidagi manzilga o'tamiz /login.php?login=Andrey&password=123 Bunday ma'lumotni bu tarzda uzatish umuman xavfsiz emasligiga rozi bo'lasiz. Har kim sizning brauzeringizni ochishi mumkin va sayt manzilini kiritishdan boshlab, ular tarixdan parollaringiz va loginlaringizni ko'rishlari mumkin.

Ammo POST usulini belgilagan bo'lsak, biz quyidagi so'rovni qabul qilamiz:
POST /login.php (login=Andrey&password=123) qavs ichidagilar yashirin bo'ladi va brauzerda hech qanday tarzda saqlanmaydi.

Xulosa qilish uchun:
GET - ma'lum bir sahifaga kirish ma'lum bir shakl(saralash, joriy blog sahifasi, qidiruv paneli va boshqalar).
POST - sahifaning ko'rinishiga ta'sir qilmaydigan ma'lumotlarni yuborish uchun, bu ma'lumotlar faqat skript natijasiga ta'sir qiladi (loginlar, parollar, kredit karta raqamlari, xabarlar va boshqalar).

Va yana bir yaxshi yangilik, masalan, ular birlashtirilishi mumkin
POST /index.php?page=login (login=Andrey&password=123) Oʻylaymanki, bundan nima kelib chiqishi va qaysi parametrlar qaysi massivga kirishi haqida yetarlicha tushuntirdim.

PHP-da GET va POST usullaridan foydalanishni ortiqcha baholash qiyin, chunki bu usullar deyarli har bir veb-saytda mavjud. Quyida tavsiflangan materialni o'rganishdan oldin, men sizga html tegi bilan tanishishingizni maslahat beraman

. Keling, ushbu usullarning har birini batafsil ko'rib chiqaylik.

GET usuli

GET usuli ma'lumotlarni uzatish uchun URL satridan foydalanadi. Uzoq va tushunarsiz URL manzillarini ko'rgan bo'lishingiz mumkin. Masalan: function.php?login=Alex&email=dezyakin. Bunday holda, ma'lumotlar function.php da qayta ishlanadi. Savol belgisidan so'ng "?" o'tgan parametrlar ro'yxati mavjud (parametrlar "&" bilan ajratilgan) qiymatlari bilan: login parametriga Alex qiymati, elektron pochta o'zgaruvchisiga dezyakin qiymati beriladi. Ma'lumotlar superglobal $_GET massivida saqlanadi. GET usulidan foydalanishga misol quyida keltirilgan:

Tizimga kirish: Email: Superglobal $_GET massividan foydalanib, biz qabul qilingan qiymatlarni ko'rsatamiz:*/ echo "
login = ". $_GET["login"] ; echo "
email = ". $_GET["email"]; ?>

$_GET superglobal massividan qiymatlarni qanday o'qiganimizga e'tibor bering: $_GET["variable_name"]. Bizning misolimizda o'zgaruvchilar nomlari (name=login va name=email) shaklida e'lon qilingan.

Maslahat:
Qabul qilingan qiymatlarni qayta ishlashdan oldin, men sizga funktsiyalar orqali ularning mavjudligini tekshirishni maslahat beraman isset (o'zgaruvchi_nomi) yoki bo'sh (o'zgaruvchi_nomi)- bu funksiyalar oldingi 2-darsda muhokama qilingan edi: PHPdagi o'zgaruvchilar. Masalan:

isset yordamida mavjudligini tekshirish: if isset ($_GET["login"] ) ( loginni qayta ishlash operatorlari ... } //yoki bo'sh yordamida mavjudligini tekshiring: bo'sh bo'lsa ($_GET["email"] ) ( elektron pochtani qayta ishlash uchun operatorlar ... } ?>

Shaklda siz uzatilgan qiymatlarni qayta ishlovchi fayl nomini belgilashingiz mumkin. Bu formaning harakat atributi yordamida amalga oshiriladi, unga ushbu faylning manzili tayinlanishi mumkin. Odatiy bo'lib, bu fayl tayinlangan joriy fayl(ya'ni, forma joylashgan faylda qayta ishlanadi). Shakldagi ma'lumotlar qayta ishlash uchun srcipt.php fayliga o'tkaziladigan misol:

Tizimga kirish: Email:

script.php fayli qandaydir ma'lumotni qayta ishlovchini o'z ichiga olishi kerak, aks holda ma'lumotlar bo'sh uzatiladi.

GET usuli juda ko'p kamchiliklarga ega:

  • Foydalanuvchi o'tkazilgan parametrlarning qiymatlarini ko'radi;
  • Foydalanuvchi osongina soxtalashtirishi mumkin o'tgan parametrlar;
  • Ikkilik ma'lumotni uzatish noqulay (siz uni kodlashingiz kerak matn formati);
  • O'tkazilgan ma'lumotlar hajmi cheklangan - 8 KB;

Yuqoridagi kamchiliklardan kelib chiqqan holda, GET usuli faqat kichik hajmdagi ma'lumotlarni uzatish kerak bo'lgan hollarda qo'llaniladi va bu ma'lumotlar hech qanday tarzda tasniflanmaydi.

POST usuli

POST usuli GET-dan ma'lumotlarning shaxsiy shaklda uzatilishi bilan farq qiladi. $_POST superglobal massivi mavjud bo'lib, undan ma'lumotlarni quyidagicha o'qish mumkin: $_POST["variable_name"]. Masalan:

Tizimga kirish: "> Elektron pochta: ">
Superglobal $_POST massividan foydalanib, biz qabul qilingan qiymatlarni ko'rsatamiz:*/ echo "
login = ". $_POST["login"] ; echo "
email = ". $_POST["email"]; ?>

Yuqoridagi kodni bajarish natijasi quyidagi rasmda ko'rsatilgan:

Ko'rib turganingizdek, URL manzilida postskript yo'q, ammo shunga qaramay ma'lumotlar qabul qilindi va ko'rsatildi.

Eslatma:
1) POST usuli yordamida uzatiladigan qiymatlar hajmi sukut bo'yicha cheklangan va 8 MB ga teng. Ushbu qiymatni oshirish uchun siz php.ini da post_max_size direktivasini o'zgartirishingiz kerak.

2) PHP ning oldingi versiyalarida qisqa superglobal massiv nomlari $_GET va $_POST oʻrniga uzunroq nomlar ishlatilgan: $HTTP_GET_VARS va $HTTP_POST_VARS . Odatiy bo'lib ular PHP 5 da o'chirib qo'yilgan, lekin siz ularni register_long_arrays parametridan foydalanib php.ini konfiguratsiya faylida yoqishingiz mumkin. Php 6 versiyasida bu uzun nomlar mavjud bo'lmaydi.

3) $_POST dan o'zgaruvchilarni qayta ishlashdan oldin, GET usulida bo'lgani kabi, o'zgaruvchilarning mavjudligini tekshirishni maslahat beraman.



 


O'qing:



Chap menyuni oching cayo coco

Chap menyuni oching cayo coco

Kayo Koko oroli - Kubaning markazidagi kurort oroli. Kayo Koko orolining joylashuvi to'g'ridan-to'g'ri Canal Viejo ro'parasida joylashgan ...

Nima uchun bizga radioaloqa va radiostansiyalar kerak?

Nima uchun bizga radioaloqa va radiostansiyalar kerak?

Ba'zilar yangi iPhone, boshqalari mashina, boshqalari esa radiosi uchun ehtiyot qismlar to'plami va yangi dinamikni orzu qiladi. Yaqinda bir vaqt bor edi...

Kendall va Spearman darajali korrelyatsiya koeffitsientlari Kendall darajali korrelyatsiya koeffitsienti misoli

Kendall va Spearman darajali korrelyatsiya koeffitsientlari Kendall darajali korrelyatsiya koeffitsienti misoli

Ekspert baholarini taqdim etish va dastlabki ishlov berish Amalda baholashning bir necha turlari qo'llaniladi: - sifatli (ko'pincha-kamdan-kam hollarda,...

Dasturlash funktsiyalari

Dasturlash funktsiyalari

Ishning maqsadi: 1) funktsiyalarni tavsiflash qoidalarini o'rganish; 2) C++ tilida dastur yozishda funksiyalardan foydalanish malakalarini egallash.Nazariy...

tasma tasviri RSS