Imaginary submit php. Html forms: php form - magpadala ng kahilingan sa parehong page. Paano Iwasan ang Problema sa PHP _SELF

Matagal kong iniisip kung anong pamagat ang ibibigay sa artikulong ito at wala akong maisip na mas mahusay. Ito ang tanging pamagat na kahit papaano ay sumasalamin sa kakanyahan ng kung ano ang nakasaad. Sa totoo lang, hindi ko alam kung ano ang tawag dito nang tama, kaya pinangalanan ko ang artikulo sa parehong paraan na sinubukan kong maghanap ng hindi bababa sa ilang impormasyon sa isang search engine sa paksang ito.

Sa isa sa mga site, kailangan kong gumamit ng dalawang button na isumite sa isang form, na magpapadala ng napunan na data sa iba't ibang mga "handler" ng PHP, depende sa kung kailan pinindot ang button. Hindi ako sinagot ng Google ng anumang makatwirang bagay, tila hindi ko lang ito naitanong sa tamang paraan, kaya kinailangan kong gumawa ng sarili ko.

Kaya inilatag ko ito para sa iyong pagsasaalang-alang.

Ang kakanyahan ng problema

Pagkatapos kong ipatupad ito, nakahanap pa rin ako ng ilang solusyon na nakabatay sa paggamit ng mga regular na button kung saan na-screw ang JS.

Ipinatupad ko ang aking plano sa halos parehong paraan, ngunit ginamit ang karaniwang uri ng pagsusumite. Ang lahat ay tila gumagana at sa palagay ko ang aking solusyon ay mas lohikal na tama.

Ang solusyon na ito ay gagana nang maayos pareho sa libreng pagho-host at kung pipiliin mo ang propesyonal na pagho-host. Ang pamamaraang ito ay ganap na ipinatupad sa panig ng kliyente at hindi dapat pabagalin ang server.

Upang gawing mas madaling maunawaan kung ano ang gusto ko at kung paano ito gumagana, narito ang isang talagang gumaganang halimbawa, sa anyo ng isang form na may 2 pagsusumite na nagpapadala ng data sa iba't ibang mga pahina.

Isa sa mga magagandang bagay tungkol sa PHP ay ang paraan ng paggana nito sa mga HTML form. Ang pangunahing bagay dito ay ang bawat elemento ng form ay awtomatikong magagamit sa iyong mga programa sa PHP. Para sa detalyadong impormasyon tungkol sa paggamit ng mga form sa PHP, basahin ang seksyon. Narito ang isang halimbawang HTML form:

Halimbawa #1 Pinakasimpleng HTML Form

Ang pangalan mo:

Edad mo:

Walang espesyal sa form na ito. Ito ay isang regular na HTML form na walang anumang mga espesyal na tag. Kapag pinunan ng user ang form at na-click ang submit button, tatawagin ang action.php page. Maaaring may katulad ang file na ito:

Halimbawa #2 Pagpapakita ng data ng form

Kamusta, .
Matanda ka na.

Halimbawang output ng program na ito:

Kamusta, Sergey. Ikaw ay 30 taong gulang.

Kung hindi mo isasaalang-alang ang mga piraso ng code na may htmlspecialchars() at (int), ang prinsipyo ng pagpapatakbo ng code na ito ay dapat na simple at naiintindihan. Tinitiyak ng htmlspecialchars() na ang mga "espesyal" na mga HTML na character ay maayos na naka-encode upang hindi maipasok ang nakakahamak na HTML o Javascript sa iyong pahina. Ang field ng edad, na alam naming dapat ay isang numero, maaari naming i-convert lamang sa isang integer, na awtomatikong mapupuksa ang mga hindi gustong character. Magagawa rin ito ng PHP nang awtomatiko gamit ang extension ng filter. Ang mga variable na $_POST["pangalan"] at $_POST["edad"] ay awtomatikong itinatakda para sa iyo ng PHP. Dati ginamit namin ang $_SERVER superglobal variable, ngunit dito ginagamit din namin ang $_POST superglobal variable, na naglalaman ng lahat ng POST data. pansinin mo yan paraan ng pagpapadala(pamamaraan) ng aming form ay POST. Kung ginamit natin ang pamamaraan GET, kung gayon ang aming impormasyon sa form ay nasa superglobal variable na $_GET . Bilang kahalili, maaari mong gamitin ang $_REQUEST variable kung hindi mahalaga ang data source. Ang variable na ito ay naglalaman ng pinaghalong GET, POST, COOKIE data.

15 Mga taon na nakalipas

Ayon sa detalye ng HTTP, dapat mong gamitin ang paraan ng POST kapag ginagamit mo ang form para baguhin ang estado ng isang bagay sa dulo ng server. Halimbawa, kung ang isang page ay may form upang payagan ang mga user na magdagdag ng sarili nilang mga komento, tulad nito dito, dapat gumamit ang form ng POST. Kung iki-click mo ang "I-reload" o "I-refresh" sa isang page na naabot mo sa pamamagitan ng isang POST, ito ay halos palaging isang error -- hindi ka dapat mag-post ng parehong komento nang dalawang beses -- kaya naman hindi naka-bookmark o naka-cache ang mga page na ito.

Dapat mong gamitin ang paraan ng GET kapag ang iyong form ay, well, nakakakuha ng isang bagay mula sa server at hindi aktwal na nagbabago ng anuman. Halimbawa, ang form para sa isang search engine ay dapat gumamit ng GET, dahil ang paghahanap sa isang Web site ay hindi dapat magbago ng anumang bagay na maaaring mahalaga sa kliyente, at ang pag-bookmark o pag-cache ng mga resulta ng isang search-engine na query ay kapaki-pakinabang tulad ng pag-bookmark o pag-cache. isang static na HTML page.

2 mga taon na nakalipas

Nararapat linawin:

Ang POST ay hindi mas secure kaysa sa GET.

Ang mga dahilan sa pagpili ng GET vs POST ay kinabibilangan ng iba't ibang salik gaya ng layunin ng kahilingan ("nagsusumite" ka ba ng impormasyon?), ang laki ng kahilingan (may mga limitasyon sa kung gaano katagal ang isang URL, at ang mga parameter ng GET ay ipinadala sa ang URL), at kung gaano mo kadaling gustong maibahagi ang Pagkilos -- Halimbawa, GET ang Mga Paghahanap sa Google dahil pinapadali nitong kopyahin at ibahagi ang query sa paghahanap sa ibang tao sa pamamagitan lamang ng pagbabahagi ng URL.

Ang seguridad ay isang pagsasaalang-alang lamang dito dahil sa katotohanan na ang isang GET ay mas madaling ibahagi kaysa sa isang POST. Halimbawa: hindi mo gustong magpadala ng password ng GET, dahil maaaring ibahagi ng user ang resultang URL at hindi sinasadyang ilantad ang kanilang password.

Gayunpaman, ang isang GET at isang POST ay pantay na madaling harangin ng isang malisyosong tao kung hindi mo ilalagay ang TLS/SSL upang protektahan ang mismong koneksyon sa network.

Ang lahat ng mga Form na ipinadala sa HTTP (karaniwang port 80) ay hindi secure, at ngayon (2017), walang maraming magandang dahilan para sa isang pampublikong website na hindi gumagamit ng HTTPS (na karaniwang HTTP + Transport Layer Security).

Bilang isang bonus, kung gagamit ka ng TLS, mababawasan mo ang panganib ng iyong mga user na makakuha ng code (mga AD) na na-inject sa iyong trapiko na hindi mo inilagay doon.

Ang mga pamamaraan ng POST at GET ay pangunahing ginagamit upang ilipat ang mga parameter mula sa mga puwersa. Ang pangunahing pagkakaiba sa pagitan ng mga pamamaraan ng POST at GET ay ang paraan ng paglilipat ng impormasyon. Sa pamamaraang GET, ipinapasa ang mga parameter sa address bar (URL), i.e. sa header ng kahilingan sa HTTP, habang sa pamamaraang POST ang mga parameter ay ipinapadala sa pamamagitan ng katawan ng kahilingan sa HTTP at hindi makikita sa address bar.

1. Mga Pindutan - Tag

Gumagawa ang tag ng mga button sa isang web page at ang pagkilos nito ay kahawig ng resultang nakuha gamit ang tag (na may parameter na type="button | reset | submit"). Hindi tulad ng tag na ito, nag-aalok ito ng mga advanced na opsyon para sa paggawa ng mga button. Halimbawa, sa naturang button maaari kang maglagay ng anumang elemento ng HTML, kabilang ang mga larawan. Gamit ang mga istilo, maaari mong tukuyin ang hitsura ng isang button sa pamamagitan ng pagpapalit ng font, kulay ng background, laki at iba pang mga parameter.

Sa teorya, ang tag ay dapat na matatagpuan sa loob ng form na itinakda ng elemento. Gayunpaman, ang mga browser ay hindi nagpapakita ng mensahe ng error at gumagana nang tama sa tag kung ito ay nakatagpo sa sarili nitong. Gayunpaman, kung kailangan mong ipadala ang resulta ng pag-click sa pindutan sa server, dapat itong ilagay sa isang lalagyan. Kinakailangan ang closing tag.

Mga Pagpipilian:

hindi pinagana - hinaharangan ang pag-access at pagbabago ng elemento.

uri - uri ng pindutan

value - Ang halaga ng button na ipapadala sa server o babasahin gamit ang sprits.

Button na may text

Parameter DISABLED Hinaharang ang pag-access at pagbabago ng button. Sa kasong ito, ito ay ipinapakita na kulay abo at hindi maaaring i-activate ng user. Bukod pa rito, hindi makakakuha ng focus ang naturang button sa pamamagitan ng pagpindot sa Tab key, gamit ang mouse, o kung hindi man. Gayunpaman, maaaring baguhin ang estado ng button na ito sa pamamagitan ng mga script.

Aktibong pindutan Hindi aktibo na pindutan

Parameter TYPE Tinutukoy ang uri ng button, na nagtatakda ng gawi nito sa form. Ang iba't ibang uri ng mga pindutan ay hindi naiiba sa hitsura sa anumang paraan, ngunit ang bawat pindutan ay may sariling mga pag-andar. Default na halaga: button.

Mga argumento:

pindutan - Regular na pindutan.

reset - Isang pindutan para sa pag-clear ng inilagay na data ng form at pagbabalik ng mga halaga sa kanilang orihinal na estado.

Isumite - Button para sa pagpapadala ng data ng form sa server.

I-clear ang form Isumite ang form

Parameter VALUE Tinutukoy ang halaga ng button na ipapadala sa server. Ang isang "name=value" na pares ay ipinapadala sa server, kung saan ang pangalan ay tinukoy ng name parameter ng tag, at ang value ay tinukoy ng value parameter. Ang kahulugan ay maaaring magkatugma sa teksto sa pindutan o maging malaya. Ginagamit din ang value parameter para ma-access ang data sa pamamagitan ng mga script.

Isumite ang form

1.1. Button (uri ng input=button) 1.2. Button na may larawan (uri ng input=larawan) Button na may larawan

Ang mga pindutan na may mga larawan ay katulad ng pagkilos sa pindutang Isumite, ngunit kinakatawan ng mga ito ang isang larawan. Upang gawin ito, itakda ang type=image at src="image.gif" .

Kapag nag-click ang user saanman sa larawan, ang kaukulang form ay isusumite sa server na may dalawang karagdagang variable - sub_x at sub_y . Naglalaman ang mga ito ng mga coordinate ng pag-click ng user sa larawan. Maaaring mapansin ng mga bihasang programmer na ang mga variable na pangalan na ipinadala ng browser ay talagang naglalaman ng isang tuldok sa halip na isang underscore, ngunit awtomatikong kino-convert ng PHP ang tuldok sa isang underscore.

1.3. Button na isumite ang form (uri ng input=isumite)

Nagsisilbing isumite ang form sa script. Kapag gumagawa ng button para magsumite ng form, dapat kang tumukoy ng 2 attribute: type="submit" at value=" Button text" . Атрибут name необходим, если кнопка не одна, а несколько и все они созданы для разных операций, например кнопки "Сохранить", "Удалить", "Редактировать" и т.д. После нажатия на кнопку сценарию передается строка имя=текст кнопки.!}

Walang kinakailangang PHP script.

1.4. Isang hanay ng mga pindutan (isumite) para sa pagpili ng opsyon sa pagkilos 2. Button sa pag-reset ng form (I-reset)

Kapag na-click mo ang pindutan ng pag-reset, ang lahat ng elemento ng form ay itatakda sa estado na tinukoy sa mga default na katangian, at ang form ay hindi isusumite.

Walang kinakailangang PHP script.

3. Checkbox

Ang mga checkbox ay nagpapakita sa user ng ilang mga opsyon, at nagbibigay-daan sa arbitraryong pagpili (wala, isa, o higit pa sa mga ito).

Puti
Berde
Asul
Pula
Itim

// unang hanay ng mga pindutan
// pangalawang hanay ng mga pindutan
// ikatlong hanay ng mga pindutan

5. Text field (text)

Kapag gumagawa ng isang regular na field ng text ng laki ng laki at ang maximum na pinapayagang haba ng maxlength na mga character, ang uri ng attribute ay tumatagal sa value ng text . Kung tinukoy ang value parameter, ipapakita ng field ang value na tinukoy sa variable. Kapag lumilikha ng isang field, huwag kalimutang tukuyin ang pangalan ng field, dahil... ang katangiang ito ay kinakailangan.

6. Field ng password

Eksaktong kapareho ng isang text field, maliban na ang mga character na na-type ng user ay hindi ipapakita sa screen.

7. Nakatagong field ng text (nakatago)

Binibigyang-daan kang magpasa ng ilang impormasyon ng serbisyo sa script nang hindi ito ipinapakita sa pahina.

8. Listahan ng dropdown (piliin)

Ang tag ay isang drop-down o pinalawak na listahan, at isa o higit pang mga row ang maaaring mapili nang sabay-sabay. Ngunit ang halaga ay ipapasa sa huling napiling button.

Nagsisimula ang listahan sa mga nakapares na tag. Binibigyang-daan ka ng mga tag na tukuyin ang mga nilalaman ng listahan, at tinutukoy ng parameter ng halaga ang halaga ng string. Kung ang napiling parameter ay tinukoy sa tag, ang row ay unang pipiliin. Tinutukoy ng parameter ng laki kung gaano karaming mga linya ang sasakupin ng listahan. Kung ang laki ay 1 , ang listahan ay magiging isang dropdown. Kung tinukoy ang maraming katangian, maaaring pumili ng maraming elemento mula sa listahan. Ngunit ang pamamaraan na ito ay halos hindi ginagamit, at sa laki = 1 ito ay walang kahulugan.

Puti Berde Asul Pula Itim

Kung kailangan mong gumawa ng drop-down na may predictable sequence. Halimbawa, isang listahan na may mga taon mula 2000 hanggang 2050. Pagkatapos ay ginamit ang sumusunod na pamamaraan.

9. Multiline text input field (textarea)

Binibigyang-daan ka ng multi-line text input field na magpadala ng hindi lamang isang linya, ngunit ilang sabay-sabay. Kung kinakailangan, maaari mong tukuyin ang readonly na katangian, na nagbabawal sa pag-edit, pagtanggal at pagbabago ng teksto, i.e. ang teksto ay magiging read-only. Kung kinakailangan para sa text na unang ipakita sa isang multi-line input field, dapat itong ilagay sa pagitan ng mga tag.

Mayroong isang parameter ng pambalot - pagtatakda ng pambalot ng linya. Mga posibleng halaga:

off - hindi pinapagana ang pambalot ng linya;

virtuals - nagpapakita ng mga line break, ngunit ipinapadala ang teksto habang ito ay ipinasok;

pisikal - ang mga line break ay naiwan sa kanilang orihinal na anyo.

Bilang default, ang tag ay gumagawa ng isang blangkong field na 20 character ang lapad at binubuo ng 2 linya.


Upang ang isang multi-line na field ng text ay makasunod sa html formatting (line wrapping gamit ang tag
o
), pagkatapos ay gamitin ang nl2br() function:

Orihinal na inilagay na linya 1 Orihinal na inilagay na linya 2 Orihinal na inilagay na linya 3

10. Button para sa pag-upload ng mga file (browse)

Nagsisilbi upang ipatupad ang pag-upload ng mga file sa server. Kapag gumagawa ng text field, kailangan mo ring tukuyin ang uri ng field bilang "file" .

Mag-upload ng file:

MGA PARAAN PARA MAKIPAG-UGNAYAN ANG BROWSER SA SERVER

Mayroong ilang mga pamamaraan na ibinigay ng HTTP protocol. Ito ay mahalagang impormasyon. Walang ibang paraan. Sa pagsasagawa, dalawa ang ginagamit: GET ay kapag ang data ay inilipat sa address bar, halimbawa, kapag nag-click ang user sa isang link. POST - kapag nag-click siya ng isang button sa form.

GET method

Upang maglipat ng data gamit ang GET method, hindi mo kailangang gumawa ng form sa isang HTML page (walang sinuman ang nagbabawal sa iyo na gumamit ng mga form para sa mga kahilingan gamit ang GET method - ngunit ito ay katangahan) - isang link lamang sa dokumento na may karagdagan ng isang query string na maaaring magmukhang isang variable=value pairs ay pinagsama gamit ang isang ampersand & at ang string ay idinagdag sa URL ng page gamit ang isang tandang pananong "? "

Ngunit hindi mo kailangang gumamit ng key=value pairs kung kailangan mong ipasa ang isang variable lang; para magawa ito, kailangan mong isulat ang VALUE (hindi ang pangalan) ng variable pagkatapos ng tandang pananong.

Ang bentahe ng pagpasa ng mga parameter sa ganitong paraan ay ang mga kliyenteng hindi maaaring gumamit ng POST na paraan (halimbawa, mga search engine) ay maaari pa ring ipasa ang mga parameter sa script sa pamamagitan ng pagsunod sa link at pagtanggap ng nilalaman.

Ang downside ay na sa pamamagitan lamang ng pagbabago ng mga parameter sa address bar ay maaaring iikot ng user ang script sa isang hindi mahuhulaan na paraan, ito ay lumilikha ng isang malaking butas sa seguridad kapag pinagsama sa mga hindi natukoy na variable at register_globals sa o maaaring malaman ng isang tao ang halaga ng isang mahalagang variable (tulad ng session ID) sa pamamagitan lamang ng pagtingin sa screen ng monitor.

Upang ma-access ang mga pampublikong pahina sa pamamagitan ng pagpasa ng mga parameter (nadagdagang functionality)

Paglipat ng impormasyon na hindi nakakaapekto sa antas ng seguridad

Upang ma-access ang mga protektadong pahina na may mga parameter na naipasa

Upang magpadala ng impormasyon na nakakaapekto sa antas ng seguridad

Upang magpadala ng impormasyon na hindi maaaring baguhin ng gumagamit (ang ilan ay nagpapadala ng teksto ng mga query sa SQL.

Paraan ng POST

Maaari kang magsumite ng data gamit ang POST method gamit lamang ang isang form sa isang HTML page. Ang pangunahing pagkakaiba sa pagitan ng POST at GET ay ang data ay ipinadala hindi sa header ng kahilingan ngunit sa katawan, kaya hindi ito nakikita ng user. Maaari lamang itong baguhin sa pamamagitan ng pagpapalit ng mismong anyo.

Advantage:

Higit na seguridad at functionality para sa mga kahilingan gamit ang mga POST form.

kapintasan :

Mas kaunting kakayahang magamit.

Ano ang dapat mong gamitin para sa:

Upang magpadala ng isang malaking halaga ng impormasyon (teksto, mga file ..);

Upang magpadala ng anumang mahalagang impormasyon;

Upang paghigpitan ang pag-access (halimbawa, gamitin lamang ang form para sa nabigasyon - isang opsyon na hindi available sa lahat ng robot program o content grabber).

Ano ang hindi dapat gamitin para sa:

Walang mga paghihigpit.

Pag-upload ng mga file gamit ang POST method

Ang PHP ay may kakayahang tumanggap ng isang file na na-download gamit ang anumang browser. Ginagawa nitong posible na mag-upload ng parehong mga text at binary file. Kasama ng pagpapatunay ng PHP at mga function ng file system, mayroon kang ganap na kontrol sa kung sino ang pinapayagang mag-upload ng mga file at kung ano ang gagawin sa file kapag na-upload na ito.

Maaaring ipatupad ang page ng pag-upload ng file gamit ang isang espesyal na form na ganito ang hitsura:

//Form para sa pag-upload ng mga file Ipadala ang file na ito:

Sa halimbawa sa itaas, ang "_URL_" ay kailangang mapalitan ng isang link sa script ng PHP. Ang nakatagong field na MAX_FILE_SIZE (ang halaga ay dapat na tinukoy sa mga byte) ay dapat na mauna sa field ng pagpili ng file, at ang halaga nito ay ang maximum na pinapayagang laki ng file na tatanggapin. Dapat mo ring tiyakin na tinukoy mo ang enctype="multipart/form-data" sa mga katangian ng form, kung hindi, ang mga file ay hindi maa-upload sa server.

Pansin

Ang MAX_FILE_SIZE na opsyon ay isang rekomendasyon sa browser, kahit na susuriin din ng PHP ang kundisyong ito. Ang pag-bypass sa limitasyong ito sa gilid ng browser ay medyo madali, kaya hindi ka dapat umasa sa tampok na ito upang harangan ang lahat ng mas malalaking file. Gayunpaman, walang paraan upang lampasan ang maximum na limitasyon sa laki ng PHP. Dapat kang magdagdag ng isang variable ng form na MAX_FILE_SIZE pa rin, dahil pinipigilan nito ang mga user na maghintay nang sabik habang naglilipat ng malalaking file, para lang malaman na ang file ay masyadong malaki at talagang nabigo ang paglipat.

Paano tukuyin ang isang paraan ng kahilingan?

Direkta:

Getenv("REQUEST_METHOD");

ay babalik GET o POST.

Aling paraan ang dapat gamitin?

Kung ang form ay ginagamit upang humiling ng ilang impormasyon, halimbawa sa panahon ng paghahanap, dapat itong ipadala gamit ang GET method. Upang ma-update ang page, maaari mo itong i-bookmark at o ipadala ang link sa isang kaibigan.

Kung, bilang resulta ng pagsusumite ng isang form, ang data ay naitala o binago sa server, dapat itong ipadala gamit ang POST na paraan, at pagkatapos iproseso ang form, kinakailangan na i-redirect ang browser gamit ang GET method. Gayundin, maaaring kailanganin ang POST kung ang isang malaking halaga ng data ay kailangang ilipat sa server (para sa GET ito ay napakalimitado), at gayundin kung ang inilipat na data ay hindi dapat ipakita sa address bar (kapag nagpapasok ng isang login at password, Halimbawa).

Sa anumang kaso, pagkatapos iproseso ang POST, dapat mong palaging i-redirect ang browser sa ilang pahina, kahit na pareho, ngunit walang data ng form, upang kapag ang pahina ay na-refresh, ang mga ito ay hindi naitala muli.

Paano maglipat ng data sa isa pang file nang direkta mula sa katawan ng isang PHP program gamit ang GET at POST method? Isang halimbawa upang ipakita ang pagpapadala ng data gamit ang mga pamamaraan ng POST at GET nang sabay-sabay at pagtanggap ng tugon mula sa server.

Ang artikulong ito ay pumunta sa detalye tungkol sa paggamit ng PHP _SELF variable.

Ano ang PHP _SELF variable?

Ang PHP _SELF variable ay nagbabalik ng pangalan at landas ng kasalukuyang file (na may kaugnayan sa ugat ng dokumento). Maaari mong gamitin ang variable na ito sa katangian ng pagkilos ng form. Mayroon ding ilang mga nuances na dapat mong malaman. Siyempre, hindi natin maaaring balewalain ang mga nuances na ito.

Tingnan natin ang ilang halimbawa.

Echo $_SERVER["PHP_SELF"];

1) Ipagpalagay natin na ang iyong php file ay matatagpuan sa sumusunod na address:

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

Sa kasong ito, ang PHP _SELF variable ay maglalaman ng:

"/form-action.php"

2) Ipagpalagay natin na ang iyong php file ay matatagpuan sa address na ito:

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

Ang PHP_SELF ay magiging:

"/dir1/form-action.php"

PHP _SELF sa katangian ng pagkilos ng form. Bakit kailangan siya doon?

Karaniwan ang PHP _SELF variable ay ginagamit sa katangian ng pagkilos ng tag ng form. Tinutukoy ng katangian ng pagkilos ang address kung saan ipapadala ang mga nilalaman ng form pagkatapos ng kumpirmasyon (nag-click ang user sa button na may type="submit"). Bilang isang patakaran, ito ang parehong pahina kung saan umalis ang form.

Gayunpaman, kung papalitan mo ng pangalan ang file na isinangguni ng form, kakailanganin mong palitan ang pangalan ng pangalan ng file sa katangian ng pagkilos, kung hindi ay hindi gagana ang form.

Ang PHP _SELF variable ay magliligtas sa iyo mula sa mga hindi kinakailangang pagwawasto, dahil ang address ng pahina ay awtomatikong bubuo batay sa pangalan ng file.

Sabihin nating mayroon kang form file na tinatawag na form-action.php at gusto mong isumite ang form sa parehong file pagkatapos ng kumpirmasyon. Kadalasan ay sumusulat sila ng ganito:

Ngunit maaari mong gamitin ang PHP _SELF variable sa halip na form-action.php. Sa kasong ito, magiging ganito ang code: