Komputeran, Software
Variable global PHP di function. Make a variable global li PHP
Ji bo afirandina a site full, ku fonksiyonên berfireh ku divê hun bizanibin gelek. Lê belê tiştê ku wî bi rastî xweser bikin - ew PHP e. The variable global li zimanê bernameyî tê bikaranîn, ne pir caran, lê carna ji bo dizanin çawa dixebite, carna jî pêwîst e. Ku xebata ji çi ye û çawa dixebite, em ê ji bo ku ez di vê gotarê de ye.
di çarçoveya
Wekî standard, ew bi çarçoveya function herêmî bi sînor. Û çawa ji bo ku variable files dîtin di sînorên wê de, ku zêdetir û dikarin bi kar bînin? Ji bo vê yekê, û ku di guherbarên global PHP dayîn.
The keyword "global"
Piştî pêkanîna van yek jî nîşan dide, li welat karibin kar bi ti file bin. Heke li cihekî ne referansên ji vê variable li wir, di bernameya wê her tim bal kişand li ser Versiyon ji global bidin.
Çima wiha zimanê xerîb? Ev rastiyeke ku, di heman demê de dikare bibe guhertoyên herêmî heye. Lê belê ew dê License de tenê ji bo yên ku pelên ku were ragihandin. Û ji bo hemûyên din wê guherbarên global tevbigerin class PHP. Ji ber vê yekê divê hûn baldar be. a global: Û ew bû ku tu dudilî tune ye, li vir, mînaka ka ew çawa ye ye.
Ji ber ku, eger yek file dê bikaribin ji bo hejmarek ji fakter hene, ew ê wan ji bo şer û pevçûnê. Lê belê em nikarin bêjin ji bo sure - variable herêmî an global xwendin an didan, bi ser nekeve. Îcar, eger ev e ku qeyd a function, divê tu pirsgirêk be. Lê bikaranîna a variable ji bo sînorên xwe ji bo pirsgirêk. Ji ber vê yekê, tê de avahiya li amadekirina reşnivîsa code pêwîst ji bo ji nêz ve şopandin û misoger dike ku herimê e li wir heta mîsogeriye ji bo şerê got, rabû ser xwe.
bighîjne din ji qeyda
Pêşdanasî / superglobals
Di her zimanê bernameyên hin navên ku ji bo hin ji karên xwe charter hene. Ji ber vê yekê, ji bo afirandina li guherbarên global PHP bi heman navî xebata wê ne.
Ev zimanê bernameyên taybetî û qalibên wî. Bi vî awayî, ev girîng e ku guherbarên pêşdanasî here bi bernameya bi "super", ku, ew ne li hemû cihan ne amade ne. Ez çawa dikarim tamîr bikin? To guherbarên pêşdanasî li hin qada herêmî tune bû, divê wiha :. «Guherbar Global bên îlankirin" Ev xuya dike ku eynî wek berê got, mafê? Ev rast e, lê ne gelek. Bila ji me re ji niha ve "şer", mînaka binêrin:
- $ Global HTTP_POST_VARS;
- echo $ HTTP_POST_VARS [ 'bi navê'].
Hûn hest bi cudahiya di navbera wan de? Zanibe ku li guherbarên global PHP ne şert e ku di nava function bê bikaranîn. Ev dikarin di file, ku di wê de di nav de bê bicîkirin.
Links û ewlehî
Wek ku hûn dibînin, di PHP biafirîne variable global ne pirsgirêk e. Lê belê, ti girêdana xizmekî taybetî heye? Erê, dibe ku di dema bikaranîna global be helwesta unexpected hene. Lê belê, berî ku, a hurnêrîneke kêm.
Di versiyona 4.2.0 dîrektîva by default register_globals ji ser-dewlet ji bo off guhertin. Ji bo piraniya bikarhêneran e, ev pir girîng e, lê ne badîhewa ye. Piştî ku hemû, ev rasterast ewlekariyê yên vê berhemê bi pêş ketiye. Heke hewceya we ji bo ku variable global, PHP-directive li ser vê parametre rasterast bandor ne. Lê, bikaranîna nenivîsandiye, ji xwe nikare ewlekariyê mînakî biafirîne.
Îcar, eger register_globals li xwe zivirî, li ber îdamê yên qanûna nivîskî meşandin, guherbarên cuda ku pêwîst in, ji bo nimûne bişîne IP-formên. Ji ber vê yekê, biryar hate girtin ku wê vemirînin.
Çima dewletê ji vê biryarnameyê li variable global php çiqas e deyndarê? Rastî ev e ku dema ku dewletê yên ji bo pêşdebiran ne her tim, bi rastî dibe ku pirsa ku ew ji ba xwe bibersivîne. Li aliyekî, hêsantir e ku code. Lê belê li aliyê din jî - ev jî rîska ewlekariyê ye. Ji ber vê yekê, ji bo nekevin çewtiyên, herweha welat tevlihevbûn û telîmata neçalakirin.
Niha em binêrin, ne / code bi ewle, her wiha çawa bi durustî bûyeran de ku daxuyanîya variable PHP global bi hewldanên ya înternetê bi Daneyên çûn. Ev ji bo afirandina ne bi tenê dikarî xweşik pêwîst e, lê her weha bi rêkûpêk malperên ku hûn ji pêşî kesê License de gavekê bi kar.
code mailên
Ka em ku variable rast ji bo yên ku bi destûra e:
Eger (authenticate_user ()) {
$ Authorize = true;
}
Eger ($ iznê) {
de "/highly/sensitive/data.php";
}
Di vê dewletê, variable nikare were danîn. Ji ber, ku welat bi hêsanî dikarin bên guhertin, û li çavkaniya eslê xwe neyê diyarkirin, hingê herkes dikare wisa test re derbas bibe û ji bo ku bên kesekî din. Ger tê xwestin, ku êrîşkar (an jî hema kesê meraqdar lê bêtecrube) dikare were dîtinê, mantiqa me.
Eger em bi nirxê ya bi telîmata biguhere, ev code rast bixebite wê, wek ku em pêwîst. Lê destpêkêyên ji guherbarên ne bi tenê deng û awazek baş di bernameyên e, di heman demê de jî ji me re dide garantiya hinek ji yên îstiqrara script.
Versiyon ji pêbawer yên qanûna
hûn dikarin xwe off yan kar û fermanên, an dermanan a code tevlihevtir bo bicihanîna vê armancê. Ji bo nimûne, wekî vê:
Eger (isset ($ _ Session jî ji [ 'username'])) {
echo "Hello {$ _ Session jî ji [ 'username']} b>";
} {Else
echo "Hello Mêvan b>
";
echo "user Bi xêr hatî!";
}
Make a têxî di vê rewşê de, li wir zehmet be. Lê dîsa jî - gengaz. Ji bo vê jî, divê hûn lênêrîna ku amûrên bersiva bi lez dabîn kirin bigire. Heke tu dixwazî de guherbarên global li PHP, tu amûrên jêr bi kar tînin: ger em nizanin çi cur bi nirxê bidestxistin e, mimkun e ji bo qeydkirina script ku venêrî ev bi maçeke. Bê guman, ev jî nayê wê parastina tam li dijî nirxên têxî misoger ne. Lê belê ji ber options pir girîng aloz dike.
Dibîne hewldanên ji bo sûretê
Bihêlin, em bibînin çawa hûn fêm berê hatiye nivîsîn. Di PHP guherbarên global di fonksiyona ku li berjêr bê dan wê, divê tu bi xwe îlan bike. Em dikarin bêjin ku ev cure spartekên li ser asîmîlasyonê yên teze dersê ye. Li vir code e:
Php
Eger (isset ($ _ cookie [ 'C_COOKIE'])) {
} Elseif (isset ($ _ GET [ 'C_COOKIE']) || isset ($ _ POST [ 'C_COOKIE'])) {
mail ( "administrarot@example.com", "Agehdarî, bi tîpê hewldana de hate şêlandin, dizî û ya înternetê bi daneya hate tomar kirin", _Server $ [ 'REMOTE_ADDR']);
echo "bû ewlehî şikestî heye an hewldana ji bo vê yekê ji Administrator xistin.";
exit;
} {Else
}
?>
Niha şiroveyan şikênandine. Hinekî jî C_COOKIE tê ji me re ji çavkaniyeke pêbawer. Ji bo bi temamî li gorî encam têr, em nirxê xwe kontrol bike û agahdar bike û birêveberê forumê de ji bo pirsgirêkên. Ger ev yek were, îdî tu çalakî û ne lazim to make. Tu xwedî fêm bikin, ku mirov neçalakirin directive register_globals nake, ji code te ewle ye. Ji ber vê yekê, ti variable ku script ji user, qebûl bike, divê ji bo nirxa ku çaverê tê kontrolkirin.
encamê de
Li vir, bi giştî, û tiştê ku divê hûn li ser guherbarên global ji bo bi serkeftî û bi ewlehî ji wan re bi kar tînin û di karê wan nas bikin. Bê guman, dibêje ku, garantiya full ku tu kes dê di bikaranîna wan de ne nikarin li wir - êrîşkarên bi heskirin û başkirina rêbazên û zanîna xwe. Ev ji ber vê yekê tê xwestin sînorekî ji maximum bikaranîna guherbarên global di code. Başe, tevn û design taybetmendiyên vê zimanê bernameyên dikarin vê armanca bicihanîna. Bextê te xweş bî
Similar articles
Trending Now