Mga kompyuter, Software
Ang PHP usa ka variable sa usa ka function. Paghimo sa global variable sa PHP
Aron makahimo sa usa ka hingpit nga site nga adunay dakong kagamitan, kinahanglan nimo nga masayud bahin niini. Apan unsa ang makahatag niini nga tinuod nga pagkatalagsaon mao ang PHP. Ang usa ka tibuok kalibutan nga kalagmitan sa kini nga programming language wala kaayo gigamit, apan usahay gikinahanglan nga mahibal-an kon giunsa kini paglihok. Pinaagi sa pagtuon kon unsa kini ug unsaon kini pagtrabaho, atong gamiton kini nga artikulo.
Sakop
Sa kasagaran, kini limitado sa lokal nga kasangkaran sa buluhaton. Ug unsaon nimo nga gusto nga ang variable nga makita sa mga file sa gawas sa mga utlanan, ug mahimo ba usab kini gamiton? Tungod niini, naghatag usab ang PHP og global variable.
Ang keyword nga "global"
Human sa pagpatuman sa ingon nga pagtudlo, ang bisan unsang file mahimo nga magtrabaho uban sa datos. Kung sa bisan diin adunay mga paghisgot niini nga baryable, nan ang programa kanunay nga mamati sa global nga bersyon.
Ngano nga ang usa ka katingad nga pagmugna? Ang kamatuoran mao nga dungan niini adunay mga lokal nga bersyon. Apan kini anaa lamang sa mga file diin kini gipahayag. Ug alang sa tanan, ang global nga mga variable sa klase PHP magtrabaho. Busa, kinahanglan ka nga mag-amping. Ug aron nga walay pagduhaduha, usa kini ka pananglitan kung giunsa nila pagtan-aw: global a.
Tungod kay kung ang usa ka file adunay access sa daghang mga variable, kini makahimo kanila sa panagbangi. Apan dinhi ang usa dili makasulti sa eksakto - ang pagbasa sa lokal o global mahimong basahon, o ang usa ka kasaypanan motungha. Busa, kung kini nahisulat sulod sa usa ka function, nan kinahanglan nga walay bisan unsa nga problema. Apan ang paggamit sa usa ka variable nga lapas sa mga limitasyon niini mahimong problema. Busa, gikinahanglan ang pag-monitor pag-ayo sa istruktura sa kompyuter sa programa ug pagsiguro nga wala'y bisan unsa nga kinahanglanon sa panagbangi nga moabut.
Laing kapilian sa pagrekord
Predefined / superglobals
Sa matag pinulongan sa pagprogram, adunay pipila ka mga ngalan nga gipangayo alang sa tagsa-tagsa nga mga kalihokan. Busa, dili ka makahimo sa mga global variable sa PHP nga adunay sama nga ngalan.
Sa kini nga programming language adunay mga espesyal nga bahin. Busa, importante mao nga ang mga predefined nga mga variables dinhi wala'y "super" setting, nga mao, kini wala sa tanang dapit. Unsaon nako kini mahimo? Aron ang usa ka predefined variable mahimong magamit sa pipila ka lokal nga lugar, kini kinahanglan nga ipahayag ingon sa mosunod: global "Variable". Daw pareho ra kini nga gisulti kaniadto, di ba? Tinuod, apan dili gayud. Tan-awon nato ang panig-ingnan sa "panagsangka":
- Global $ HTTP_POST_VARS;
- Echo $ HTTP_POST_VARS ['ngalan'].
Gibati ba nimo ang kalainan tali kanila? Timan-i nga sa PHP, usa ka global variable dili kinahanglan nga gamiton sulod sa usa ka function. Kini mahimutang sa usa ka file nga gilakip niini.
Links ug seguridad
Sumala sa imong makita, sa PHP, ang pagmugna sa usa ka global variable dili usa ka problema. Apan aduna bay mga bahin bahin sa mga sumpay? Oo, mahimo nga wala damha nga kinaiya sa paggamit sa kalibutan. Apan sa wala pa kini usa ka gamay nga kasinatian.
Sa version 4.2.0, ang regulasyon sa register_globals nausab gikan sa sa estado ngadto sa off state pinaagi sa default. Alang sa kadaghanang tiggamit, kini dili kaayo importante, apan sa walay kapuslanan. Human sa tanan, kini direkta nga makaapekto sa kaluwasan sa produkto nga gipalambo. Kung gikinahanglan nimo ang usa ka global nga variable, ang direktiba sa PHP sa niini nga parameter dili direkta nga makaapekto niini. Apan ang sayup nga paggamit makahimo na sa mga sumbanan alang sa seguridad.
Busa, kon magparehistro ang register_globals, sa dili pa ipatuman ang sinulat nga code, ang nagkalain-lain nga mga variables gisugdan, nga gikinahanglan, sama pananglitan, sa pagpadala sa mga porma sa HTML. Busa, nakahukom nga ihunong kini.
Ngano nga ang estado niini nga direktiba sa php usa ka tibuok kalibutan nga variable tungod sa daghan? Ang tinuod mao nga kung ang estado nagsugod na, ang mga tig-uswag dili kanunay nga makahimo sa gawasnon nga pagtubag sa pangutana kung diin kini gikan. Sa usa ka bahin, kini nahimong mas sayon sa pagsulat sa code. Apan sa pikas - kini naghimo sa hulga sa seguridad. Busa, aron malikayan ang mga kasaypanan, ingon man usab ang pagsagol sa datos ug ang direktiba wala kapugong.
Ug karon tan-awon nato ang dili kasegurohan nga kodigo, ug kung unsaon pag-ila sa mga kaso sa dihang ang deklarasyon sa mga variable sa PHP sa tibuok kalibutan giubanan sa paningkamot sa pagsabwag sa datos. Gikinahanglan kini aron sa paghimo dili lamang sa matahum, apan usab sa lig-on nga mga site sa pagtrabaho nga dili moliki sa unang tawo nga moabut sa tabok.
Makadaot nga kodigo
Atong tukoron nga ang kabililhon tinuod alang niadtong kinsa gitugutan:
Kung (authenticate_user ()) {
$ Authorize = tinuod;
}
Kon ($ may katungod)
Ilakip ang "/highly/sensitive/data.php";
}
Niini nga kahimtang, ang kapilian mahimong awtomatik nga ibutang. Tungod kay ang datos mahimo lamang nga mapulihan, ug ang tinubdan sa ilang gigikanan dili matukod, nan ang bisan kinsa nga tawo makapasa sa ingon nga pagsusi ug pagpakaaron-ingnon sa laing tawo. Kung gusto, ang tig-atake (o usa ka talagsaon, apan walay kasinatian nga tawo) mahimong makalapas sa katarungan sa script.
Kon imong usbon ang bili sa direktiba, nan kini nga kodigo mahimong tukma nga magtrabaho, sumala sa among gikinahanglan. Apan ang pagsugod sa mga baryable dili lamang usa ka maayong tono sa programming, apan naghatag usab kanato sa pipila ka mga garantiya sa kalig-on sa script.
Usa ka maayong bersyon sa kodigo
Aron makab-ot kini nga tumong, mahimo nimong mapapas ang operasyon sa direktiba, o magparehistro sa mas komplikado nga code. Pananglitan, ania kini:
Kung (isset ($ _ SESSION ['username']))) {
Echo "Hello {$ _ SESSION ['username']} b>";
} Lain nga {
Echo "Hello Bisita b>
";
Echo "Hello, user!";
}
Niini nga kahimtang, lisud ang paghimo sa pagpuli. Apan mahimo gihapon kini. Aron mahimo kini, ang pag-amping kinahanglan himoon aron sa pagsiguro nga ang paspas nga mga himan sa tubag gihatag. Kung gusto nimong i-apil ang global variables sa PHP, mahimo nimong gamiton ang mosunod nga himan: kung nahibal-an namon ang gidak-on nga makuha ang bili, mahimo namo mapalista kini aron ang script magsusi niini pinaagi sa paggamit og mapa. Siyempre, dili usab kini garantiya sa hingpit nga panalipod batok sa pag-ilis sa mga bili. Apan dinhi ang pagsiksik sa posible nga mga kapilian mahimong makomplikado.
Gipangita ang pagsulay nga paghulip
Atong tan-awon kon giunsa ninyo pagsabut ang inyong gisulat sa sayo pa. Sa PHP global nga mga kapilian sa function, nga igahatag sa ubos, kinahanglan nimo nga ipahayag ang imong kaugalingon. Mahimong ikaingon nga kini sa usa ka paagi usa ka homework nga buluhaton aron makat-on sa hilisgutan sa leksyon. Ania ang kodigo:
Php
Kung (isset ($ _ COOKIE ['C_COOKIE'])) {
} Elseif (isset ($ _ GET ['C_COOKIE']) || isset ($ _ POST ['C_COOKIE'])) {
Mail ("administrarot@example.com", "Warning, ang script nagtala sa pagsulay sa pag-hack ug spoof data, $ _SERVER ['REMOTE_ADDR']);
Echo "Ang seguridad gikompromiso o misulay sa pagbuhat sa ingon." Gipahibalo sa Administrator ";
Paggawas;
} Lain nga {
}
?>
Ug karon usa ka pagpasabut niini. Ang usa ka variable nga C_COOKIE nagagikan sa usa ka kasaligang tinubdan. Aron hingpit nga mapamatud-an ang gilauman nga resulta, among susihon ang bili niini ug, kon adunay mga problema, ipahibalo ang tagdumala mahitungod niini. Kon wala'y bisan unsa nga moabut, nan wala'y aksyon nga pagakuhaon. Kinahanglan sabton nga ang pagputol lamang sa direktiba sa register_globals dili makahimo sa imong code nga luwas. Busa, ang bisan unsa nga variable nga nadawat sa script gikan sa user kinahanglan nga susihon alang sa gipaabot nga bili.
Panapos
Kana, sa kinatibuk-an, ug sa tanan nga gikinahanglan nga mahibal-an mahitungod sa kalibutanong mga kabag-ohan, aron malampuson ug luwas nga gamiton kini sa ilang mga kalihokan. Siyempre, ang pag-ingon nga adunay garantiya nga walay usa nga makagamit niini - ang mga cracker kanunay nga nagpalambo sa ilang mga pamaagi ug mga kahanas. Busa, gituyo nga limitahan ang paggamit sa kalibutanong mga kausaban sa kodigo sa maximum. Maayo na lang, ang estraktura ug mga bahin sa pagtukod niini nga programming language makahimo niini nga tumong. Maayo nga swerte!
Similar articles
Trending Now