Երևակայական ներկայացնել php. Html ձևեր. php ձև - հարցում ուղարկեք նույն էջին: Ինչպես խուսափել խնդիրներից PHP _SELF-ի հետ

Ես երկար ժամանակ մտածեցի, թե ինչ վերնագիր տալ այս հոդվածին և չկարողացա ավելի լավ բան գտնել: Սա միակ վերնագիրն է, որը գոնե ինչ-որ կերպ արտացոլում է ասվածի էությունը։ Անկեղծ ասած, ես չգիտեմ, թե ինչպես է այն ճիշտ կոչվում, ուստի ես հոդվածն անվանեցի այնպես, ինչպես փորձեցի գտնել այս թեմայի վերաբերյալ որոնողական համակարգում գոնե որոշ տեղեկություններ:

Կայքերից մեկում ես պետք է օգտագործեի երկու ուղարկել կոճակներ մեկ ձևով, որոնք լրացված տվյալները կուղարկեին տարբեր PHP «մշակողների»՝ կախված նրանից, թե երբ է սեղմվել կոճակը: Google-ը ինձ ոչ մի խելամիտ բան չպատասխանեց, ըստ երևույթին, ես դա ճիշտ ձևով չեմ հարցրել, ուստի ստիպված էի ինքս մտածել:

Այսպիսով, ես այն դրեցի ձեր ուշադրության համար:

Խնդրի էությունը

Ինքս այն իրականացնելուց հետո ես դեռ գտա մի քանի լուծումներ, որոնք հիմնված էին սովորական կոճակների օգտագործման վրա, որոնց վրա պտտվում էր JS-ը:

Ես գրեթե նույն կերպ իրականացրեցի իմ պլանը, բայց օգտագործեցի ստանդարտ ներկայացնելու տեսակը: Ամեն ինչ կարծես թե աշխատում է, և իմ կարծիքով իմ լուծումն ավելի տրամաբանական է։

Այս լուծումը հավասարապես լավ կաշխատի ինչպես անվճար հոսթինգի, այնպես էլ պրոֆեսիոնալ հոսթինգի դեպքում: Այս մեթոդը ամբողջությամբ իրականացվում է հաճախորդի կողմից և չպետք է դանդաղեցնի սերվերը:

Որպեսզի ավելի հեշտ լինի հասկանալ, թե ինչ եմ ուզում և ինչպես է այն աշխատում, ահա իսկապես գործող օրինակ՝ ձևի տեսքով, որն ունի 2 ներկայացում, որոնք տվյալներ են ուղարկում տարբեր էջեր:

PHP-ի հիանալի բաներից մեկն այն է, թե ինչպես է այն աշխատում HTML ձևերի հետ: Այստեղ գլխավորն այն է, որ ձևի յուրաքանչյուր տարր ավտոմատ կերպով հասանելի է դառնում ձեր PHP ծրագրերին: PHP-ում ձևերի օգտագործման մասին մանրամասն տեղեկությունների համար կարդացեք բաժինը: Ահա HTML ձևի օրինակ.

Օրինակ #1 Ամենապարզ HTML ձևը

Քո անունը:

Քո տարիքը:

Այս ձևի մեջ առանձնահատուկ բան չկա: Սա սովորական HTML ձև է՝ առանց որևէ հատուկ պիտակների: Երբ օգտատերը լրացնի ձևը և սեղմի ուղարկել կոճակը, կկանչվի action.php էջը: Այս ֆայլը կարող է ունենալ նման բան.

Օրինակ #2 Ցուցադրվում են ձևի տվյալները

Բարեւ Ձեզ, .
Դուք ծեր եք։

Այս ծրագրի արդյունքի օրինակ.

Բարև, Սերգեյ: Դուք 30 տարեկան եք։

Եթե ​​հաշվի չեք առնում htmlspecialchars() և (int), այս կոդի գործառնական սկզբունքը պետք է լինի պարզ և հասկանալի։ htmlspecialchars()-ն ապահովում է, որ «հատուկ» HTML նիշերը պատշաճ կերպով կոդավորված են, որպեսզի վնասակար HTML կամ Javascript-ը չմտցվի ձեր էջում: Տարիքային դաշտը, որը մենք գիտենք, որ պետք է լինի թիվ, մենք պարզապես կարող ենք վերածել ամբողջ թվի, որն ավտոմատ կերպով կազատվի անցանկալի նիշերից։ PHP-ն կարող է նաև դա անել ավտոմատ կերպով՝ օգտագործելով ֆիլտրի ընդլայնումը: $_POST["name"] և $_POST["age"] փոփոխականները ավտոմատ կերպով սահմանվում են ձեզ համար PHP-ի կողմից: Նախկինում մենք օգտագործում էինք $_SERVER սուպերգլոբալ փոփոխականը, բայց այստեղ մենք օգտագործում ենք նաև $_POST սուպերգլոբալ փոփոխականը, որը պարունակում է բոլոր POST տվյալները։ նկատել, որ ուղարկման եղանակը(մեթոդը) մեր ձևի POST-ն է: Եթե ​​մենք օգտագործեինք մեթոդը ՍՏԱՆԱԼ, ապա մեր ձևի տեղեկատվությունը կլինի սուպերգլոբալ $_GET փոփոխականում: Որպես այլընտրանք, դուք կարող եք օգտագործել $_REQUEST փոփոխականը, եթե տվյալների աղբյուրը նշանակություն չունի: Այս փոփոխականը պարունակում է GET, POST, COOKIE տվյալների խառնուրդ:

15 տարի առաջ

Համաձայն HTTP հատկորոշման, դուք պետք է օգտագործեք POST մեթոդը, երբ օգտագործում եք ձևը սերվերի վերջում ինչ-որ բանի վիճակը փոխելու համար: Օրինակ, եթե էջն ունի ձև, որը թույլ է տալիս օգտվողներին ավելացնել իրենց սեփական մեկնաբանությունները, ինչպես սա: էջ այստեղ, ձևը պետք է օգտագործի POST: Եթե սեղմում եք «Վերբեռնել» կամ «Թարմացնել» այն էջի վրա, որին հասել եք POST-ի միջոցով, դա գրեթե միշտ սխալ է, դուք չպետք է երկու անգամ տեղադրեք նույն մեկնաբանությունը. ահա թե ինչու այս էջերը էջանշված կամ քեշավորված չեն:

Դուք պետք է օգտագործեք GET մեթոդը, երբ ձեր ձևը սերվերից ինչ-որ բան է հանում և իրականում ոչինչ չի փոխում: Օրինակ, որոնման համակարգի ձևը պետք է օգտագործի GET, քանի որ վեբ կայք որոնելը չպետք է փոխի որևէ բան, որը կարող է հետաքրքրել հաճախորդին, և որոնման համակարգի հարցումների արդյունքների էջանշումը կամ քեշավորումը նույնքան օգտակար է, որքան էջանշումը կամ քեշավորումը: ստատիկ HTML էջ:

2 տարի առաջ

Արժե պարզաբանել.

POST-ն ավելի ապահով չէ, քան GET-ը:

GET vs POST ընտրության պատճառները ներառում են տարբեր գործոններ, ինչպիսիք են հարցման նպատակը (դուք «ներկայացնում եք» տեղեկատվություն?), հարցման չափը (կան սահմանափակումներ, թե որքան երկար է URL-ը, և GET պարամետրերը ուղարկվում են): URL-ը), և որքան հեշտությամբ եք ցանկանում, որ Գործողությունը համօգտագործելի լինի. Օրինակ՝ Google-ի որոնումները GET են, քանի որ այն հեշտացնում է որոնման հարցումը պատճենելը և կիսվել ուրիշի հետ՝ պարզապես կիսելով URL-ը:

Անվտանգությունն այստեղ միայն հաշվի է առնվում այն ​​պատճառով, որ GET-ն ավելի հեշտ է կիսել, քան POST-ը: Օրինակ՝ դուք չեք ցանկանում, որ գաղտնաբառ ուղարկվի GET-ի կողմից, քանի որ օգտատերը կարող է կիսել ստացված URL-ը և ակամա բացահայտել իր գաղտնաբառը:

Այնուամենայնիվ, GET-ը և POST-ը հավասարապես հեշտ են գաղտնալսել լավ տեղակայված չարամիտ անձի կողմից, եթե դուք չեք տեղակայում TLS/SSL-ը՝ ցանցային կապը պաշտպանելու համար:

Բոլոր ձևերը, որոնք ուղարկվում են HTTP-ով (սովորաբար նավահանգիստ 80) անապահով են, և այսօր (2017թ.) շատ լավ պատճառներ չկան, որ հանրային կայքը չօգտագործի HTTPS (որը հիմնականում HTTP + Transport Layer Security է):

Որպես բոնուս, եթե դուք օգտագործում եք TLS, դուք նվազագույնի եք հասցնում ձեր օգտատերերի կողմից չներդրված կոդ (AD) ձեր տրաֆիկի մեջ ներարկվելու ռիսկը:

POST և GET մեթոդները հիմնականում օգտագործվում են պարամետրերը ուժերից փոխանցելու համար: POST և GET մեթոդների հիմնական տարբերությունը տեղեկատվության փոխանցման եղանակն է: GET մեթոդում պարամետրերը փոխանցվում են հասցեագոտով (URL), այսինքն. HTTP հարցման վերնագրում, մինչդեռ POST մեթոդում պարամետրերը փոխանցվում են HTTP հարցման մարմնի միջոցով և չեն արտացոլվում հասցեագոտում:

1. Կոճակներ - Tag

Պիտակը վեբ էջի վրա ստեղծում է կոճակներ, և նրա գործողությունը նման է պիտակի միջոցով ստացված արդյունքին («կոճակը | վերակայել | ներկայացնել» պարամետրով): Ի տարբերություն այս թեգի, այն առաջարկում է կոճակներ ստեղծելու առաջադեմ տարբերակներ։ Օրինակ՝ նման կոճակի վրա կարող եք տեղադրել ցանկացած HTML էլեմենտ, այդ թվում՝ պատկերներ։ Օգտագործելով ոճերը՝ կարող եք սահմանել կոճակի տեսքը՝ փոխելով տառատեսակը, ֆոնի գույնը, չափը և այլ պարամետրերը:

Տեսականորեն պիտակը պետք է տեղակայվի տարրի կողմից սահմանված ձևի ներսում: Այնուամենայնիվ, բրաուզերները սխալի հաղորդագրություն չեն ցուցադրում և ճիշտ են աշխատում պիտակի հետ, եթե այն ինքնուրույն հանդիպում է: Սակայն, եթե Ձեզ անհրաժեշտ է կոճակի վրա սեղմելու արդյունքը ուղարկել սերվեր, այն պետք է տեղադրվի տարայի մեջ։ Փակման պիտակը պարտադիր է:

Ընտրանքներ:

անջատված է - արգելափակում է տարրի մուտքը և փոփոխությունը:

տեսակ - կոճակի տեսակ

արժեք - կոճակի արժեքը, որը կուղարկվի սերվեր կամ կարդացվի sprits-ի միջոցով:

Կոճակ տեքստով

Պարամետր DISABLED Արգելափակում է կոճակի մուտքը և փոփոխումը: Այս դեպքում այն ​​ցուցադրվում է մոխրագույնով և չի կարող ակտիվացվել օգտագործողի կողմից: Բացի այդ, նման կոճակը չի կարող կենտրոնանալ՝ սեղմելով Tab ստեղնը, օգտագործելով մկնիկը կամ այլ կերպ: Այնուամենայնիվ, այս կոճակի վիճակը կարող է փոխվել սկրիպտների միջոցով:

Ակտիվ կոճակ Անգործուն կոճակ

Պարամետր TYPE Նշում է կոճակի տեսակը, որը սահմանում է իր վարքագիծը ձևի վրա: Տարբեր տեսակի կոճակները ոչ մի կերպ չեն տարբերվում արտաքինից, սակայն յուրաքանչյուր կոճակ ունի իր գործառույթները։ Կանխադրված արժեքը՝ կոճակ:

Փաստարկներ:

կոճակ - կանոնավոր կոճակ:

reset - կոճակ՝ մուտքագրված ձևի տվյալները մաքրելու և արժեքները իրենց սկզբնական վիճակին վերադարձնելու համար:

Ներկայացնել - կոճակ՝ ձևի տվյալները սերվեր ուղարկելու համար:

Մաքրել ձևը Ներկայացրեք ձևը

Պարամետր VALUE Նշում է կոճակի արժեքը, որը կուղարկվի սերվեր: Սերվերին ուղարկվում է «անուն=արժեք» զույգը, որտեղ անունը նշվում է պիտակի անվան պարամետրով, իսկ արժեքը՝ արժեքի պարամետրով: Իմաստը կարող է կամ համընկնել կոճակի տեքստի հետ կամ անկախ լինել: Արժեքի պարամետրը օգտագործվում է նաև սկրիպտների միջոցով տվյալների մուտք գործելու համար:

Ներկայացրեք ձևը

1.1. Կոճակ (մուտքագրման տեսակ=կոճակ) 1.2. Կոճակ պատկերով (մուտքագրման տեսակ=պատկեր) Կոճակ նկարով

Պատկերներով կոճակները գործողությամբ նման են Submit կոճակին, բայց դրանք պատկեր են ներկայացնում: Դա անելու համար սահմանեք type=image և src="image.gif":

Երբ օգտատերը կտտացնում է պատկերի վրա որևէ տեղ, համապատասխան ձևը կներկայացվի սերվերին՝ երկու լրացուցիչ փոփոխականներով՝ sub_x և sub_y: Դրանք պարունակում են նկարի վրա սեղմող օգտատիրոջ կոորդինատները: Փորձառու ծրագրավորողները կարող են նկատել, որ բրաուզերի կողմից ուղարկված փոփոխականների անունները իրականում պարունակում են կետ, այլ ոչ թե ընդգծում, բայց PHP-ն ավտոմատ կերպով փոխակերպում է կետը ընդգծման:

1.3. Ձևաթղթի ներկայացման կոճակ (մուտքագրման տեսակ = ուղարկել)

Ծառայում է ձևը սցենարին ներկայացնելու համար: Ձևը ներկայացնելու համար կոճակ ստեղծելիս պետք է նշեք 2 հատկանիշ՝ type="submit" և value="Button text." . Атрибут name необходим, если кнопка не одна, а несколько и все они созданы для разных операций, например кнопки "Сохранить", "Удалить", "Редактировать" и т.д. После нажатия на кнопку сценарию передается строка имя=текст кнопки.!}

PHP սկրիպտ չի պահանջվում:

1.4. Գործողությունների տարբերակ ընտրելու համար կոճակների զանգված (ներկայացնել) 2. Ձևի վերակայման կոճակ (Վերականգնել)

Երբ սեղմում եք «Վերականգնել» կոճակը, ձևի բոլոր տարրերը կսահմանվեն այն վիճակին, որը նշված է լռելյայն ատրիբուտներում, և ձևը չի ներկայացվի:

PHP սկրիպտ չի պահանջվում:

3. Վանդակը

Նշման վանդակները օգտվողին ներկայացնում են մի շարք տարբերակներ և թույլ են տալիս կամայական ընտրություն (դրանցից ոչ մեկը, մեկը կամ մի քանիսը):

Սպիտակ
Կանաչ
Կապույտ
Կարմիր
Սեվ

// կոճակների առաջին հավաքածու
// կոճակների երկրորդ հավաքածու
// կոճակների երրորդ հավաքածու

5. Տեքստային դաշտ (տեքստ)

Չափի չափի և առավելագույն թույլատրելի երկարության նիշերի սովորական տեքստային դաշտ ստեղծելիս type հատկանիշը վերցնում է արժեքի տեքստը: Եթե ​​արժեքի պարամետրը նշված է, դաշտում կցուցադրվի փոփոխականում նշված արժեքը: Դաշտ ստեղծելիս մի մոռացեք նշել դաշտի անվանումը, քանի որ... այս հատկանիշը պարտադիր է:

6. Գաղտնաբառի դաշտ

Ճիշտ նույնը, ինչ տեքստային դաշտը, բացառությամբ, որ օգտագործողի կողմից մուտքագրված նիշերը չեն ցուցադրվի էկրանին:

7. Թաքնված տեքստային դաշտ (թաքնված)

Թույլ է տալիս ծառայության որոշ տեղեկություններ փոխանցել սցենարին՝ առանց այն էջում ցուցադրելու:

8. Բացվող ցուցակ (ընտրել)

Պիտակը բացվող կամ ընդլայնված ցուցակ է, և մեկ կամ մի քանի տող կարող է ընտրվել միաժամանակ: Բայց արժեքը կփոխանցվի վերջին ընտրված կոճակին:

Ցուցակը սկսվում է զուգակցված պիտակներով: Թեգերը թույլ են տալիս սահմանել ցանկի բովանդակությունը, իսկ արժեքի պարամետրը սահմանում է տողի արժեքը: Եթե ​​ընտրված պարամետրը նշված է թեգում, ապա տողը սկզբնապես կընտրվի: Չափի պարամետրը սահմանում է, թե քանի տող է զբաղեցնելու ցուցակը: Եթե ​​չափը 1 է, ապա ցուցակը կլինի բացվող: Եթե ​​բազմակի հատկանիշը նշված է, ապա ցանկից կարելի է ընտրել մի քանի տարրեր: Բայց այս սխեման գործնականում չի օգտագործվում, և չափը = 1-ի դեպքում իմաստ չունի:

Սպիտակ Կանաչ Կապույտ Կարմիր Սև

Եթե ​​Ձեզ անհրաժեշտ է ստեղծել բացվող ցանկ՝ կանխատեսելի հաջորդականությամբ: Օրինակ՝ ցուցակ 2000-ից 2050 թվականներով։ Այնուհետև օգտագործվում է հետևյալ տեխնիկան։

9. Բազմագիծ տեքստի մուտքագրման դաշտ (textarea)

Տեքստի մուտքագրման մի քանի տող դաշտը թույլ է տալիս ուղարկել ոչ միայն մեկ տող, այլ միանգամից մի քանի տող: Անհրաժեշտության դեպքում կարող եք նշել միայն կարդալու հատկանիշը, որն արգելում է խմբագրել, ջնջել և փոխել տեքստը, այսինքն. տեքստը կլինի միայն կարդալու համար: Եթե ​​անհրաժեշտ է, որ տեքստը սկզբնապես ցուցադրվի մի քանի տող մուտքագրման դաշտում, ապա այն պետք է տեղադրվի պիտակների միջև:

Կա փաթաթման պարամետր՝ սահմանելով տողերի փաթաթումը: Հնարավոր արժեքներ.

անջատված - անջատում է գծի փաթաթումը;

վիրտուալներ - ցույց է տալիս տողերի ընդմիջումները, բայց ուղարկում է տեքստը այնպես, ինչպես մուտքագրվել է.

ֆիզիկական - գծերի ընդմիջումները մնացել են իրենց սկզբնական տեսքով:

Լռելյայնորեն, պիտակը ստեղծում է դատարկ դաշտ, որն ունի 20 նիշ լայնություն և բաղկացած է 2 տողից:


Որպեսզի բազմատող տեքստային դաշտը համապատասխանի html ձևաչափմանը (տողերի փաթաթում պիտակի միջոցով
կամ
), ապա օգտագործեք nl2br() ֆունկցիան.

Սկզբնապես զետեղված տող 1 Սկզբնապես զետեղված տող 2 Սկզբնապես զետեղված տող 3

10. Ֆայլեր վերբեռնելու կոճակ (թերթիր)

Ծառայում է սերվերում ֆայլերի վերբեռնումը իրականացնելու համար: Տեքստային դաշտ ստեղծելիս անհրաժեշտ է նաև նշել դաշտի տեսակը որպես «ֆայլ»:

Ներբեռնել ֆայլ:

ԲՐԱԶԵՐԻ ՀԵՏ ՍԵՐՎԵՐԻ ՀԵՏ Շփվելու ուղիները

Կան մի քանի մեթոդներ, որոնք նախատեսված են HTTP արձանագրությամբ: Սա կարևոր տեղեկություն է։ Ուրիշ ճանապարհներ չկան։ Գործնականում օգտագործվում են երկուսը. GET-ն այն է, երբ տվյալները փոխանցվում են հասցեագոտում, օրինակ, երբ օգտվողը սեղմում է հղումը: POST - երբ նա սեղմում է ձևի կոճակը:

GET մեթոդ

GET մեթոդով տվյալներ փոխանցելու համար ձեզ հարկավոր չէ ձևաթղթ ստեղծել HTML էջում (ոչ ոք ձեզ չի արգելում օգտագործել հարցումների ձևերը GET մեթոդով, բայց սա հիմարություն է) - պարզապես փաստաթղթի հղում՝ ավելացնելով. հարցման տողը, որը կարող է նմանվել փոփոխական=արժեքի զույգերը համակցվում են՝ օգտագործելով ամպերսանդ &, և տողը կցվում է էջի URL-ին՝ օգտագործելով հարցական նշանը «? «

Բայց դուք չպետք է օգտագործեք key=value զույգեր, եթե ձեզ անհրաժեշտ է փոխանցել ընդամենը մեկ փոփոխական, դա անելու համար անհրաժեշտ է հարցական նշանից հետո գրել փոփոխականի VALUE արժեքը (ոչ թե անունը):

Այս կերպ պարամետրեր փոխանցելու առավելությունն այն է, որ հաճախորդները, որոնք չեն կարող օգտագործել POST մեթոդը (օրինակ՝ որոնման համակարգերը), կարող են պարզապես պարամետրերը փոխանցել սցենարին՝ հետևելով հղմանը և ստանալ բովանդակությունը։

Բացասական կողմն այն է, որ պարզապես փոխելով հասցեագոտի պարամետրերը, օգտվողը կարող է անկանխատեսելի կերպով շրջել սկրիպտը, սա ստեղծում է անվտանգության հսկայական փոս, երբ համակցվում է չսահմանված փոփոխականների և register_globals-ի հետ, կամ ինչ-որ մեկը կարող է պարզել կարևոր փոփոխականի արժեքը: (ինչպես նստաշրջանի ID-ն)՝ պարզապես նայելով մոնիտորի էկրանին:

Պարամետրերի փոխանցման միջոցով հանրային էջեր մուտք գործելու համար (ֆունկցիոնալության բարձրացում)

Տեղեկատվության փոխանցում, որը չի ազդում անվտանգության մակարդակի վրա

Անցած պարամետրերով պաշտպանված էջեր մուտք գործելու համար

Անվտանգության մակարդակի վրա ազդող տեղեկատվություն փոխանցելու համար

Տեղեկատվություն փոխանցելու համար, որը չի կարող փոփոխվել օգտագործողի կողմից (ոմանք փոխանցում են SQL հարցումների տեքստը.

POST մեթոդ

Դուք կարող եք տվյալներ ներկայացնել POST մեթոդով միայն HTML էջի ձևի միջոցով: POST-ի և GET-ի հիմնական տարբերությունն այն է, որ տվյալները փոխանցվում են ոչ թե հարցման վերնագրում, այլ մարմնի մեջ, հետևաբար օգտատերը չի տեսնում դրանք։ Այն կարող է փոփոխվել միայն ձևը փոխելով:

Առավելություն.

Ավելի մեծ անվտանգություն և ֆունկցիոնալություն POST ձևաթղթերի օգտագործմամբ հարցումների համար:

Թերություն.

Ավելի քիչ հասանելիություն:

Ինչի համար պետք է օգտագործեք այն.

Մեծ քանակությամբ տեղեկատվություն (տեքստ, ֆայլեր..) փոխանցելու համար;

Ցանկացած կարևոր տեղեկատվություն փոխանցելու համար;

Մուտքը սահմանափակելու համար (օրինակ՝ նավարկության համար օգտագործեք միայն ձևը. տարբերակ, որը հասանելի չէ բոլոր ռոբոտ ծրագրերին կամ բովանդակություն գրավողներին):

Ինչի համար չպետք է օգտագործվի.

Ոչ մի սահմանափակում:

Ֆայլերի վերբեռնում POST մեթոդով

PHP-ն կարող է ընդունել ցանկացած բրաուզերի միջոցով ներբեռնված ֆայլ: Սա հնարավորություն է տալիս վերբեռնել ինչպես տեքստային, այնպես էլ երկուական ֆայլեր: Համակցված PHP վավերացման և ֆայլային համակարգի գործառույթների հետ՝ դուք լիովին վերահսկում եք, թե ում է թույլատրվում վերբեռնել ֆայլերը և ինչ անել ֆայլի հետ այն վերբեռնելուց հետո:

Ֆայլի վերբեռնման էջը կարող է իրականացվել հատուկ ձևի միջոցով, որն ունի հետևյալ տեսքը.

//Ֆայլեր վերբեռնելու ձև Ուղարկեք այս ֆայլը.

Վերևի օրինակում «_URL_»-ը պետք է փոխարինվի PHP սկրիպտի հղումով: Թաքնված MAX_FILE_SIZE դաշտը (արժեքը պետք է նշվի բայթերով) պետք է նախորդի ֆայլի ընտրության դաշտին, և դրա արժեքը առավելագույն թույլատրելի ֆայլի չափն է, որը պետք է ընդունվի: Դուք նաև պետք է համոզվեք, որ ձևի ատրիբուտներում նշել եք enctype="multipart/form-data", հակառակ դեպքում ֆայլերը չեն վերբեռնվի սերվեր:

Ուշադրություն

MAX_FILE_SIZE տարբերակը դիտարկիչի առաջարկ է, նույնիսկ եթե PHP-ն նույնպես ստուգի այս պայմանը: Բրաուզերի կողմից այս սահմանափակումը շրջանցելը բավականին հեշտ է, այնպես որ դուք չպետք է ապավինեք այս հատկությանը բոլոր ավելի մեծ ֆայլերը արգելափակելու համար: Այնուամենայնիվ, PHP-ի առավելագույն չափի սահմանափակումը շրջանցելու միջոց չկա: Այնուամենայնիվ, դուք պետք է ավելացնեք MAX_FILE_SIZE ձևի փոփոխական, քանի որ այն թույլ չի տալիս օգտվողներին անհանգիստ սպասել հսկայական ֆայլեր փոխանցելիս, միայն պարզել, որ ֆայլը չափազանց մեծ է, և իրականում փոխանցումը ձախողվել է:

Ինչպե՞ս սահմանել հարցման մեթոդ:

Ուղիղ:

Getenv («REQUEST_METHOD»);

կվերադարձնի GET կամ POST:

Ո՞ր մեթոդը պետք է օգտագործվի:

Եթե ​​ձևը օգտագործվում է որոշ տեղեկություններ պահանջելու համար, օրինակ՝ որոնման ժամանակ, ապա այն պետք է ուղարկվի GET մեթոդով։ Էջը թարմացնելու համար կարող եք էջանշել այն և կամ ուղարկել հղումը ընկերոջը:

Եթե ​​ձևի ներկայացման արդյունքում տվյալները գրանցվում կամ փոխվում են սերվերում, ապա դրանք պետք է ուղարկվեն POST մեթոդով, իսկ ձևը մշակելուց հետո անհրաժեշտ է վերաուղղորդել զննարկիչը GET մեթոդով: Նաև POST-ը կարող է անհրաժեշտ լինել, եթե անհրաժեշտ է մեծ քանակությամբ տվյալներ փոխանցել սերվերին (GET-ի համար այն շատ սահմանափակ է), ինչպես նաև եթե փոխանցված տվյալները չպետք է ցուցադրվեն հասցեագոտում (մուտքի և գաղտնաբառ մուտքագրելիս, օրինակ).

Ամեն դեպքում, POST-ը մշակելուց հետո միշտ պետք է բրաուզերը վերահասցեավորել ինչ-որ էջ, թեկուզ նույնը, բայց առանց ձևի տվյալների, որպեսզի էջը թարմացնելիս նորից չգրանցվեն։

Ինչպե՞ս փոխանցել տվյալները մեկ այլ ֆայլ անմիջապես PHP ծրագրի մարմնից՝ օգտագործելով GET և POST մեթոդները: Օրինակ՝ ցուցադրելու տվյալներ ուղարկելը POST և GET մեթոդներով միաժամանակ և սերվերից պատասխան ստանալը:

Այս հոդվածը մանրամասնում է PHP _SELF փոփոխականի օգտագործման մասին:

Ի՞նչ է PHP _SELF փոփոխականը:

PHP _SELF փոփոխականը վերադարձնում է ընթացիկ ֆայլի անունը և ուղին (փաստաթղթի արմատի համեմատ): Դուք կարող եք օգտագործել այս փոփոխականը ձևի գործողության հատկանիշում: Կան նաև որոշ նրբերանգներ, որոնք դուք պետք է իմանաք: Իհարկե, մենք չենք կարող անտեսել այս նրբությունները:

Դիտարկենք մի քանի օրինակ։

Echo $_SERVER["PHP_SELF"];

1) Ենթադրենք, որ ձեր php ֆայլը գտնվում է հետևյալ հասցեում.

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

Այս դեպքում PHP _SELF փոփոխականը կպարունակի.

«/form-action.php»

2) Ենթադրենք, որ ձեր php ֆայլը գտնվում է այս հասցեում.

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

PHP_SELF-ը կլինի՝

«/dir1/form-action.php»

PHP _SELF ձևի գործողության հատկանիշում: Ինչո՞ւ էր նա պետք այնտեղ:

Սովորաբար PHP _SELF փոփոխականն օգտագործվում է ձևի պիտակի գործողության հատկանիշում: Գործողությունների հատկանիշը նշում է այն հասցեն, որին կուղարկվի ձևի բովանդակությունը հաստատումից հետո (օգտվողը սեղմում է կոճակի վրա՝ type="submit"): Որպես կանոն, սա նույն էջն է, որտեղից հեռացել է ձևը։

Այնուամենայնիվ, եթե դուք վերանվանեք ֆայլը, որում նշված է ձևը, դուք պետք է վերանվանեք ֆայլի անունը գործողությունների հատկանիշում, հակառակ դեպքում ձևը չի աշխատի:

PHP _SELF փոփոխականը կփրկի ձեզ ավելորդ ուղղումներից, քանի որ էջի հասցեն ավտոմատ կերպով կստեղծվի՝ հիմնվելով ֆայլի անվան վրա:

Ենթադրենք, դուք ունեք ձևի ֆայլ, որը կոչվում է form-action.php և ցանկանում եք, որ ձևը հաստատվելուց հետո ներկայացվի նույն ֆայլին: Սովորաբար նրանք գրում են այսպես.

Բայց դուք կարող եք օգտագործել PHP _SELF փոփոխականը՝ form-action.php-ի փոխարեն: Այս դեպքում կոդը նման կլինի.