GET va POST so'rovlari bilan ehtiyot bo'ling. Php ma'lumotlarini serverga yuklash parametrlari get dan php tomonidan so'raladi

Golovna / Muammolarni bartaraf qilish; nosozliklarni TUZATISH

Menda manzil deb nomlangan parametr bilan to'ldirilgan URL tuzilmasi bor.

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

Menda forma tanlash pozitsiyasi bilan ariza tanlash ro'yxati ham bor,

Agar siz tanlashni tanlasangiz, qatordagi tanlash parametri sifatida parametr qiymatlarini tanlash nomi = "pozitsiya" parametri bilan atributga qo'shasiz.

Menda ovqat yo'q, qatorning qiymatiga qo'shimcha ravishda shaklni tanlash qiymatiga kirishni qanday rad etishim mumkin?

Qator parametrining Wiklik qiymati uchun _GET usulidan foydalanaman.

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

Shubhasiz, ma'no shakl elementidan emas, balki URL tuzilishidan kelib chiqadi. Yoki, ehtimol, shunday, qo'shiq aytmang. Xo'sh, buni tekshirib ko'ring, menimcha, bu shakl emas, balki URL manziliga asoslanganligini tushunish muhimdir.

PHP-da tanlangan shaklga kirishni qanday rad etishim mumkin?

Onovity

Sarlavhaga kiritilgan kanonik URL bilan muammo bor.

shunday bo'ladi

Xuddi shu farq - bu + quyidagi qatorda.

Barcha qatorlarni yuvish mumkin emas +. Deyakhi misolida. Aks holda, qaysi biri + bo'lishidan qat'i nazar, ikkala URL manzilidan tarkibni ko'rsataman. Agar siz xafa bo'lsangiz, yon sahifa o'rniga URL o'chiriladi.

Kanonik fragmentlar shakl elementining qiymati emas, balki URI dan dinamik ravishda yaratilgan bo'lsa-da, har ikki tomonda kontent 2 xil kanonik belgilarga ega.

_Get('value') o'zgaruvchisi shakl elementi tartibidan qiymatni oladi. Men buni bilaman, chunki forma elementi qiymatida tarmoq administratori oʻrtasida boʻsh joy mavjud boʻlib, agar forma tarmoq+administratorni ifodalasa, urlenkodlanadi, shuning uchun agar forma elementi qiymatiga mos kela olsam, toʻgʻri kanonik qiymatni oʻrnatishim mumkin.

Ko'pgina saytlarda quyidagi manzillarni topish mumkinligini payqagandirsiz:

http://site/index.php?blog=2

Bu yerda, agar siz PHP tilini bilmasangiz ham, fayl bilan nima qilishimizni taxmin qilishingiz mumkin index.php Ovqatdan keyin nima bo'lishini kam odam biladi. Hammasini bajarish oson: ?blog=2 Bu “2” qiymati bilan “$_GET["blog"]” global o‘zgarishi natijasidir. Shu tarzda, men skriptga o'zgartirish kiritaman, bu ma'lumotlar bazasidan ma'lumot olinadiganligini bildiradi. Keling, hamma sizga o'rgatishi uchun kichik skript yozaylik:

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

Miya operatori if() dan quyidagi qatorda miya qiymati sifatida foydalanamiz:

Isset($_GET["blog"])

isset() sizga o'zgartirish qo'llarda ko'rsatilgan yoki yo'qligini aniqlash imkonini beradi, shuning uchun men kodni quyidagicha ta'rifladim: $_GET["blog"] nima o'zgarish, keyin uni ekranda ko'rsating. Eksa:

Menimcha, global o'zgarishlar ro'y berayotgani aniq $_GET identifikator bilan biz manzil qatorida ovoz berdik ( V bu yigitga"blog" identifikatori bilan)

Endi men bir fikrga oydinlik kiritmoqchiman. Aytaylik, ikkita o'zgartirishga ovoz berishimiz kerak, buni qanday qilishimiz mumkin? Birinchi kishi ovqatlangandan keyin ovoz beradi "?" Bunday “&” belgisidan keyin boshqa saylovchi ovoz beradi ( Rostini aytsam, bu belgi nima ekanligini bilmayman), o'qning dumbasi ulardan uchtasini hayratda qoldirdi:

http://site/index.php?a=1&b=2&c=3

Eksa kodi:

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

Umova shunday eshitiladi:

Agar global o'zgarish bo'lsa $_GET["a"] va global o'zgarish $_GET["b"] va global o'zgarish $_GET["c"] ularni ekranda aks ettiring, Eksa natijasi:

Formie

Avvalo, keling, bunga o'tamiz post Keling, so'raymiz, nima uchun qanday shaklni aniqlash kerak? Nima kerak? Chunki $_POST[""] global o'zgarishi formalar orqali yaratilgan. Shakl nima? Bular mijoz tomonidan har qanday ma'lumotni kiritish uchun maydonlardir. Maydonlar bir qatorda, katta maydonlar, shuningdek, radio tugmalari va tasdiqlash qutilari mavjud. Keling, hamma narsani tartibda olaylik.

Tse teg shakli:


elementlar shakli

Shakl eng yuqori kengliklarni qamrab oluvchi atributlarga ega:

Keling, shaklni yarataylik:


elementlar shakli

Kompilyator fayli kabi, men faylni qo'ydim test.php Men siz uchun parchalarni o'zim yozyapman. Men postni tuzatish usuliga qo'ydim, chunki bu usullarning o'zi 99,9% hollarda ishlaydi. Shunday qilib, men shunchaki nomimizni berdim - shakl

Endi shakl elementlarini ko'rib chiqamiz. Avval barcha elementlarning teglanganligini tushunishimiz kerak Atributda tegishlilik kamroq turi bu teglarda. Tanlangan shakl elementlarini ko'rib chiqishga ruxsat bering:

Men siz bunday sohalarni bir necha bor yoritganingizni kuylayman, shuning uchun bu erda nima deyishim mumkin: "sharhlar yo'q"

Endi biz amalda bergan kichik o'quv anketasini tuzamiz. Bizning vazifamiz - har qanday mintaqada, de koristuvach matnining rangi va maydoni o'zingiz haqingizda qo'shishingiz mumkin bo'lgan oxirgisining nomini aytadigan kichik so'rovnomani tuzishdir. Xayolimga kelgan o'q:

Otangizdan keyin taxallusingiz:

Siz:
M
VA

Qaysi davlatlardan



Sevimli rang(lar):

Chorny:
Chervoniy:
Bili:
Ikkinchi:

O'zim haqimda:




E'tibor bering, xuddi shu teg atributga ega. qiymat, keyingisi nima?

U boshqa tomonga uzatmoqchi bo'lgan ma'lumotlarni yozib oladi. Men aql bilan umid qilaman

Endi siz ushbu kodni brauzeringizda ishga tushirmoqchi bo'lsangiz, davom etamiz: Men vikoristav atributiman harakat test.php zi qiymatlari

Bu shuni anglatadiki, men allaqachon aytganimdek, forma ma'lumotlari test.php faylini uzatishdir.

POST so'raladi

Endi biz kiritgan ma'lumotlarni qayta ishlashga imkon beradigan PHP kodini yozamiz. Ma'lumotlar qayerda saqlanadi? Nihoyat, bizning ma'lumotlarimiz $_GET[""] global o'zgarishida edi. Agar so'ralsa, ma'lumotlar global $_POST[""] o'zgarishida saqlanadi. Kvadrat qurollar uchun global get o'zgaruvchisi bilan birgalikda identifikatorni ro'yxatdan o'tkazish kerak. Kechirasiz, bu identifikatorni qayerdan olishim kerak? Nima uchun bizga forma elementlarida nom atributi kerak? Bu nomlarning o'zi global post qatorining kalitidir. Keling, skriptni tasvirlashni boshlaylik:
if(isset($_POST["yuborish"])) (
";
echo "PIB: ".$_POST["fio"]."
";
echo "Jins: ".$_POST["jinsiy aloqa"]."
";

echo "Yashash joyi: ".$_POST["shahar"]."
";
Echo "Ajoyib rang(lar):
";
echo $_POST["color_1"]."
";
echo $_POST["color_2"]."
";
echo $_POST["color_3"]."
";
echo $_POST["color_4"]."


";
}
?>

echo "O'zimga: ".$_POST["haqida"]." Biz quyidagilarni yozdik, agar: Agar global o'zgarish bo'lsa $_POST["submit"] ma'lumotlar ekranda ko'rsatiladi. Ushbu global o'zgarish biz o'qi joylashgan tahrirlash tugmachasini bosganimizda yaratiladi ushbu ilova tugma uchun kerakli nom atributi. Siz to'liq quvvat bilan ta'minlay olasiz, nima uchun tugmaning nom atributi majburiy emas? Hammasini bajarish oson. Shuning uchun dastur tugmani bosishni kuzatmaydi, balki ma'lumotlarning yuborilishini ta'minlaydi. Uchun to'g'ri ish

Masalan, aloqa shakllari, tugmani bosish o'rniga ma'lumotlarning to'g'ri kiritilganligini va ushbu ma'lumotni to'g'ri kiritganligingizni ta'minlash kerak. Ilovamizda biz yuborilgan ma'lumotlarni tekshirmadik, balki dasturni soddalashtirish uchun tugmachalarni bosdik... Bizda nima bor edi:

Xo'sh, bugun biz skriptlar o'rtasida ma'lumotlarni uzatishning ikkita usulini o'rgandik va shakllar haqida ham bilib oldik. Ishonchim komilki, sizga bu ma'lumot kerak bo'ladi. Oziq-ovqat, fikrlar kabi, sharhlar yozing. Sizga omad, bugun hammasi shu!

PS: Biror narsani xohlaysizmi? Kompyuter o'yinlari realistik bo'lib qoldimi? windows 7 uchun directx 11 ni Windows-da onlayn bepul yuklab olish mumkin! Ajoyib grafikadan rohatlaning!

PHP va JS yordamida veb-serverdan ma'lumotlarni jo'natish va olishning asosiy usullari haqida cheat varaqni yaratishingiz mumkin. Bu eslatma shunday tug'ilgan. Bu yerda men PHP provayderlari kabi veb-mijoz va veb-server o'rtasida ma'lumot almashishning eng ko'p qo'llaniladigan usullarini ko'rib chiqdim.

Ma'lumotlarni jo'natish bo'yicha asosiy yetakchilar php get va php post, keyin esa AJAX texnologiyasidir. Xo'sh, so'rovlarni olish va yuborishning qanday afzalliklari bor?

  • get manzil qatoriga yuboriladi (at http sarlavhasi) va ko'rinadigan koristuvachevi
  • pochta hujjatning asosiy qismiga yuboriladi
  • obsyag olish so'rovi (maksimal 276 belgi)
  • get usuli fayllarni uzatmaydi
  • Post usuli fayllarni uzatadi

Php olish so'raladi

Boshlash uchun php get bizdan trek yaratishni boshlashimizni so'raydi html shakli Ma'lumotlarni kiritish uchun 3 ta maydon. Ushbu forma serverdagi qaysi faylni ochish kerakligini va uzatishni amalga oshirish uchun qaysi usuldan foydalanishni belgilaydi . Shuningdek, maydonga name atributini o'rnatishni unutmang, bu GET $_GET["data"] massivining o'rtasida joylashgan nom bo'ladi; Buning uchun biz serverdagi fayldan ma'lumotlarni olib tashlaymiz. O'ylaymanki, ma'lumotlarni forma orqali o'tkazishga qanday majburlash kerakligi aniq, endi ularni uzatishga harakat qilaylik manzil qatori. index.php?data=1 Agar biz manzil qatoriga shunday narsani qo'ysak va u to'g'ri bo'lsa, $_GET["data"] dan index.php faylidan 1 qiymatini olib tashlaymiz Endi tozalang, dumba.

Zavdannya:ê get yuborish formasi bilan index.php fayli boshqa fayldan oldin yoziladi, masalan get.php. O'chirilganda get.php fayli index.php ga ma'lumotlar massivini o'tkazishi kerak. index.php da massiv ko'rsatilishi mumkin.

Amalga oshirish. index.php fayli

//Qabul qilingan maydon orqali get usulidan foydalangan holda shakl uchun qiymat 1 ga o'rnatiladi

get.php fayli

array("login" => "Administrator", "parol" => "h734yuiw8"), 1 => array("login" => "John", "password" => "78dfud776s")); //olinuvchi praporshch $flag=$_GET["bayroq"]; //agar ensign 1 bo'lsa, massiv serializatsiya funksiyasining get //magic orqali uzatiladi if($flag==1)( header("Joylashuv: index.php?data=".serialize($users)."" ); exit; ) else( header("Location: index.php"); exit; ) ?>

Post bilan php

Php xabarni formaning o'zi orqali yuborishni so'raydi, faqat forma sarlavhasining atributi method="post" bo'ladi. Men ma'lumotlarni chiqarib olaman belgilangan fayl Biz $_POST["search"] katta post qilamiz va darhol dumbani ko'rsatamiz.

Zavdannya: index.php dan ma'lumotlarni POST usuli yordamida get.php faylidagi serverga yuboring va uni qaytarib oling, agar ma'lumotlarni yuborish maydoni bo'sh bo'lsa, bo'sh maydon haqida ogohlantirishni ko'rsating. Biz buni index.php da hal qilamiz


Qidiruv maydonini to'ldiring

Kirish so'raladi:

get.php fayli

AJAX massividan o'tish

Vikonaemo qo'shimcha ajax uchun xuddi shu menejer. Boshqacha qilib aytadigan bo'lsak, ajax - bu JavaScript-ga cho'zilgan texnologiya, ammo serverga ma'lumotlarni uzatish haqidagi eslatma doirasida u bog'langan va bu texnologiya. Albatta, ajax bu maqolaning asosiy mavzusi emas. Jarayon shuningdek, diqqatga sazovor joy indikatorining gifini ko'rsatadi. Shuningdek, ikkita index.php va get.php fayllari mavjud. index.php fayli jquery-ni qo'shishni unutmang. Katta rahmat, sahifaga birinchi marta tashrif buyurganingizda gif qo'shish uchun blok uslubini belgilang: displey: yo'q

© 2022 androidas.ru - Android haqida hamma narsa