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
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:
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:
Formada sifatlar mavjud, eng keng tarqalgan narsalar ro'yxati:
Keling, forma yaratamiz:
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:
Agar foydalanuvchi biron bir matnni matn maydoniga kirsa va "Yuborish" tugmachasini bossa, shundan so'ng foydalanuvchi kiritgan tarkib tarkibiga ega serverga yuboriladi.