Internet Derazalar Android
Kengaytirmoq

Post va oddiy so'zlar bilan so'rovlarni oling. Brauzerni qanday yuborish mumkin: PHP-da PHP-ning keyingi posti Misollar

Ushbu darsda biz shakllar va sahifalar o'rtasidagi ma'lumotlarni uzatishni ko'rib chiqamiz. Ushbu usullar post va olish. Biz bir-birimiz haqida alohida va batafsilroq gaplashamiz. Umuman olganda, bu shakllar o'rtasidagi aloqa qilish kerak. Masalan, biz sahifada ba'zi maydonlarni to'ldiramiz va ularni qayta ishlash uchun boshqa sahifaga topshirishimiz kerak.

PHP-da usulni oling

Avvalambor, biz dasturni tahlil qilamiz. Bu barcha o'zgaruvchilar va ularning qadriyatlari to'g'ridan-to'g'ri manzil orqali uzatiladi. Endi siz hamma narsani misolda ko'rasiz va hatto ko'p saytlar va forumlar qanday ishlashini tushunasiz.
Masalan, bizda ushbu turdagi HTML sahifasi mavjud:

Kirishdan foydalangan holda o'zgaruvchi o'zgaruvchilar misolidagi sahifa bog'lamoq

Havolani ko'ringmi? Bu murakkab va bir nechta qismlardan iborat. Keling, javonlar atrofidagi hamma narsa:
https: // sayt - domenning manzili yoki, shuningdek, chaqirilganidek, xost.
index.php. - so'rovni amalga oshiradigan PHP sahifa.
? - o'zgaruvchilar bilan manzil va blok orasidagi ajratish belgisi.
Keyingi belgilar bilan ajralib turadigan o'zgaruvchilar va ularning qiymatlari. & .
ism \u003d Sergey - Ism o'zgaruvchisi va uning Sergey qiymati.
yosh \u003d 22. - Xuddi shu, o'zgaruvchan yosh, 22-savol.

Barcha demontaj qilingan, endi keling, u qandaydir usuldan foydalanib, u qanday ishlov berish usulini ko'rib chiqaylik.
Siz eslayotganingizdek, sahifa index.php, biz unga o'tdik:

Boshlash uchun maslahat: Har doim o'zgaruvchilarni to'g'ri tekshiring: haqiqiy qiymatga muvofiqligi va boshqalar. Hamma narsa manzillar paneli orqali uzatilganligi sababli, ma'lumotlar osongina almashtirilishi va saytni zarar etkazishi mumkin. Endi kodning o'zi bo'yicha: biz, nom va yoshdagi bo'shliqning o'zgaruvchilarini bo'shatib, agar bo'sh bo'lmasa, ularni olib tashladik, keyin shunchaki xabar berdi.
Hammasi oddiy, rozi bo'ladimi? Masalan, siz HTML sahifasini yaratishingiz va havolalarni indeks.php-da index.php va natijada ko'rsatilgan qiymatga qarab ko'rsatishingiz mumkin. Xo'sh, biz bu haqda keyinchalik noldan php-dagi veb-sayt yaratish haqida maqolada gaplashamiz. Hech narsani sog'inish uchun RSS-ga obuna bo'lishingizni maslahat beraman.

PHP PHP usuli

Ushbu usul ishini namoyish qilish uchun bizda oddiy chiziqdan biroz ko'proq vaqt kerak bo'ladi :) HTML sahifasini to'ldirish shakli bilan yaratish kerak, ammo hech narsa, men sizga tayyor namuna beraman :

Postdan foydalangan holda o'zgaruvchi o'zgaruvchilar misolidagi sahifa

Ma'lumotni uzatish uchun maydonlarni to'ldiring:

Ismingizni ko'rsating:

Yoshingizni ko'rsating:

Shunday qilib, biz HTML sahifasini oddiy shakl bilan yaratdik. Yodingizda bo'lsin, pochta usulida faqat shaklda foydalanish mumkin.
Birinchi shakl parametri "usul" dir, u biz uzatish uchun foydalanadigan usulni belgilaydi. Siz taxmin qilganingizdek, u yoki post. Bunday holda, agar olish o'rnatilsa, unda dalalarning barcha ismlari (o'zgaruvchan ismlar shaklida), shuningdek ularning qiymatlari, shuningdek, olish usuli haqida ma'lumot beriladi. Agar pochta o'rnatilgan bo'lsa, unda o'zgaruvchilar va qiymatlarning barcha nomlari veb-serverga brauzer so'rovi sifatida uzatiladi. Ya'ni, ular manzil panelida ko'rinmaydi. Ko'p hollarda bu juda foydali. Shuningdek, post xavfsizroq, shuningdek aniq, chunki ularning qadriyatlari bo'lgan o'zgaruvchilar endi tahrirlash oson emas, ammo bu mumkin.

Shaklning ikkinchi parametri "harakat". Bu biz ma'lumot uzatadigan skript faylining yo'l va nomi. Bizning holatda, bu indeks.php. Bu yo'lni va to'liq, ya'ni: harakat \u003d "https://my_site.ru/index.php". Agar siz "Harakat" parametrining qiymatini ko'rsatmasangiz, barcha ma'lumotlar asosiy skript, ya'ni saytingizning indeks.php indeks sahifasi, bu mantiqiy bo'lgan.

Endi biz bizning shaklimizdan ma'lumotlarni olamiz. Biz indeks.php-da o'tganimizda, bu kod ushbu sahifaning kodidir:

"; Echo" nomi - "; echo $ _post [" foydalanuvchi_name "]; echo"
yosh - "; echo $ _post [" yil "];" yillar "; aks-sadosi yo'q edi. Har bir vaqtni tekshirib turing."

Bo'shlik va ruxsat etilgan qiymatlarni tekshirishni unutmang. Keyinchalik, bizning o'zgaruvchilar nima uchun foydalanuvchining foydalanuvchi_name_name va yoshiga nomlanganligini aniqlashtirishingiz kerakmi? Va siz yuqorida yaratilgan shakl maydonlariga qaraysiz. U erda ko'ring kirish nomi \u003d "User_name" turi \u003d "Matn" ? Bu erda ism parametridir va biz ushbu maydon bilan birga boradigan o'zgaruvchining ismini o'rnatadi. Yoshi bilan bir xil. Umid qilamanki, bu aniq. Xo'sh, o'zgaruvchining o'zgaruvchisiga va uning qadriyatlarini post orqali sotib olish, biz yuqorida ko'rib chiqilgan getdan deyarli farq qilmaydi.

Xo'sh, darsga katta, ammo eng foydali narsalardan biri bo'lib chiqdi, chunki shakllar va sahifalar o'rtasidagi o'zgaruvchilarning pul o'tkazmasi pHP-dan foydalanadigan o'zaro bog'liq.

Siz manzillar ko'p saytlarda ko'rib chiqilishi mumkinligini payqadingiz:

Http: //index.php? Blogi \u003d 2

Bu erda, phpni bilmaslik, siz faylga murojaat qilishingizni taxmin qilishingiz mumkin index.php. Ammo savolning savolidan keyin kam odam biladi. Hammasi juda oddiy: ! Blog \u003d 2 Bu global o'zgaruvchining "$ _GGO [" Blog "]" "2" qiymati bilan. Shunday qilib, men ma'lumotlar bazasidan chiqish uchun javobgar bo'lgan skriptga o'zgaruvchini uzataman. Keling, kichik skript yozaylik, unda siz faqat aniq ko'rasiz:

agar (Ismet ($ _ ["blog"]))))) (
echo $ _Get ["Blog"];
}
?>

Biz () shartnomasi operatori () ushbu satrga arziydigan holat sifatida foydalanamiz:

Issiq ($ _ olish ["Blog"]

issiq () qavs ichida sanab o'tilgan o'zgaruvchan o'zgaruvchi bo'lsa, shunga o'xshash holatda bo'lsa, shunga o'xshash ovoz mavjud bo'lsa, unda tarkibni chiqaring ekrandagi ushbu o'zgaruvchining. Bu shunday bo'ldi:

Menimcha, global o'zgaruvchilar aniq yaratilgan. $ _Get. manzil barida e'lon qilgan identifikator bilan ( bu holda, "Blog" identifikatori bilan)

Endi men bir lahzani aniqlashni xohlayman. Aytaylik, biz ikkita o'zgaruvchini e'lon qilishimiz kerak, buni qanday qilish kerak? Birinchi o'zgaruvchining savol "?" Deb e'lon qilinadi. Ikkinchi o'zgaruvchining bunday belgidan keyin e'lon qilinadi "&" ( Rostini aytsam, men qanday alomatni bilmayman ), bu erda uchta o'zgaruvchini berish misolida:

Http: //ssilex.php? A \u003d 1 & b \u003d 2 & c \u003d 3

Bu erda chiqish kodi:

agar (Issiq ($ a »))) va Issiq ($ _ b))) va Ismet ($ c ')))))) (
Echo $ _Get ["A"]. "
";
Echo $ _Get ["B"]. "
";
Echo $ _Get ["C"]. "
";
}
?>

Shart quyidagicha tuyuladi:

Agar global o'zgaruvchan $ _Get ["A"] va global o'zgaruvchan $ _Get ["B"] va global o'zgaruvchan $ _Get ["C"] Ularni ekranda chiqaring, Bu erda natijasi:

Shakllar

Borishdan oldin xabar. So'rovlar, siz qanday shaklni qismlarga ajratish kerak? Nega sizga kerak? Chunki global o'zgaruvchan $ _post ["] shakllar orqali yaratiladi. Shakl nima? Bular foydalanuvchi ma'lumotlarini kiritish uchun maydonlar. Maydonlar bir qatorda, katta maydonlarda, radio tugmalari, katakchalar mavjud. Biz hamma narsani tartibda tahlil qilamiz ...

Shakl - bu yorliq:


Shakl elementlari

Formada sifatlar mavjud, eng keng tarqalgan narsalar ro'yxati:

Keling, forma yaratamiz:


Shakl elementlari

Men faylni ishlov bergich fayl sifatida o'rnatdim test.php. Bu erda men siz uchun misollarni yozyapman. Post usulini qo'ydim, chunki 99,9% hollarda ushbu usullardan foydalanadi. Men ham forma nomimizni tayinladim

Endi shakllar dunyosiga o'ting. Avvalo, deyarli barcha elementlar yorliq ekanligini tushunishingiz kerak Faqat atributda farq tur Ushbu teglar. Siz ishlatgan shakllarni sanab bering:

Ishonchim komilki, siz bunday sohalarni uchratmadingiz, shuning uchun bu erda shunday deyilgan: "Hech qanday izoh"

Endi keling, biz bundan keyin ham ishlayotgan kichik o'quv ankini yaratamiz. Bizning vazifamiz - bu to'ldirish, pol, qaysi mamlakatdan, eng sevimli rang va matnni o'zi haqida biron bir narsa qo'shishi mumkin bo'lgan matnning nomini aytadigan kichik shaklni yaratishdir. Men shunday qildim:

Sizning ismingiz ismi otasining ismi:

Sizning jinsingiz:
M.
J.

Siz qaysi mamlakatdansiz



Sevimli rang (a):

Qora:
Qizil:
Oq rang:
Boshqalar:

O'zim haqimda:




E'tibor bering, deyarli barcha yorliqda xususiyatga ega qiymat.U nima o'zi? Siz boshqa sahifaga o'tkazmoqchi bo'lgan ma'lumotlarni qayd etadi. Umid qilamanki, bu aniq

Endi siz ushbu kodni brauzerda bajarsangiz, biz quyidagilarni ko'ramiz:

Forma men atribut ishlatganman harakat. ma'nosi bilan test.php. Bu shuni anglatadiki, men allaqachon shakldagi ma'lumotlar test.php fayliga yuborilganligini anglatadi.

Post so'rovi

Endi siz kiritgan ma'lumotlarni ko'rishimizga imkon beradigan PHP kodini yozing. Ma'lumotlar qayerda saqlanadi? Ilmiy so'rovda bizning ma'lumotlarimiz $ _Get global o'zgaruvchida yotar edi]. Post so'rovi bilan ma'lumotlar global o'zgaruvchan $ _post ["] dada bo'ladi. Kvadrat qavs ichida, global o'zgargan bo'lsa, identifikatorni global o'zgaruvchan bo'lsa, buyurish kerak. Savol shundaki, ushbu identifikator qaerda bo'ladi? Shuning uchun ismni sifat elementlarida kerak! Bu bizga global postda kalitda xizmat qiladi. Xo'sh, skript tavsifini boshlaylik:

if (Issiq ($ _ post ["yuborish"])))) (
Echo "To'liq ismi:" $ _ post ["Fio"]. "
";
Echo "Jins:" $ _ post ["jinsiy aloqa"]. "
";
Echo "Yashash mamlakati:" $ _ post ["shahar"]. "
";

Echo "Sevimli rang (a):
";
Echo $ _post ["Color_1"]. "
";
Echo $ _post ["Color_2"]. "
";
Echo $ _post ["Color_3"]. "
";
Echo $ _post ["Color_4"]. "
";
Echo "Men haqimda:" $ _ post ["haqida"]. "


";
}
?>

Agar sharif yozma ravishda yozilgan bo'lsa: Agar global o'zgaruvchan $ _post ["Yuborish"] bo'lsa, ekrandagi ma'lumotlarni namoyish eting. Ushbu global o'zgaruvchilar Agar biz ushbu misolni bosish uchun ushbu misolni talab qiladigan yuborish tugmasini bossangiz, bu global o'zgaruvchilar yaratilgan. Siz nima uchun tugmani atribut nomi talab qilinmaydi? Hammasi juda oddiy. Odatda dasturchi tugma tugmachasini bosib o'tmaydi va yuborilgan ma'lumotlarni kuzatib boradi. To'g'ri ishlash uchun, masalan, kontakt shakli, tugmani bosmasdan kuzatib borishingiz kerak, ammo ma'lumotni kiritishning to'g'riligi va bu ma'lumotlarning umuman joriy qilinganligini bilib oling. Misolda biz yuborilgan ma'lumotlarni tekshirmagan edik va shunchaki tugmachani bosish uchun, masalan, tugmachani bosing, masalan, soddalashtiramiz ... Bu biz shunday qildik:

Xulosa

Xo'sh, bugungi kunda biz skriptlar orasidagi ma'lumotlarni uzatishning ikkita usulini ajratdik va shakllar bilan tanish bo'lgan Gallopam. Umid qilamanki, siz hech bo'lmaganda biron bir narsani foydali deb umid qilaman. Agar sizda biron bir savol yoki fikrlar bo'lsa, sharhlar yozing. Sizga omad, bugun menda hamma narsa bor!

P.S.: Siz kompyuter o'yinlari yanada reallashtirilishini xohlaysizmi? Windows 7 uchun Directx 11 Siz Windows-da bepul yuklab olishingiz mumkin! Ajoyib grafikadan zavqlaning!

Ushbu xabar mening maqolalarimdan biriga izohlardagi savolga javobdir.

Maqolada HTTP usullari nimaga kirishini / post / o'chirish / o'chirish / o'chirish / o'chirish / boshqalar, ular ixtiro qilingan va qolganlarga muvofiq qanday ishlatish kerakligini aytmoqchiman.

Http.

Xo'sh, asosiy internet protokollaridan biri nima? Payents RFC2616-ga yuboradi va qolganlari insoniy haqida gapirib beradi :)

Ushbu protokol so'rov va javob (javob) (javob)) tomonidan o'rnatilgan ikkita kompyuter (mijoz va server o'rtasidagi o'zaro ta'sirni tavsiflaydi). Har bir xabar uchta qismdan iborat: boshlang'ich chiziq, sarlavhalar va tana. Bunday holda, faqat boshlang'ich chiziq majburiydir.

So'rov va javob uchun boshlang'ich chiziqlar boshqa formatga ega - biz faqat so'rovning boshlang'ich chizig'iga qiziqamiz, bu quyidagiga o'xshaydi:

Uri URI Http / Versiya. ,

Bu erda uslub faqat HTTP so'rov usuli, URI resurs identifikatori, versiyasi protokolning versiyasi (hozirgi yangilangan 1.1).

Sarlavhalar - bu yo'g'on ichakda ajratilgan juftlik nomi. Sarlavhalarda turli xil xizmatlar ma'lumotlari uzatiladi: mijozning kodlashi, brauzerning nomi va versiyasi, mijoz kelib chiqqan (murojaat qiluvchi) va boshqalar.

Xabar tanasi aslida, ma'lumotlar uzatiladi. Bunga javoban uzatilgan ma'lumotlar, qoida tariqasida, brauzer so'radi va so'rovda, masalan, xabar tanasida serverga yuklab olingan fayllarning mazmuni uzatiladi. Ammo qoida tariqasida, so'rovdagi xabar tanasi umuman yo'q.

HTTP hamkorligiga misol

Misolni ko'rib chiqaylik.

Tekshiruv:
Gekka / 5.0 (x11) gekko / 2008050509 firefox / 3.0b5-ni qabul qilish: Matn / HTML ulanish: Matn / HTML ulanish:
Birinchi satr - so'rovlar sari, qolganlari sarlavhalar; Tana xabari yo'q

Javob:
Http / 1.0 200 OK serveri: nginx / 0.6.31 Tarkib turi: RU Content-Tur: Matn / HTML; CARTASSASA \u003d UTF-8 tarkib chizmasi: 1234 ulanish: Yoping ... HTML sahifa ...

Resurslar va usullar

Keling, iltimosning boshlang'ich chizig'iga qaytib boramiz va u Uri kabi parametrlarni taqdim etayotganini unutmaylik. Bu yagona resurs identifikatori sifatida aniqlangan yagona resurs identifikatoridir. Resurs, qoida tariqasida, serverdagi fayl (ushbu holatda Uri misol), ammo umuman, har qanday mavhum ob'ekt bo'lishi mumkin ("/ bloglar / WebDev /" - ko'rsatadi "Internet taraqqiyot" bloki ma'lum bir faylda emas).

HTTP so'rov turi (HTTP usulini ham deb atash) serverni resurs bilan ishlab chiqarishni istaganligimizga ko'rsatadi. Dastlab (90-yillarning boshlarida) mijoz buni resursdan olishni istagan deb taxmin qilingan, ammo hozirda http protokolida siz xabarlarni yaratishingiz, profilni yaratish, xabarlarni o'chirishingiz, xabarlarni o'chirishingiz, xabarlarni o'chirish, xabarlarni o'chirishingiz, ularni o'chirish. Va bu harakatlar "kvitansiya" atamasini birlashtirish qiyin.

HTTP uslubi darajasida resurslar bilan harakatlarni ajratish va quyidagi variantlar ixtiro qilingan:

  • Olish - manbani olish
  • Post - Resurs yaratish
  • Qisqonni yangilash
  • O'chirish - resursni o'chirish
HTTP spetsifikatsiyasi serverni barcha usullarni tushunishga majbur qilmasligiga e'tibor bering (aslida 4 dan ortiq) - faqat olish kerak, shuningdek, u bilan so'rov olishda amalga oshirilayotgan serverni ko'rsatmaydi bir yoki boshqa usul. Va bu "Delindex.php" yoki http / 1.1-ga javoban server majbur emas Serverdagi indeks.php sahifasini o'chirish, shuningdek /index.php http / 1.1 so'rovi majbur emas Sizga indeks.php sahifalarini qaytaring, u uni o'chirib tashlashi mumkin, masalan :)

Dam olish o'yinga kiradi

Qolgan (vakolatli davlat transferi) Bu muddat 2000 yilda Roy maydonchasi tomonidan kiritilgan (Roy Liting) - HTTP protokolining ishlab chiquvchilaridan biri - veb-sayt qurilishi printsiplari guruhining nomi. Umuman olganda, qolganlari httpdan kengroq maydonni qamrab oladi - bu boshqa tarmoqlarda boshqa protokollar bilan qo'llanilishi mumkin. Qolgan dam olish va "resurs" va "fe'l" tushunchalariga asoslangan mijozning o'zaro ta'siri va serverining asoslarini tavsiflaydi (siz ularni ikkalasi ham o'rganishingiz mumkin) HTTP holatida, manba uning Uri tomonidan belgilanadi va fe'l http usulidir.

Qolgan URIni turli xil resurslardan foydalanishni rad etish (ya'ni /index.php?php?php?php?induphp?induphp?artle_id - har xil narsa emas) Turli harakatlar uchun HTTP usullari. Ya'ni, dam olish yondashuvidan foydalanib yozgan veb-dastur HTTP usuli bilan resursni o'chiradi (albatta, bu hamma narsani va hamma narsani olib tashlash uchun imkoniyat berish kerak degani emas, balki hamma narsani va hamma narsani olib tashlash kerak degani emas, lekin har qanday Ilovada o'chirish uchun so'rov HTTP-Delete usulidan foydalanishi kerak).

Dam olish dasturchilarga avvalgidan ko'ra standartlashtirilgan va biroz chiroyli veb-ilovalarni yozish imkoniyatini beradi. Qolganlaridan foydalanib, yangi foydalanuvchi qo'shish uchun URI hech qanday /user.php?at\u003dcreate emas, va oddiygina / post usuli).

Natijada, Mavjud spetsifikatsiyani birgalikda http va qolgan yondashuvning oxiri turli xil http usullarining ma'nosini oladi. Qabul qilish - Resursni qaytaradi, post - yangi, mavjud, o'chirish - o'chirishni yangilaydi.

Muammolar?

Ha, dam olish amaliyotidan foydalanish bilan kichik muammo bor. Ushbu muammo deyiladi.

So'rovlarni qo'yish / o'chirish So'rovlar serveriga (ayting, Curnl orqali yoki Telnet orqali) orqali yuborish mumkin, ammo siz to'liq xled qo'yish / o'chirish so'rovini yuboradigan HTML shaklini yarata olmaysiz.

Gap shundaki, HTML spetsifikatsiyasi sizga ma'lumot yoki post orqali ma'lumot yuboradigan shakllar yaratishga imkon bermaydi. Shuning uchun, boshqa usullar bilan normal ishlash uchun ular ularga sun'iy ravishda taqlid qilishlari kerak. Masalan, taglikda (uning negizidagi mexanizmi veb-server bilan ta'sir qiladi; tokchalar, rellar, Merb va boshqa yoqut ramkalari bilan va a sifatida. Qiymat usuli nomini belgilang (masalan, "qo'y") - bu holda, so'rov yuboriladi, ammo panjara men qo'yganimni va post qilmasligimni ko'rsatadi.

Ushbu xabar Internetda ma'lumotlarni uzatish printsiplarini ikkita asosiy usul yordamida tushuntirishga qaratilgan: olish va post. Men buni tafsilotlarni qiziqtirganlar uchun deyarli qiziqarli bo'lmaganlar uchun o'zgaruvchan ish jadvali generatoriga qo'shimcha yozdim.

Quyidagi manzilga o'ting (bu vizual izoh uchun): http://calendarin.net/calendar.php?yyar\u003d / 0 brauzer manzillar paneliga e'tibor bering: Calendarin.net/calendar.php ! Yil \u003d 2016 Asosiy fayl deb ataladi, undan keyin savol belgisi (?) Va "2016" qiymati bilan "yil" parametrlari. Shunday qilib, savol belgisi bo'lgan hamma narsa, bu so'rov. Hammasi oddiy. Bitta parametrni uzatish uchun, ammo bir nechtasi, keyin ular amperandni (va) ajratishlari kerak. Misol: kalendarin.net/calendar.php. ! Yil \u003d 2016 va Displey \u003d Ish kunlari va kunlar

Asosiy fayl, shuningdek, savol belgisi (?), Keyin "2016" qiymati, keyin "Ish kunlari", keyin "Displey" parametrlari bilan "Yil" parametrini chaqiradi. - kunning parametrlari -

Brauzer manzil panelida to'g'ridan-to'g'ri belgilash mumkin. Masalan, "2016" qiymatini o'zgartirish va kalitni bosish, 2017 yil uchun taqvimga borasiz.

Ushbu ma'lumotni yashirin tarzda etkazish (sahifa manzili o'zgarmaydi); Ya'ni, nimani uzatganini ko'rish uchun siz faqat dastur (skript) yordamida foydalanishingiz mumkin. Masalan, matndagi belgilarni hisoblash uchun quyidagi asbobda boshlang'ich ma'lumotlar pochta usuli bilan uzatiladi: http://useononlinletools.com/free/arcakounter.php

Agar savollaringiz bo'lsa, sharhlar va elektron pochtam sizning xizmatingizda.

Oldingi notada ko'rib chiqilgan greation usulidan tashqari, HTTTP protokolida so'rov yuborishning yana bir usuli mavjud. Post usuli, shuningdek, amaliyotda juda ko'p qo'llaniladi.

Agar olish usuliga murojaat qilish uchun URL manziliga so'rovni kiritish biz uchun etarli, keyin hamma narsa boshqa printsip bo'yicha post usulida ishlaydi.

Ushbu turdagi so'rovni bajarish uchun biz veb-sahifada joylashgan "Atributi" tugmachasini bosish kerak. Shuni esda tutingki, ushbu tugmani elementda joylashgan. Post qiymati bilan uslub atributi bilan.

Ushbu HTML kodini ko'rib chiqing:

Matnni kiriting:


Agar foydalanuvchi biron bir matnni matn maydoniga kirsa va "Yuborish" tugmachasini bossa, shundan so'ng foydalanuvchi kiritgan tarkib tarkibiga ega serverga yuboriladi.

Post va oddiy so'zlar bilan so'rovlarni oling

Ushbu o'zgaruvchi pochta orqali yuboriladi.

Agar siz shaklda yozsangiz:

Ushbu ma'lumotlar olish usuli bilan yuboriladi.

Agar so'ralgan bo'lsa, biz o'tkazadigan ma'lumotlar miqdori brauzer uzunligi uzunligi bilan cheklangan bo'lsa, unda pochta orqali so'rovda bunday cheklov yo'q va biz katta miqdordagi ma'lumotlarni uzatamiz.

Post usulining yana bir farqini olishdan, pochta usuli ularga etkazilgan barcha o'zgaruvchilarga va ularning tanasini tanadagi (subyekt-tanadagi) yashiradi. Kirish usuli bo'lsa, ular so'rov simida (so'rov-URI) saqlangan.

Post usuli bo'yicha so'rovning misoli:

Post / http / 1,0 \\ r \\ n
Xost: www.site.ru \\ r \\ n
Ruxsat beruvchi: http://www.site.ru/index.htmmr\\ dot.
Cookie: daromad \u003d 1 \\ r \\ n
Tarkib turlari: ariza / x-www-www-www-www-forma-shakli - \\ r \\ n
Tarkib uzunligi: 35 \\ r \\ n
\\ r \\ n
Kirish \u003d Dima & parol \u003d 12345

Shunday qilib, pochta usuli bo'yicha ma'lumotlarni o'tgan ma'lumotdan o'tish, bu hujumchini ushlab qolish yanada qiyinlashadi, chunki Ular to'g'ridan-to'g'ri ko'rishdan yashiringan, shuning uchun pochta orqali ma'lumotlarni uzatish usuli yanada xavfsiz deb hisoblanadi.

Bundan tashqari, post usuli nafaqat matn, balki multimedia ma'lumotlari (rasmlar, audio, video). Tomiriladigan ma'lumot turini belgilaydigan maxsus tarkib tipek parametr mavjud.

Va nihoyat, ushbu usul bilan uzatiladigan ma'lumotlarni olish uchun post o'zgaruvchisi ishlatiladi.

Bu erda PHP-da qayta ishlash misoli:

echo $ _post ['matn'];
?>

So'nggi eslatmada biz brauzer (mijoz) HTTP serveriga so'rov yuboradi va server HTTP mijoziga HTTP javobini yuboradi. Ushbu so'rovlar va javoblar ma'lum qoidalarga muvofiq beriladi. Bir ketma-ketlikda sintaksis kabi narsa bor. Qattiq belgilangan tuzilish bo'lishi kerak.

Keling, ushbu tuzilishni HTTT protokolida qurish va javoblarni yaratadigan batafsilroq ko'rib chiqamiz.

HTTP so'rovi quyida keltirilgan tartibda ulangan uchta asosiy qismdan iborat. Xabarning sarlavhalari va tanasi o'rtasida bo'sh chiziq bor (ajratuvchi sifatida), bu torli tarjima belgisi.

Bo'sh satr (ajratuvchi)

Post va so'rovlarni oling, ular o'rtasidagi farq nima va nima yaxshiroq va qanday maqsadlar uchun?

xabar tanasi (manbaning tanasi) - ixtiyoriy parametr

Satr so'rovi - pul o'tkazish usuli, HTTP protokol versiyasini olish kerak bo'lgan URL manzili.

Sarlavhalar - Xabar tanasini tasvirlab bering, turli xil parametrlar va boshqa ma'lumotlar va ma'lumotlarni uzating.

xabar tanasi - Bu so'rovda uzatiladigan ma'lumotlar. Xabar tanasi ixtiyoriy parametrdir va yo'qolmaydi.

Serverdan javob olganimizda, xabar tanasi ko'pincha veb-sahifaning tarkibi. Ammo, serverga so'rovlar paytida ba'zida u serverga to'ldirilgan ma'lumotlarni etkazganimizda, ba'zan ham bo'lishi mumkin.

Batafsilroq, har bir so'rov elementi, biz quyidagi eslatmalarni ko'rib chiqamiz.

Masalan, serverga bitta haqiqiy so'rovni ko'rib chiqaylik. Men so'rovning har bir qismini mening rangim bilan ta'kidladim: so'rov chizig'i - yashil, sarlavhalar - to'q sariq, tana xabari ko'k.

Brauzerdan so'rov:

Xost: WESTYRY.INFO.

Cookie: WP-sozlamalar

Ulanish: tirik qolish

Quyidagi misol allaqachon xabar tanasiga ega.

Server Javob:

Tarkib turlari: matn / HTML; CHASSIT \u003d UTF-8

Transfer-Encoding: To'plangan

Ulanish: tirik qolish

Tirik qolish: vaqt \u003d 5

X-Pingback: //webyry.info/xmpc.php

Hujjatsiz hujjat

Mana, mijoz va HTTP serverining xabarlari.

Aytgancha, Yandex metriks va Google Analytics-ning "Maqsadlari" dan foydalanib, ba'zi elementda mantiqiy ma'noda mantiqiy ekanligini bilishni xohlaysizmi?

Ishlamaydigan narsani olib tashlang, qanday ishlarni qo'shing va daromadingizni ikki baravar oshiring.

Yandex metriks maqsadlarini belgilash bo'yicha kurs ..

Google Analytics Gals sozlash kursi ..

HTTP mijoz serverga so'rov so'rovi shaklida so'rov yuboradi, bu quyidagi formatga ega:

  • So'rov qatori (majburiy element)
  • Sarlavha (ixtiyoriy element)
  • Bo'sh satr (majburiy element)
  • Xabar tanasi (ixtiyoriy element)

Ushbu elementlarning har birini alohida-alohida ko'rib chiqing.

Satr so'rovi

So'rovlar sari token bilan boshlanadi, shundan so'ng URI so'rovi va protokol versiyasi kuzatiladi. Elementlar bir-biridan parchalanadi:

Ushbu elementni batafsil ko'rib chiqing

So'rov usuli

Ushbu element server tomoni ko'rsatilgan URI havetiga qo'ng'iroq qilish kerak bo'lgan usulni bildiradi.

Httpda sakkizta usul mavjud:

  • Boshliq.
    Status satrini va URI serveridan sarlavhani olish uchun ishlatiladi. Ma'lumotlarni o'zgartirmaydi.
  • Olish.
    Belgilangan URIga serverdan ma'lumotlarni olish uchun ishlatiladi. Ma'lumotlarni o'zgartirmaydi.
  • Xabar.
    HTML shakllaridan foydalanib, serverga ma'lumotlarni yuborish uchun foydalanilgan (masalan, ishlab chiqaruvchi va boshqalar).
  • Qo'yish.
    Oldingi barcha ma'lumotlarni Resurs yangi yuklab olingan ma'lumotlarni almashtiradi.
  • O'chirish.
    URI tomonidan belgilangan resurs bo'yicha barcha ma'lumotlarni olib tashlaydi.
  • Ulanmoq.
    Belgilangan URI bo'yicha serverga tunnel ulanishini o'rnatadi.
  • Variantlar.
    Belgilangan manba uchun ulanish xususiyatlarini tavsiflaydi.
  • Iz.
    URIda ko'rsatilgan resursning qaytarish izlarini o'z ichiga olgan xabarni taqdim etadi.

URI so'rovi

Uri (yagona resurs identifikatori) - bu so'rov yuboriladigan resurs identifikatoridir. Quyida eng keng tarqalgan URI formati:

‘*’ HTTP so'rovi ma'lum bir manbaga, balki serverga tegishli bo'lmaganda ishlatiladi. Faqatgina usul manbaga murojaat qilish kerak bo'lmagan holatda ishlatilgan. Masalan,

mutlaquri. Http so'rovi proksi-da amalga oshirilganda ishlatiladi. Proksi so'rovni arzon keshdan uzatishni va javobni qaytarishni so'radi. Masalan:

Asbivived_pire | manbaeng chatso ishlatiladi.

Kirish va pochta orqali ishlashni o'rganish

Muayyan serverning o'ziga xos manbai talab qilinadi. Masalan, mijoz 80-port orqali serverdan resurs olishni xohlaydi. "Www.promele.net" resurs manzili va quyidagi so'rovni yuboradi:

Sarlavha maydonlarini talab qilish

Sarlavha dalalari mijozga so'rov haqida qo'shimcha ma'lumot berishga va o'zlarini serverga qo'shimcha ma'lumotlarni uzatish imkonini beradi. Ushbu maydonlar so'rovda qatnashuvchilar sifatida ishlaydi.

Quyida ishlatilishi mumkin bo'lgan eng muhim sarlavha maydonlarining kesishishi kerak:

  • Tasvetset.
  • Qabul qilish-kodlash
  • Qabul qiluvchi til.
  • Ruxsat
  • Kutmoq
  • Agar moslik
  • Agar o'zgartirilsa - shundan beri
  • Agar umuman moslama
  • Agar diapazon bo'lsa.
  • Agar -dan beri--
  • Oralig'ida.
  • Shaxs.
  • Foydalanuvchi

Agar o'z mijozingiz va o'zingizning mijozingiz va o'zingizning veb-serveringizni amalga oshirishga qaror qilsak, unda biz o'zingizning sarlavhalaringizni yaratamiz.

HTTP so'roviga misol

Bunda biz HTTP so'rovlarini o'rganishni yakunlaymiz.
Keyingi maqolada biz HTTP javoblarini ko'rib chiqamiz.

HTTP orqali so'rov yuborishning bir usuli - bu olish usulini so'rash. Ushbu usul, serverning eng keng tarqalgan va talablari o'z foydasi bilan uchraydi.

Ko'chib o'tish so'rovini yaratishning eng oson usuli, URL-ni brauzer manzil panelida yozish uchun ishlatilishi mumkin.

Brauzer serverni taxminan quyidagi ma'lumotlarni yuboradi:

Olish / http / 1.1
Xost: WESTYRY.INFO.
Foydalanuvchi-agent: Mozilla / 5.0 (Windows Nt 6.1; RV: 18.0) Gekko / 20100101 Firefox / 18.0
Qabul qilish: Matn / HTML, ariza / XHTML + XML, Amalgagi / XML; Q \u003d 0.9, * / 0.8
Qabul qiluvchi til: ru en, ru; q \u003d 0.8, en-AQSh; Q \u003d 0.5, 1
Qabul qilish-kodlash: gzip, deforatsiya
Cookie: WP-sozlamalar
Ulanish: tirik qolish

So'rov ikki qismdan iborat:

1. Talab liniyasi (so'rov chizig'i)

2. Sarlavhalar (xabar sarlavhalari)

E'tibor bering, so'rovda xabarlar tanasi mavjud emas. Ammo, bu bu bilan hech qanday ma'lumotni serverga o'tkaza olmaymiz degani emas.

Olish va post usullari o'rtasidagi farq

Buni maxsus parametrlar yordamida amalga oshirish mumkin.

So'rovni olish uchun parametrlarni qo'shish uchun siz "URL manzili oxirida"? "Belgisini qo'yishingiz kerak Va undan keyin ularni quyidagi qoidada o'rnatishni boshlashdan keyin:

parametr_name1 \u003d Qiymat parametrlari1 & parametr nomi2 \u003d Qiymat parametrlari2 & ...

Parametrlar orasidagi ajratuvchi "&" belgisi.

Masalan, agar biz ikkita qiymatni, foydalanuvchi nomini va uning yoshini berishni istasak, keyingi satrda quyidagilar amalga oshirilishi mumkin:

http://site.ru/page.php?name\u003dumamame\u003d27

Ushbu so'rov bajarilganda, ma'lumotlar veb-dasturlash serveridan foydalanib serverda olinishi mumkin bo'lgan so'rovlar_tring muhit o'zgaruvchisiga tushadi.

Bu erda PHP-da amalga oshirilishi mumkin bo'lgan misol.

Echo "Sizning ismingiz:". $ _Get ["Ism"]. "
»;
"Sizning yoshingiz:" Echo. $ _Get ["Yosh"]. "
»;
?>

$ _Get dizayni ["parametr nomi"] Transportlangan parametrning qiymatini ko'rsatishga imkon beradi.

Ushbu kodni brauzerda amalga oshirish natijasida quyidagilar ko'rsatiladi:

Sizning ismingiz: Dima
Yoshingiz: 27

shuningdek, biz serverni olish uchun so'rovni amalga oshiramiz.

Ular orasida umumiy bo'lganligi, ular bir xil ishlayotganlari. Ularning orasidagi farq texnik jihatdan yo'q. Ammo mafkuraviy farqlar mavjud.

Men ular haqida PHP kontekstida aytib beraman. Esda tutingki, HTTP protokoliga beg'araz munosabat mavjud, chunki u HTML sahifalar va PHP-ni almashtirish uchun yaratilgan, shunchaki imkoniyatlar va boshqasini kengaytiradi.

Ma'lumotni yuborish uchun so'rovni olish uchun so'rovni oling. (Men sizga texnik ishlarni teng ravishda eslatib o'taman).

Shuning uchun, PHP kontekstida ushbu mafkuraga ishonish quyidagicha amalga oshirildi:
1. Har safar PHP ishga tushirilgan, Superglobal massivlar ($ _G, $ _post) sukut bo'yicha yaratilgan.
2. Agar so'rov satrida (?) Savol belgisi bo'lsa. Keyin hamma narsadan keyin ko'rib chiqiladi parametrlar "Kalit" formatida taqdim etilgan so'rovlarni oling \u003d "Qiymat" va Ampersandgarish belgisi sifatida (&) Ampersand imzolari ishlatiladi
Misol:
Olish /index.php?name\u003dandrey&halkin
Bu so'rov satri, bu erda 2 parametr. Ushbu parametrlar $ _Get massiviga tushadi.
3. $ _post boshqa usul bilan to'ldiriladi. Ushbu massivning mazmuni "So'rov sarlavhalari" dan to'ldirilgan. Ya'ni ko'zdan ko'rinmas bo'lgan joydan. Bunday sarlavhalarni yaratish uchun butun odatiy hol brauzerni oladi. Garchi ba'zan biron bir narsa sarlavhalarda qo'llanmani qo'lda tahrirlanadi.

Ko'pincha pochta orqali so'rov shakllarda ishlatiladi (ma'lumotlar yuborish).

Masalan, bizda 2 ta maydoncha kirish va parolni kiritish uchun forma mavjud.

Tasavvur qiling, biz mashq usulidan foydalanamiz. Keyin, forma yuborayotganda, biz quyidagi manzilga murojaat qilamiz /login.php?login\u003dandrey vaphord\u003d123 Shunga rozi bo'lish, bu ma'lumotni uzatish xavfsizligiga rozi emasmiz. Kimdir sizning brauzeringizni ochishi va sayt manzilini kiritishni boshlaydi. Bu sizning parollaringizni va tizimga kirishingiz mumkin.

Ammo agar biz pochta usulida ko'rsatsak, unda quyidagi so'rovni olamiz:
Post /login.php (login \u003d andrey & parol \u003d 123) Qavslardagi narsalar yashirin va brauzerda saqlanmaydi.

Umuman olganda, umum
Ilovani ma'lum bir shaklda olish (saralash, blogdagi joriy sahifada qidirish satri va boshqalar).
Post - sahifa displeyiga ta'sir qilmaydigan Mandrel ma'lumotlari uchun ushbu ma'lumotlar faqat skripti, parollari, karta raqamlari, xabarlar va boshqalar).

Va yana bir yaxshi yangilik, masalan, birlashtirilishi mumkin
Post /index.pge\u003dlogin (login \u003d anrey & parol \u003d 123) O'ylaymanki, men u paydo bo'lishiga va qaysi qatorga tushadi deb tushuntirdim.