AmakhompyuthaIsofthiwe

PHP variable global e umsebenzi. Yenza variable global e PHP

Ukudala indawo egcwele, okuyinto has ukusebenza ezibanzi odinga ukukwazi eziningi. Kodwa yini engenza kuye eyingqayizivele ngempela - kuba PHP. I variable global ngolimi izinhlelo alisetshenziswa ngokuvamile kakhulu, kodwa ngezinye izikhathi ukwazi ukuthi isebenza kanjani, ngezinye izikhathi kuyadingeka. Lokho kusho ukufunda lokho kusho ukuthini futhi kusebenza kanjani, siyaphi ukwenza kulesi sihloko.

ububanzi

Ngakho shayela umongo lapho variable kunquma. Ezimweni eziningi, banayo ububanzi eyodwa kuphela. Lapho PHP eziguquguqukayo global ukulayishwa kusuka namanye amafayela ke kungase zifake (zihlanganisa) futhi iyadingeka (zidinga).

Ngokuzenzakalelayo, enqindwa wendawo umsebenzi ububanzi. Futhi indlela yokwenza ukubonwa amafayela okuguquguqukayo yalo, okungase ngaphezulu bese usebenzisa? Kuze kube yimanje, futhi inikezwe PHP eziguquguqukayo global.

I elisemqoka "global"

Futhi nangu kanjani ukumemezela kwenombolo womhlaba wonke PHP? Ukuze kufezekiswe lo mgomo kuyosisiza igama elithi "global". Kuyadingeka ukubeka phambi variable ofuna ukwenza global (narimer, «global I variable").

Ngemva ukuqaliswa inkomba ezinjalo, idatha bazokwazi ukusebenza noma yiliphi ifayela. Uma endaweni ethile kukhona izinkomba lokhu okuguquguqukayo, uhlelo uyohlale unake ku version global.

Kungani ulimi angalwazi enjalo? Iqiniso lokuthi ngesikhathi esifanayo kungase kube izinguqulo zendawo. Kodwa izotholakala kuphela ngalawo mafayela lapho kumenyezelwa. Futhi bonke abanye uyokwenza eziguquguqukayo global ekilasini PHP. Ngakho-ke kumelwe uqaphele. Futhi kungabi nakungabaza kwaba, nakhu isibonelo ukuthi abukeka kanjani: a global.

Ngoba uma ifayela elilodwa bayokwazi ukufinyelela inombolo lokwehlukile, kuzobangela ukuba zishayisane. Kodwa thina asinakulokotha sizifake ngokuqiniseka - wendawo noma global ★ ofundiwe noma ngokuphelele ehluleka. Ngakho, uma kuwukuthi ubhalise umsebenzi, kufanele kube yinkinga. Kodwa ukusetshenziswa kwenombolo for kwemingcele yayo ukuba yinkinga. Ngakho-ke, ukwakheka nokubhalwa ikhodi ezidingekayo eduze iqaphe futhi uqiniseke ukuthi akukho ndawo lapho ngisho imfuneko ukuba impi wathi ezaphakama.

Enye samuntu ukuqopha

Kungenzeka yini e PHP ukwakha variable global ngenye indlela? Yebo, akekho ngisho noyedwa. Okokuqala, ake sicabangele lo $ GLOBALS. Lena yi-array associative. Isihluthulelo ke - yigama. Njengoba ukubaluleka okuqukethwe uba variable global. Kufanele kuqashelwe ukuthi afanayo emva isimemezelo ukhona nganoma iyiphi ububanzi. Lokhu kunikeza isizathu sokukholelwa ke superglobal. Kubonakala kanjalo: $ GLOBALS [ 'variable'].

Echazwe ngaphambilini / superglobals

Kuwo wonke ulimi lokwakha izinhlelo kukhona ezinye amagama ukuthi laqasha kwabanye imisebenzi yawo ngokupheleleko. Ngakho-ke, ukudala e PHP eziguquguqukayo global of the gama elifanayo ngeke zisebenze.

Lolu limi izinhlelo has izici zayo siqu. Ngakho, kubalulekile ukuthi eziguquguqukayo achazwe lapha kungukuthi kokufaka "super", okungukuthi, lokho akusho ukuthi itholakale kuzo zonke izindawo. Ngingayithola kanjani ukukulungisa? Ukuze eziguquguqukayo achazwe yayitholakala ezinye endaweni, kufanele lishiwo kanje Global «variable :." Kubonakala sengathi iyafana phambi watshela, angithi? Kuyiqiniso, kodwa hhayi ngempela. Ake sibheke kakade "elwa" isibonelo:

  • $ Global HTTP_POST_VARS;
  • senanele $ HTTP_POST_VARS [ 'igama'].

Uzizwa umehluko phakathi kwabo? Qaphela ukuthi PHP eziguquguqukayo global akubalwa kufanele zisetshenziswe ngaphakathi umsebenzi. Lingase afakwe ifayela likhona ke.

Izixhumanisi nokuphepha

Njengoba ubona, e PHP ukudala variable global akuyona inkinga. Kodwa ingabe sikhona izixhumanisi ethile isihlobo? Yebo, kungase kube indlela yokuziphatha engalindelekile lapho usebenzisa global. Kodwa kungakenzeki lokho, a backstory kancane.

In version 4.2.0 nesiqondiso ngokwakhona register_globals washintsha esuka ku-isimo off. Kubasebenzisi abaningi, lena akuyona kubaluleke kakhulu, kodwa kwanhlanga zimuka nomoya. Phela, oluthinta ngqo ukuphepha komkhiqizo athuthukile. Uma udinga ukwenza variable global PHP-umyalelo ngalolu ipharamitha alithintwa ngqo. Nokho, ukusetshenziswa engalungile kungaba kakade ukwakha izibonelo nokuvikeleka.

Ngakho uma register_globals sivuliwe, ngaphambi ukubulawa kwabo esilotshiwe ukuqaliswa eziguquguqukayo ezahlukene ukuthi kudingeka, isibonelo ukuthumela ku-HTML amafomu. Ngakho-ke, kwanqunywa ukuba uyivale.

Kungani isimo lesi siqondiso e php variable global ukweleta kakhulu? Iqiniso liwukuthi lapho isimo onjiniyela benze ngaso sonke isikhathi ngokuqiniseka kungenzeka bona siphendule umbuzo othi lapho evela khona. Ngakolunye uhlangothi, kuba lula ukubhala ikhodi. Kodwa ngakolunye - kuba ingozi yokuphepha. Ngakho-ke, ukuze ugweme amaphutha, kanye nedatha ukuxuba futhi umyalelo ivimbelwe.

Manje ake sibheke ezinye hhayi / ikhodi ephephile, kanye nendlela ukuthola ezimweni lapho isimemezelo global PHP variable kuhambisana nemizamo zingaphazamisi idatha. Lokhu kuyadingeka ukuze udale hhayi kuphela enhle, kodwa futhi amasayithi musa crack lomuntu lokuthoma etholakalayo kancane kancane ukusebenza.

ikhodi enonya

Masihlele ukuthi variable Kunjalo ngalabo ogunyaziwe abaye:

uma (authenticate_user ()) {
$ Gunyaza = kweqiniso;
}

uma ($ bagunyaze) {
zihlanganisa "/highly/sensitive/data.php";
}

Kuleli zinga, variable lingasethwa ngokuzenzakalelayo. Uma ucabanga ukuthi idatha umane isikhala sikaJuda, futhi umthombo imvelaphi yabo kungasethiwe, noma ubani angaba baphumelele isivivinyo ezinjalo, uzishaye omunye umuntu. Uma wayefisa, umhlaseli (noma umuntu nje ukwazi kodwa ongenalwazi) kungenzeka kahle, logic yethu.

Uma sikuguqule ukubaluleka nesiqondiso, le khodi ngeke isebenze kahle, njengoba thina kudingeka. Kodwa Ukuqalisa lokwehlukile akuyona nje ithoni okuhle uhlelo, kodwa futhi kusinika isiqinisekiso ezithile ukuzinza iskripthi.

okufushane Esingawethemba ikhodi

ungavala noma ukusebenza iziqondiso, noma linqume ikhodi eziyinkimbinkimbi ukuze kufinyelelwe lo mgomo. Ngokwesibonelo, kanje:

uma (isset ($ _ ISAHLUKO [ 'igama lomsebenzisi'])) {

echo "Sawubona {$ _ ISAHLUKO [ 'igama lomsebenzisi']} ";

} Else {

echo "Sawubona lezivakashi
";
echo "Siyakwamukela umsebenzisi!";

}

Yenza esikhundleni kuleli cala, kuzoba nzima. Kodwa namanje - kungenzeka. Ukuze wenze lokhu, kuzomele unakekele ukuthi amathuluzi ngokushesha Ukusabela zanikezwa. Uma ufuna ukufaka eziguquguqukayo global e PHP, ungasebenzisa amathuluzi ezilandelayo: uma sazi ukuthi lebanga ukubaluleka etholwe, kungenzeka ukubhalisa iskripthi uhlole lokhu nge ukufana. Yiqiniso, futhi akuqinisekisi isivikelo ngokugcwele ngokumelene esikhundleni amagugu. Kodwa lokho ongakhetha kakhulu kakhulu izinkinga.

Ithola imizamo azenza

Ake sibone ukuthi yini kutsi zalotshwa ngaphambi kwalokho. Ngo PHP eziguquguqukayo wonke esikhathini umsebenzi uzonikezwa ngezansi, uzodinga ukumemezela ngokwakho. Singasho ukuthi lena uhlobo umsebenzi wesikole on nokwenziwa esifundweni sihloko. Nansi ikhodi:

uma (isset ($ _ COOKIE [ 'C_COOKIE'])) {
} Elseif (isset ($ _ THOLA [ 'C_COOKIE']) || isset ($ _ POST [ 'C_COOKIE'])) {

mail ( "administrarot@example.com", "Ukunakwa, iskripthi sabhalwa kuwumzamo ukugqekeza zingaphazamisi idatha", $ _SERVER [ 'REMOTE_ADDR']);
echo "Kube ukuphepha eliphukile noma azame ukwenza lokho ukuze aziswe uMphathi.";
ephumayo;

} Else {
}
?>

Manje incazelo nalokho. Ngokwengxenye C_COOKIE iza kithi emthonjeni onokwethenjelwa. Ukuze wanelisa ngokugcwele ngokuvumelana yi kulindeleke, sihlole ukubaluleka kwalo futhi ikwazise umlawuli uma izinkinga. Uma kungafiki ke akukho senzo futhi akazange okudingeka uzenze. Kumele baqonde ukuthi umane ukukhubaza somyalelo register_globals ayenzi ikhodi yakho ivikelekile. Ngakho-ke, iyiphi variable othola iskripthi esivela umsebenzisi, kufanele kuhlolelwe elilindelekile.

isiphetho

Lapha, ngokuvamile, futhi konke odinga ukukwazi mayelana eziguquguqukayo global ngempumelelo futhi ngokuphepha zisebenzisa emsebenzini wabo. Yiqiniso, ukusho ukuthi kukhona isiqinisekiso ngokugcwele ukuthi akekho umuntu ukuzisebenzisa bengayi - abahlaseli njalo ekuthuthukiseni izindlela zabo namakhono. Ngakho-ke efiselekayo ukhawule ukusetshenziswa esiphezulu lokwehlukile global ikhodi. Ngenhlanhla, isakhiwo kanye nomklamo izici zalesi ulimi lokwakha izinhlelo kungaba sifinyelele lo mgomo. Ngikufisela inhlahla!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 zu.delachieve.com. Theme powered by WordPress.