ComputerenSoftware

PHP global Variabel an der Funktioun. Maachen eng global ofwiesselnd am PHP

Zu engem voll Site schafen, déi breet Funktionalitéit huet Dir musst vill wëssen. Mä wat kann him wierklech eenzegaarteg maachen - et PHP ass. Déi global ofwiesselnd am programméiere Sprooch net ganz oft benotzt gëtt, mä heiansdo wëssen, wéi et funktionéiert, heiansdo ass et néideg. Dat ass d'Etude vun wat ass et a wéi et funktionéiert, mir sinn elo an dësem Artikel ze maachen.

Ausmooss

Sou nennen Kader an deem d'Variabel an alles. Am meeschte Fäll, si hunn nëmmen eng Envergure. Wann PHP global Verännerlechen aus aner Fichieren iwwerlaascht sinn, da kann et inklusiv gin (och) an néideg (brauchen).

Par défaut, sinn si op d'lokal Funktioun Ëmfang limitéiert. A wéi eis gesinn Fichier'en am seng Grenze ze maachen, déi méi kéinten an benotzt? Fir dëst Enn, an ass an de PHP global Verännerlechen gëtt.

D'Schlësselwuert "global"

An hei ass, wéi eng global ofwiesselnd ze erklären fir PHP? An dësem Zil erreechen, gëtt eis d'Wuert "global" hëllefen. Et ass néideg erfollegräich ofwiesselnd ze Plaz dass Dir eng global (narimer, global «verännerleche") ze maachen wëllen.

No der Ëmsetzung vun esou eng Indikatioun, wäert d'Donnéeën gebass gin mat all Fichier ze schaffen. Wann iergendwou do Referenze fir dës Variabel sinn, wäert de Programm ëmmer Opmierksamkeet op d'global Versioun bezuelen.

Firwat sou eng komesch Sprooch? D'Tatsaach datt et an der selwechter Zäit kann lokal Versioune ginn. Mä si gëtt exklusiv fir déi Fichieren wou annoncéiert sinn ginn. An fir all de Rescht gëtt global Verännerlechen PHP Klass Akt. Dofir musst Dir virsiichteg sinn. An datt et keen Zweiwel war, hei ass e Beispill vun deem, wat se kucken wéi: global engem.

Well wann ee Fichier Zougang zu enger Zuel vu Verännerlechen hunn wäerten, ass et Ursaach hinnen ze Konflikt. Mä mir kënnen net soen, fir sécher - lokal oder global Variabel liesen ass oder ofzeschafen klappt. Also, wann et an engem Funktioun umellen ass, sollt et kee Problem ginn. Mee de Gebrauch vun engem Variabel fir seng Grenzen Problemstoffer ginn. Dofir, néierens d'Struktur vun der Ausschaffe vum Code néideg ze enk Iwwerwachung an sécher maachen, datt et och eng Viraussetzung fir d'sot Konflikt ausgebrach.

Aneren Ausdrock vun den Opnahmen

Ass et méiglech am PHP eng global Variabel an aner Manéier ze schafen? Jo, net souguer eent. Éischt, loosse d'$ GLOBALS betruecht. Dëst ass eng Associatioun, vill. De Schlëssel et - ass de Numm. Wéi de Wäert vun den Inhalter Akten als global ofwiesselnd. Et soll feststellen, dass der vill no der Ukënnegung vun all Ëmfang existéiert. Dëst gëtt Grond et superglobal ze gleewen. Et gesäit esou: $ GLOBALS [ "ofwiesselnd '].

Predefinéiert / superglobals

An all programméiere Sprooch do sinn e puer Nimm, déi fir e puer vun senge Funktiounen Expert sinn. Dofir, am PHP global Verännerlechen vum selwechten Numm ze schafen wäert net schaffen.

Dëst programméiere Sprooch huet seng eegen Charakteristiken. Also ass et wichteg, datt d'predefinéiert Verännerlechen hei sinn net "super" installéiert, dat heescht, si sinn an all Plazen net sinn. Wéi kann ech et gefléckt? Fir predefinéiert Verännerlechen um puer lokal Beräich sinn huet, muss et deklaréiert ginn wéi follegt :. Global «verännerleche" Et schéngt déi selwecht gin wéi virdrun gesot, richteg? Et ass richteg, mee net ganz. Loosst eis op schon "Kampf" e Beispill kucken:

  • global $ HTTP_POST_VARS;
  • ECHO $ HTTP_POST_VARS [ "Numm"].

Dir Iech den Ënnerscheed tëscht hinnen? Bedenkt datt global Verännerlechen am PHP net onbedéngt am Funktioun benotzt ginn muss. Et kann och an engem Fichier gesat ginn, datt an et mat abegraff ass.

Linken a Sécherheet

Wéi Dir gesitt kann, schafen am PHP eng global Variabel ass net e Problem ass. Mä ass et politëscher relativ Linken? Jo, do kann onerwaart gelooss ginn, wann global benotzt. Mä ier datt, e bësse besser.

An Versioun 4.2.0 der Direktiv vun Default register_globals geännert aus op-Staat ze ugefaangen. Fir déi Benotzer, ass dat net ganz wichteg, mä an ëmsoss. No all, schellt et direkt d'Sécherheet vun der entwéckelt Produit. Wann Dir d'Variabel global ze maachen mussen, PHP-Direktiv op dëser Parameter ass net direkt betraff. Allerdéngs kann Guichet benotzen schon Expertise Sécherheet schafen.

Also wann register_globals ass war op, virun der Ausféierung vun der schrëftlech Code de verschiddene Verännerlechen initialized déi néideg sinn, zum Beispill HTML-Formen ze schécken. Dofir, gouf et decidéiert se ze maachen ugefaangen.

Firwat ass de Staat vun dëser Direktiv am PHP global Variabel vill verdankt? D'Tatsaach ass, datt wann de Staat vun der Entwéckler net ëmmer mat Sécherheet konnt sech d'Fro vun Äntwert wou et koum aus. Op der engersäits, ass et méi einfach Code ze schreiwen. Mee wollt den Trainer - et ass eng Sécherheet Risiko. Dofir, fir Feeler ze verhënneren, wéi och Daten Vermëschung a Direktiv behënnert gouf.

Schwätze mer elo net / sécher Code kucken, wéi och wéi Fäll ze entdecken, wou d'Ukënnegung vun der global PHP ofwiesselnd duerch Versich am Film kënnt mat Daten begleet ass. Dat ass néideg, fir net nëmmen schéin ze schafen, mä och stänneg geschafft Siten déi net déi éischt sinn Persoun Kachzäit.

béiswëlleg Code

Loosst d'Formatioun déi Variabel fir déi richteg ass, déi autoriséiert goufen:

wann (authenticate_user ()) {
$ Autoriséiert = wouer;
}

wann ($ autoriséiert) {
och "/highly/sensitive/data.php";
}

An dësem Staat, kann d'Variabel automatësch gesaat gin. Que dass d'Donnéeë kann einfach ersat ginn, an d'Quell vun hirer Hierkonft net virbereet ass, da kann een esou en Test virum wech een aneren gin. Wann Wonsch de Stuerm (oder just virwëtzeg mee Struewele Persoun) Mee eis Logik leider gin.

Wa mir de Wäert vun der Direktiv änneren, wäert dëse Code richteg schaffen, wéi mir néideg. Mee initialization vu Verännerlechen ass net nëmmen eng gutt Tonalitéit an der programméiere, mä gëtt eis och eng gewësse Garantie vun der Stabilitéit vun der Schrëft.

Verléisslech Versioun vum Code

Dir kënnt Direktiven Tour ugefaangen oder schaffen, oder eng méi komplex Code prescribe dëst Zil ze erreechen. Zum Beispill, wéi dës:

wann (isset ($ _ Sëtzung [ "Benotzernumm"])) {

ECHO "Hallo {$ _ Sëtzung [" Benotzernumm "]} ";

} {Aanescht

ECHO "Hallo Guest
";
"Welcome Benotzer!" ECHO;

}

Maachen e Wiessel an dësem Fall, wäert et schwiereg ginn. Mä awer - méiglech. Fir dëst ze maachen, muss dir këmmert dass d'rapid Äntwert Handwierksgeschir gëtt waren. Wann Dir global Verännerlechen am PHP ze gehéieren wëllt, kënnt Dir déi folgend Tools benotzen: wa mer wëssen, wat an der Rei de Wäert kritt ass, ass et méiglech eng Schrëft ze aschreiwen dëst mat engem Match ze kontrolléieren. Natierlech, dat heescht garantéieren och net voll Schutz géint wéilt Wäerter. Mä datt d'zevill Optiounen vill komplizéiere.

Fënnt Versuch Uerdnung nees

Loosst d'gesinn wéi Dir virdrun schrëftlech verstoen. Am PHP global Verännerlechen an der Funktioun, déi ënnert entscheet ginn, braucht Dir Iech erklären. Mir kënne soen, dat ass eng Zort Hausaufgab iwwert d'Ziler vun der Lektioun Sujet. Hei ass den Code:

wann (isset ($ _ Cookie [ "C_COOKIE"])) {
} Elseif (isset ($ _ GET [ "C_COOKIE"]) || isset ($ _ POST [ "C_COOKIE"])) {

Mail ( "administrarot@example.com", "Opgepasst, huet sech d'Schrëft opgeholl Versuch Abroch a Film kënnt mat Daten", $ _SERVER [ "REMOTE_ADDR"]);
ECHO "Et engem gebrach Sécherheet oder Versuch war den Administrateur sou Autorisatioun ze maachen.";
Sortie;

} {Aanescht
}
?>

Elo Erklärung teg. Deelweis geet C_COOKIE fir eis aus engem zouverlässeg Quell. Ze voll zefridden no der erwaart Resultat, kucken mer sengem Wäert an der Administrateur am Fall vu Problemer matdeelen. Wann et net kommen heescht, dann a keen Aktioun huet musst net maachen. Dir hutt dat einfach Desaktivéiere register_globals Direktiv ze verstoen net Äre Code maachen sécher ass. Dofir, all Variabel datt eng Schrëft vun de Benotzer kritt, soll fir de erwaart Wäert iwwerpréift ginn.

Konklusioun

Hei, am Allgemengen, an alles braucht Dir iwwert d'global Verännerlechen wëssen erfollegräich bis an Fluchtweeër hinnen an hirer Aarbecht benotzen. hinnen kann natierlech, ze soen, datt et eng voll Garantie ass, datt keen benotzt gëtt net - Ugräifer sinn hir Methoden a Fäegkeeten ëmmer verbesseren. Et ass also wënschenswäert déi maximal Notzung vun global Verännerlechen an de Code ze limitéieren. Glécklecherweis, kann d'Struktur an Design Charakteristike vun dëser programméiere Sprooch dëst Zil erreechen. Vill Gléck!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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