Xayoliy yuborish php. Html shakllari: php formasi - xuddi shu sahifaga so'rov yuborish. PHP _SELF bilan muammodan qanday qutulish mumkin

Men ushbu maqolani qanday nom berish haqida uzoq vaqt o'yladim va yaxshiroq narsa topa olmadim. Bu hech bo'lmaganda aytilganlarning mohiyatini aks ettiradigan yagona sarlavha. Rostini aytsam, men uning qanday nomlanishini bilmayman, shuning uchun men ushbu mavzu bo'yicha qidiruv tizimida hech bo'lmaganda ba'zi ma'lumotlarni topishga harakat qilganimdek, maqolani xuddi shunday nomladim.

Saytlardan birida bitta shaklda ikkita yuborish tugmasidan foydalanishim kerak edi, bu tugma qachon bosilganiga qarab to'ldirilgan ma'lumotlarni turli PHP "ishlab chiqaruvchilar"ga yuboradi. Google menga hech qanday mantiqiy javob bermadi, shekilli, men buni to'g'ri so'ramadim, shuning uchun o'zimni o'ylab topishim kerak edi.

Shuning uchun men buni sizning e'tiboringizga taqdim etdim.

Muammoning mohiyati

Buni o'zim amalga oshirganimdan so'ng, men hali ham JS vidalangan oddiy tugmalardan foydalanishga asoslangan bir nechta echimlarni topdim.

Men o'z rejamni deyarli bir xil tarzda amalga oshirdim, lekin standart yuborish turidan foydalandim. Hamma narsa ishlayotganga o'xshaydi va mening fikrimcha, mening qarorim mantiqan to'g'riroq.

Ushbu yechim bepul xostingda ham, agar siz professional hostingni tanlasangiz ham birdek yaxshi ishlaydi. Ushbu usul butunlay mijoz tomonida amalga oshiriladi va serverni sekinlashtirmasligi kerak.

Men nimani xohlayotganimni va u qanday ishlashini tushunishni osonlashtirish uchun bu erda turli sahifalarga ma'lumotlarni yuboradigan 2 ta yuborilgan shakl ko'rinishidagi haqiqatan ham ishlaydigan misol.

PHP ning ajoyib jihatlaridan biri uning HTML shakllari bilan ishlash usulidir. Bu erda asosiy narsa shundaki, har bir shakl elementi avtomatik ravishda PHP dasturlaringizda mavjud bo'ladi. PHP da shakllardan foydalanish haqida batafsil ma'lumot olish uchun bo'limni o'qing. Mana, misol HTML formasi:

Misol #1 Eng oddiy HTML formasi

Sizning ismingiz:

Yoshingiz:

Ushbu shaklda alohida narsa yo'q. Bu maxsus teglarsiz oddiy HTML formasidir. Foydalanuvchi shaklni to‘ldirib, jo‘natish tugmasini bosganida action.php sahifasi chaqiriladi. Ushbu faylda shunday bo'lishi mumkin:

2-misol Shakl ma'lumotlarini ko'rsatish

Salom, .
Siz qarib qoldingiz.

Ushbu dasturning namunaviy chiqishi:

Salom, Sergey. Siz 30 yoshdasiz.

Agar siz htmlspecialchars() bilan kod qismlarini hisobga olmasangiz va (int), ushbu kodning ishlash printsipi oddiy va tushunarli bo'lishi kerak. htmlspecialchars() zararli HTML yoki Javascript sahifangizga kiritilmasligi uchun "maxsus" HTML belgilar to'g'ri kodlanganligini ta'minlaydi. Biz bilgan yosh maydoni raqam bo'lishi kerak, biz shunchaki butun songa aylantira olamiz, bu avtomatik ravishda keraksiz belgilardan xalos bo'ladi. PHP ham filtr kengaytmasi yordamida buni avtomatik ravishda amalga oshirishi mumkin. $_POST["name"] va $_POST["age"] o'zgaruvchilari siz uchun PHP tomonidan avtomatik ravishda o'rnatiladi. Ilgari biz $_SERVER superglobal o'zgaruvchisidan foydalanganmiz, lekin bu erda barcha POST ma'lumotlarini o'z ichiga olgan $_POST superglobal o'zgaruvchisidan ham foydalanamiz. e'tibor bering, bu yuborish usuli Bizning formamiz (usuli) POST. Agar biz usuldan foydalansak OLISH, unda bizning shakl ma'lumotlarimiz superglobal o'zgaruvchida bo'ladi $_GET . Shu bilan bir qatorda, agar ma'lumotlar manbai muhim bo'lmasa, $_REQUEST o'zgaruvchisidan foydalanishingiz mumkin. Bu oʻzgaruvchida GET, POST, COOKIE maʼlumotlari aralashmasi mavjud.

15 yil oldin

HTTP spetsifikatsiyasiga ko'ra, siz server uchidagi biror narsaning holatini o'zgartirish uchun formadan foydalanayotganingizda POST usulidan foydalanishingiz kerak. Masalan, agar sahifada foydalanuvchilarga o'z sharhlarini qo'shishga ruxsat beruvchi shakl bo'lsa, shunga o'xshash. Bu yerda, forma POSTdan foydalanishi kerak. Agar siz POST orqali kirgan sahifada “Qayta yuklash” yoki “Yangilash” tugmasini bossangiz, bu deyarli har doim xato bo‘ladi – bir xil fikrni ikki marta joylashtirmasligingiz kerak –- shuning uchun bu sahifalar xatcho'p yoki keshda saqlanmaydi.

Shaklingiz serverdan biror narsa olib, aslida hech narsani o'zgartirmasa, GET usulidan foydalanishingiz kerak. Misol uchun, qidiruv tizimi uchun forma GET-dan foydalanishi kerak, chunki veb-saytni qidirish mijozni qiziqtiradigan hech narsani o'zgartirmasligi kerak va qidiruv tizimi so'rovi natijalarini xatcho'plash yoki keshlash xatcho'p yoki keshlash kabi foydalidir. statik HTML sahifasi.

2 yil oldin

Aniqlik kiritishga arziydi:

POST GET dan xavfsizroq emas.

GET va POSTni tanlash sabablari turli omillarni o'z ichiga oladi, masalan, so'rovning maqsadi (siz ma'lumotni "yuboryapsizmi"?), so'rov hajmi (URL qancha bo'lishi mumkinligiga cheklovlar mavjud va GET parametrlari yuboriladi. URL) va harakatni qanchalik oson baham ko'rishni xohlaysiz -- Misol uchun, Google Qidiruvlari GET bo'ladi, chunki u URL manzilini baham ko'rish orqali qidiruv so'rovini nusxalash va boshqa birov bilan baham ko'rishni osonlashtiradi.

Xavfsizlik bu erda faqat e'tiborga olinadi, chunki POSTga qaraganda GETni almashish osonroq. Misol: GET tomonidan parol yuborilishini xohlamaysiz, chunki foydalanuvchi olingan URL-manzilni baham ko'rishi va o'z parolini tasodifan ochishi mumkin.

Biroq, agar siz tarmoq ulanishining o'zini himoya qilish uchun TLS/SSL-ni ishlatmasangiz, GET va POST-ni yaxshi joylashtirilgan zararli shaxs tomonidan ushlab turish bir xil darajada oson.

HTTP orqali yuborilgan barcha shakllar (odatda 80-port) xavfsiz emas va bugungi kunda (2017-yil), umumiy veb-sayt HTTPS-dan (asosan HTTP + Transport Layer Security) foydalanmasligi uchun yaxshi sabablar koʻp emas.

Bonus sifatida, agar siz TLS dan foydalansangiz, foydalanuvchilaringiz trafikingizga kiritilmagan kodni (AD) olish xavfini minimallashtirasiz.

POST va GET usullari asosan kuchlardan parametrlarni uzatish uchun ishlatiladi. POST va GET usullari o'rtasidagi asosiy farq axborotni uzatish usulidir. GET usulida parametrlar manzil satri (URL) orqali o'tkaziladi, ya'ni. HTTP so'rovi sarlavhasida, POST usulida esa parametrlar HTTP so'rovining tanasi orqali uzatiladi va manzil satrida aks ettirilmaydi.

1. Tugmalar - teg

Teg veb-sahifada tugmachalarni yaratadi va uning harakati teg yordamida olingan natijaga o'xshaydi (type="button | reset | submit" parametri bilan). Ushbu tegdan farqli o'laroq, u tugmalar yaratish uchun kengaytirilgan variantlarni taklif qiladi. Masalan, bunday tugmachada istalgan HTML elementlarini, shu jumladan tasvirlarni ham joylashtirishingiz mumkin. Uslublardan foydalanib, siz shrift, fon rangi, o'lchami va boshqa parametrlarni o'zgartirish orqali tugma ko'rinishini belgilashingiz mumkin.

Nazariy jihatdan teg element tomonidan o'rnatilgan shakl ichida joylashgan bo'lishi kerak. Biroq, brauzerlar xato xabarini ko'rsatmaydi va teg bilan to'g'ri ishlaydi, agar u o'z-o'zidan paydo bo'lsa. Biroq, agar tugmani bosish natijasini serverga yuborish kerak bo'lsa, u konteynerga joylashtirilishi kerak. Yopish belgisi talab qilinadi.

Variantlar:

o'chirilgan - elementga kirish va o'zgartirishni bloklaydi.

turi - tugma turi

qiymat - serverga yuboriladigan yoki spritlar yordamida o'qiladigan tugma qiymati.

Matn bilan tugma

Parametr DISABLED Tugmaga kirish va o'zgartirishni bloklaydi. Bunday holda, u kul rangda ko'rsatiladi va foydalanuvchi tomonidan faollashtirilmaydi. Bundan tashqari, bunday tugma Tab tugmachasini bosish, sichqonchani ishlatish yoki boshqa yo'l bilan diqqatni jalb qila olmaydi. Biroq, bu tugma holatini skriptlar orqali o'zgartirish mumkin.

Faol tugma Faol emas tugmasi

Parametr TYPE Tugma turini belgilaydi, u shakldagi harakatini o'rnatadi. Har xil turdagi tugmalar tashqi ko'rinishida hech qanday farq qilmaydi, lekin har bir tugma o'z funktsiyalariga ega. Standart qiymat: tugma.

Argumentlar:

tugmasi - Muntazam tugma.

qayta o'rnatish - Kiritilgan shakl ma'lumotlarini tozalash va qiymatlarni asl holatiga qaytarish tugmasi.

Submit - forma ma'lumotlarini serverga yuborish tugmasi.

Shaklni tozalash Shaklni yuborish

Parametr VALUE Serverga yuboriladigan tugma qiymatini belgilaydi. Serverga “ism=qiymat” juftligi yuboriladi, bu yerda nom tegning nom parametri bilan, qiymat esa qiymat parametri bilan belgilanadi. Ma'no tugmadagi matn bilan mos kelishi yoki mustaqil bo'lishi mumkin. Qiymat parametri skriptlar orqali ma'lumotlarga kirish uchun ham ishlatiladi.

Shaklni yuborish

1.1. Tugma (kirish turi=tugma) 1.2. Rasmli tugma (kirish turi=tasvir) Rasm bilan tugma

Tasvirli tugmalar amalda “Yuborish” tugmasiga oʻxshaydi, lekin ular rasmni ifodalaydi. Buning uchun type=image va src="image.gif" ni o'rnating.

Foydalanuvchi rasmning istalgan joyini bosganida, tegishli shakl serverga ikkita qo'shimcha o'zgaruvchilar bilan yuboriladi - sub_x va sub_y . Ularda foydalanuvchining rasmni bosgan koordinatalari mavjud. Tajribali dasturchilar brauzer tomonidan yuborilgan o'zgaruvchilar nomlarida aslida pastki chiziq emas, balki nuqta borligini payqashlari mumkin, ammo PHP avtomatik ravishda nuqtani pastki chiziqqa aylantiradi.

1.3. Shaklni yuborish tugmasi (kirish turi=yuborish)

Shaklni skriptga yuborish uchun xizmat qiladi. Shaklni yuborish tugmachasini yaratishda siz ikkita atributni belgilashingiz kerak: type="submit" va value="Button text)" . Атрибут name необходим, если кнопка не одна, а несколько и все они созданы для разных операций, например кнопки "Сохранить", "Удалить", "Редактировать" и т.д. После нажатия на кнопку сценарию передается строка имя=текст кнопки.!}

PHP skripti talab qilinmaydi.

1.4. Harakat opsiyasini tanlash uchun tugmalar majmuasi (yuborish) 2. Shaklni tiklash tugmasi (Qayta tiklash)

Qayta tiklash tugmasini bosganingizda, barcha shakl elementlari standart atributlarda ko'rsatilgan holatga o'rnatiladi va shakl yuborilmaydi.

PHP skripti talab qilinmaydi.

3. Belgilash katagi

Belgilash katakchalari foydalanuvchiga bir nechta variantlarni taqdim etadi va o'zboshimchalik bilan tanlashga ruxsat beradi (ularning hech biri, bittasi yoki bir nechtasi).

Oq
Yashil
Moviy
Qizil
Qora

// birinchi tugmalar to'plami
// tugmalarning ikkinchi to'plami
// uchinchi tugmalar to'plami

5. Matn maydoni (matn)

Oddiy matn maydonini o'lcham o'lchami va maksimal ruxsat etilgan belgilar uzunligini yaratishda type atributi matn qiymatini oladi. Agar qiymat parametri ko'rsatilgan bo'lsa, maydon o'zgaruvchida ko'rsatilgan qiymatni ko'rsatadi. Maydon yaratishda maydon nomini belgilashni unutmang, chunki... bu atribut talab qilinadi.

6. Parol maydoni

Matn maydoni bilan bir xil, faqat foydalanuvchi tomonidan kiritilgan belgilar ekranda ko'rsatilmaydi.

7. Yashirin matn maydoni (yashirin)

Ba'zi xizmat ma'lumotlarini sahifada ko'rsatmasdan skriptga o'tkazish imkonini beradi.

8. Ochiladigan ro'yxat (tanlang)

Teg ochiladigan yoki kengaytirilgan ro'yxat bo'lib, bir yoki bir nechta qatorlarni bir vaqtning o'zida tanlash mumkin. Lekin qiymat oxirgi tanlangan tugmaga o'tkaziladi.

Ro'yxat juftlangan teglar bilan boshlanadi. Teglar roʻyxat mazmunini aniqlash imkonini beradi, qiymat parametri esa satr qiymatini belgilaydi. Agar tanlangan parametr tegda ko'rsatilgan bo'lsa, u holda satr dastlab tanlanadi. Size parametri ro'yxat qancha qatorni egallashini belgilaydi. Agar o'lcham 1 bo'lsa, ro'yxat ochiladigan ro'yxat bo'ladi. Agar bir nechta atribut ko'rsatilgan bo'lsa, ro'yxatdan bir nechta elementlarni tanlash mumkin. Ammo bu sxema amalda qo'llanilmaydi va o'lcham = 1 bilan bu mantiqiy emas.

Oq yashil ko'k qizil qora

Agar bashorat qilinadigan ketma-ketlik bilan ochiladigan menyu yaratish kerak bo'lsa. Masalan, 2000 yildan 2050 yilgacha bo'lgan yillar ro'yxati. Keyin quyidagi texnikadan foydalaniladi.

9. Ko‘p qatorli matn kiritish maydoni (textarea)

Ko'p qatorli matn kiritish maydoni sizga bir qatorni emas, balki bir vaqtning o'zida bir nechtasini yuborish imkonini beradi. Agar kerak bo'lsa, matnni tahrirlash, o'chirish va o'zgartirishni taqiqlovchi faqat o'qish atributini belgilashingiz mumkin, ya'ni. matn faqat o'qish uchun bo'ladi. Agar matnni dastlab ko'p qatorli kiritish maydonida ko'rsatish kerak bo'lsa, u teglar orasiga joylashtirilishi kerak.

O'rash parametri mavjud - chiziqni o'rashni o'rnatish. Mumkin qiymatlar:

off - chiziqni o'rashni o'chiradi;

virtuallar - qator uzilishlarini ko'rsatadi, lekin matnni kiritilganidek yuboradi;

jismoniy - qator uzilishlari asl shaklida qoldiriladi.

Odatiy bo'lib, teg kengligi 20 belgidan iborat bo'lgan va 2 qatordan iborat bo'sh maydon hosil qiladi.


Ko'p qatorli matn maydoni HTML formatiga mos kelishi uchun (teg yordamida qatorlarni o'rash
yoki
), keyin nl2br() funktsiyasidan foydalaning:

Dastlab kiritilgan 1-qator Dastlab kiritilgan 2-qator Dastlab kiritilgan 3-qator

10. Fayllarni yuklash tugmasi (ko'rib chiqish)

Fayllarni serverga yuklashni amalga oshirish uchun xizmat qiladi. Matn maydonini yaratishda siz maydon turini "fayl" sifatida ko'rsatishingiz kerak.

Faylni yuklash:

BRAUZERNI SERVER BILAN ALOQA QILISH YO'LLARI

HTTP protokoli tomonidan taqdim etilgan bir nechta usullar mavjud. Bu muhim ma'lumot. Boshqa yo'llar yo'q. Amalda ikkitasi qo'llaniladi: GET - bu manzil satrida ma'lumotlar uzatilganda, masalan, foydalanuvchi havolani bosganda. POST - formadagi tugmani bosganda.

GET usuli

GET usuli yordamida ma'lumotlarni uzatish uchun siz HTML sahifasida shakl yaratishingiz shart emas (hech kim sizga GET usuli yordamida so'rovlar uchun shakllardan foydalanishni taqiqlamaydi - lekin bu ahmoqlik) - shunchaki hujjatga havola. o'zgaruvchi=qiymat juftligiga o'xshab ko'rinishi mumkin bo'lgan so'rovlar qatori ampersand & yordamida birlashtiriladi va satr savol belgisi yordamida sahifa URL manziliga qo'shiladi "? "

Agar bitta o‘zgaruvchini o‘tkazish kerak bo‘lsa, kalit=qiymat juftliklaridan foydalanish shart emas; buning uchun savol belgisidan keyin o‘zgaruvchining VALUE (nomini emas) yozish kerak.

Parametrlarni shu tarzda o'tkazishning afzalligi shundaki, POST usulidan foydalana olmaydigan mijozlar (masalan, qidiruv tizimlari) havolaga o'tish orqali parametrlarni oddiygina skriptga o'tkazishlari va tarkibni olishlari mumkin.

Salbiy tomoni shundaki, foydalanuvchi manzil satridagi parametrlarni o'zgartirish orqali skriptni oldindan aytib bo'lmaydigan tarzda aylantirishi mumkin, bu aniqlanmagan o'zgaruvchilar va register_globals bilan birlashganda katta xavfsizlik teshigini yaratadi yoki kimdir muhim o'zgaruvchining qiymatini bilib olishi mumkin. (seans identifikatori kabi) faqat monitor ekraniga qarash orqali.

Parametrlarni o'tkazish orqali umumiy sahifalarga kirish uchun (ko'tarilgan funksionallik)

Xavfsizlik darajasiga ta'sir qilmaydigan ma'lumotlarni uzatish

O'tkazilgan parametrlar bilan himoyalangan sahifalarga kirish uchun

Xavfsizlik darajasiga ta'sir qiluvchi ma'lumotlarni uzatish uchun

Foydalanuvchi tomonidan o'zgartirilmaydigan ma'lumotlarni uzatish uchun (ba'zilari SQL so'rovlari matnini uzatadi.

POST usuli

POST usuli yordamida maʼlumotlarni faqat HTML sahifasidagi forma yordamida yuborishingiz mumkin. POST va GET o'rtasidagi asosiy farq shundaki, ma'lumotlar so'rov sarlavhasida emas, balki tanada uzatiladi, shuning uchun foydalanuvchi uni ko'rmaydi. Uni faqat shaklning o'zini o'zgartirish orqali o'zgartirish mumkin.

Afzallik:

POST shakllaridan foydalangan holda so'rovlar uchun katta xavfsizlik va funksionallik.

Kamchilik :

Kamroq mavjudlik.

Uni nima uchun ishlatish kerak:

Katta hajmdagi ma'lumotlarni uzatish uchun (matn, fayllar ..);

Har qanday muhim ma'lumotlarni uzatish uchun;

Kirishni cheklash uchun (masalan, navigatsiya uchun faqat shakldan foydalaning - bu barcha robot dasturlari yoki kontentni tortib oluvchilar uchun mavjud emas).

Nima uchun ishlatilmasligi kerak:

Hech qanday cheklovlar yo'q.

POST usuli yordamida fayllarni yuklash

PHP istalgan brauzer yordamida yuklab olingan faylni qabul qila oladi. Bu matn va ikkilik fayllarni yuklash imkonini beradi. PHP autentifikatsiyasi va fayl tizimi funksiyalari bilan birgalikda siz fayllarni kimga yuklashi mumkinligi va fayl yuklangandan keyin u bilan nima qilish kerakligini toʻliq nazorat qilasiz.

Faylni yuklash sahifasi quyidagi kabi ko'rinadigan maxsus shakl yordamida amalga oshirilishi mumkin:

//Fayllarni yuklash uchun shakl Ushbu faylni yuboring:

Yuqoridagi misolda "_URL_" ni PHP skriptiga havola bilan almashtirish kerak. Yashirin MAX_FILE_SIZE maydoni (qiymat baytlarda ko'rsatilishi kerak) faylni tanlash maydonidan oldin bo'lishi kerak va uning qiymati qabul qilinadigan maksimal ruxsat etilgan fayl hajmidir. Shuningdek, forma atributlarida enctype="multipart/form-data" ni belgilaganingizga ishonch hosil qilishingiz kerak, aks holda fayllar serverga yuklanmaydi.

Diqqat

MAX_FILE_SIZE opsiyasi PHP ham bu holatni tekshirsa ham, brauzer tavsiyasidir. Brauzer tomonida ushbu cheklovni chetlab o'tish juda oson, shuning uchun barcha kattaroq fayllarni bloklash uchun ushbu xususiyatga tayanmasligingiz kerak. Biroq, PHP ning maksimal hajmi chegarasini chetlab o'tishning hech qanday usuli yo'q. Siz baribir MAX_FILE_SIZE shaklidagi oʻzgaruvchini qoʻshishingiz kerak, chunki u foydalanuvchilarning katta fayllarni oʻtkazish vaqtida tashvish bilan kutishlariga yoʻl qoʻymaydi, faqat fayl juda katta ekanligini va transfer amalga oshmadi.

So'rov usulini qanday aniqlash mumkin?

To'g'ridan-to'g'ri:

Getenv("REQUEST_METHOD");

GET yoki POSTni qaytaradi.

Qaysi usuldan foydalanish kerak?

Agar shakl ba'zi ma'lumotlarni so'rash uchun ishlatilsa, masalan, qidiruv paytida, uni GET usuli yordamida yuborish kerak. Sahifani yangilash uchun siz uni xatcho'pga qo'yishingiz yoki havolani do'stingizga yuborishingiz mumkin.

Agar formani yuborish natijasida ma'lumotlar serverda qayd etilsa yoki o'zgartirilsa, u holda POST usuli yordamida yuborilishi kerak va shaklni qayta ishlagandan so'ng, GET usuli yordamida brauzerni qayta yo'naltirish kerak. Bundan tashqari, agar serverga katta hajmdagi ma'lumotlarni uzatish kerak bo'lsa (GET uchun bu juda cheklangan), shuningdek uzatilgan ma'lumotlar manzillar panelida ko'rsatilmasa (login va parolni kiritishda, masalan).

Qanday bo'lmasin, POSTni qayta ishlagandan so'ng, brauzerni har doim ba'zi sahifaga, hatto bir xil sahifaga yo'naltirishingiz kerak, lekin forma ma'lumotlarisiz, sahifa yangilanganda ular qayta yozilmaydi.

GET va POST usullari yordamida PHP dasturining tanasidan to'g'ridan-to'g'ri boshqa faylga ma'lumotlarni qanday o'tkazish mumkin? Bir vaqtning o'zida POST va GET usullaridan foydalangan holda ma'lumotlarni yuborish va serverdan javob olishni ko'rsatishga misol.

Ushbu maqolada PHP _SELF o'zgaruvchisidan foydalanish batafsil ko'rib chiqiladi.

PHP _SELF o'zgaruvchisi nima?

PHP _SELF o'zgaruvchisi joriy fayl nomi va yo'lini qaytaradi (hujjat ildiziga nisbatan). Ushbu o'zgaruvchidan formaning harakat atributida foydalanishingiz mumkin. Bundan tashqari, siz bilishingiz kerak bo'lgan ba'zi nuanslar mavjud. Albatta, biz bu nuanslarni e'tiborsiz qoldira olmaymiz.

Keling, bir nechta misollarni ko'rib chiqaylik.

Echo $_SERVER["PHP_SELF"];

1) PHP faylingiz quyidagi manzilda joylashgan deb faraz qilaylik:

Http://www.yourserver.com/form-action.php

Bunday holda, PHP _SELF o'zgaruvchisi quyidagilarni o'z ichiga oladi:

"/form-action.php"

2) PHP faylingiz ushbu manzilda joylashgan deb faraz qilaylik:

Http://www.yourserver.com/dir1/form-action.php

PHP_SELF quyidagicha bo'ladi:

"/dir1/form-action.php"

Shaklning harakat atributida PHP _SELF. Nega u erda kerak edi?

Odatda PHP _SELF o'zgaruvchisi forma tegining harakat atributida ishlatiladi. Harakat atributi tasdiqdan keyin shakl mazmuni yuboriladigan manzilni belgilaydi (foydalanuvchi type="yuborish" tugmachasini bosadi). Qoidaga ko'ra, bu shakl qoldirgan sahifadir.

Biroq, agar siz forma tomonidan havola qilingan fayl nomini o'zgartirsangiz, harakat atributidagi fayl nomini o'zgartirishingiz kerak bo'ladi, aks holda forma ishlamaydi.

PHP _SELF o'zgaruvchisi sizni keraksiz tuzatishlardan xalos qiladi, chunki sahifa manzili fayl nomi asosida avtomatik ravishda yaratiladi.

Aytaylik, sizda form-action.php nomli forma fayli bor va siz tasdiqdan so‘ng shakl xuddi shu faylga yuborilishini xohlaysiz. Odatda ular shunday yozadilar:

Lekin siz form-action.php o'rniga PHP _SELF o'zgaruvchisidan foydalanishingiz mumkin. Bunday holda kod quyidagicha ko'rinadi: