КомпјутериСофтвер

ПХП глобална променљива у функцији. Направи глобалну променљиву у ПХП

Да бисте направили цео сајт, који има широку функционалност која вам је потребна да знају пуно. Али шта може да га заиста јединствена - то је ПХП. Глобална променљива у програмском језику се не користи често, али понекад се зна како се то ради, понекад је потребно. То је студија о томе шта је то и како то ради, ми ћемо урадити у овом чланку.

обим

Тако назвати контекст у којем је променљива и утврђује. У већини случајева, они имају само један опсег. Када ПХП глобалне променљиве лоадед из других фајлова, онда то може бити инклузивна (инцлуде) и потребан (захтева).

По дефаулту, они су ограничени на локалном функције обиму. И како да променљивих видети фајлове у својим границама, што би могло више и коришћење? У том циљу, а дат је у ПХП глобалних променљивих.

Кључна реч "глобално"

А ево како се прогласи глобална променљива у ПХП? У остваривању тог циља ће нам помоћи реч "глобално". Потребно је поставити испред променљиве које желите да глобални (наример, глобална «променљива").

Након реализације таквог индикација, подаци ће бити у могућности да раде са било које датотеке. Ако негде има референце на ове варијабле, програм ће увек обратити пажњу на глобалном верзији.

Зашто тако чудан језик? Чињеница да је у исто време може бити локална верзија. Али, они ће бити доступан ексклузивно за тим фајловима где најавили. И за све остале ће деловати глобалне променљиве ПХП класу. Зато морате бити опрезни. И да није било сумње, ово је пример како изгледају: Глобал А.

Јер ако ће један фајл има приступ великом броју варијабли, што ће довести до тога да у сукобу. Али не можемо рећи са сигурношћу - локални или глобални променљива се чита или потпуно не. Дакле, ако је да се региструјете у функцији, то би требало да буде проблема. Али употреба варијабле за њеним границама да буде проблематично. Због тога, структура израде кодекса неопходне да пажљиво прати и уверите се да нигде није било ни предуслов за поменутог сукоба дошло.

Следећа варијанта снимка

Да ли је могуће у ПХП да створе глобалну променљиву на други начин? Да, ни један. Прво, хајде да размотримо $ ГЛОБАЛС. Ово је асоцијативни низ. Кључ за њега - је име. Као вредност садржаја делује као глобална променљива. Треба напоменути да је низ након објављивања постоји у било ком обиму. Ово даје разлога да се верује суперглобалних. Изгледа тако: $ ГЛОБАЛС [ 'променљива'].

Предефинисани / Суперглобалс

У сваком програмском језику постоје имена која су Цхартеред за неке од његових функција. Стога, да створи у ПХП глобалних променљивих истог имена неће радити.

Овај програмски језик има своје карактеристике. Дакле, важно је да се претходно дефинисаних варијабли овде не инсталирате "супер", то јест, они нису доступни на свим локацијама. Како могу то поправити? На унапред дефинисане варијабле био доступан на неком локалном подручју, мора бити проглашена на следећи начин :. Глобал «Вариабле" Чини се да је исти као и пре рекао, зар не? То је истина, али не сасвим. Хајде да погледамо већ "бори" пример:

  • Глобална $ ХТТП_ПОСТ_ВАРС;
  • ецхо $ ХТТП_ПОСТ_ВАРС [ 'наме'].

Осећате разлику између њих? Имајте на уму да у ПХП глобалних променљивих не мора да се користи у функцији. Чак се може ставити у фајлу који је укључен у њега.

Линкови и безбедност

Као што се види, у ПХП креира глобална променљива није проблем. Али да ли постоји неки одређени релативне везе? Да, може бити неочекивано понашање када се користи глобално. Али пре тога, мало БацкСтори.

У верзији 4.2.0 директива по дефаулт регистер_глобалс променио од на-државе офф. За већину корисника, ово није врло важно, али узалуд. На крају крајева, то директно утиче на сигурност развијеног производа. Ако је потребно да се променљива глобална, ПХП директива о овом параметру није директно утиче. Међутим, неправилна употреба може већ створити преседан сигурност.

Дакле, ако су регистер_глобалс укључен, пре него што је извршење писаног кода иницијализован различите варијабле које су потребне, на пример за слање ХТМЛ-форме. Због тога је одлучено да га искључите.

Зашто је држава ове директиве у ПХП глобалне променљиве дугује много? Чињеница је да када то држава од девелопера није увек са сигурношћу може да се одговори на питање одакле је дошао. С једне стране, то је лакше писати код. Али с друге стране - то је безбедносни ризик. Стога, да бисте избегли грешке, као и податке мешања и директива је онемогућена.

Сада погледајмо не / сецуре цоде, као и како открити случајеве у којима је најава глобалне ПХП варијабле прати покушаје манипулација са подацима. Ово је неопходно да би се створили не само лепа, али и стално радити сајтове који не разбити први слободан особу.

злонамерни код

Идемо сет је променљива важи и за оне који су овлашћени:

иф (аутхентицате_усер ()) {
$ ОВЛАШЋУЈЕМ = истина;
}

ако ($ овластити) {
инцлуде "/хигхли/сенситиве/дата.пхп";
}

У овом стању, променљива може да се аутоматски подешава. С обзиром да подаци једноставно бити замењен, а извор њиховог поријекла није постављена, онда свако може да прође такав тест и претварати да сам неко други. Уколико се жели, нападач (или само радознао али неискусна особа) може бити умањена, нашу логику.

Ако променимо вредност директиве, овај број ће исправно радити, као што је потребно. Али иницијализација променљивих није само добар тон у програмирању, али и даје нам одређену гаранцију стабилности сценарија.

Поуздано верзија кодекса

можете искључити или раде директиве, или прописати сложенији код за постизање овог циља. На пример, овако:

ако (! иссет ($ _СЕССИОН [усернаме])) {

ецхо "Хелло <б> {$ _ СЕССИОН [ 'усернаме']} ";

} Елсе {

ехо "Здраво <Б> гост <бр />";
ецхо "Велцоме корисника!";

}

Изврши принудну измену у овом случају, биће тешко. Али ипак - могуће. Да бисте то урадили, мора се водити рачуна да су дане брзе алат одговора. Ако желите да укључите глобалне променљиве у ПХП-у, можете да користите следеће алате: ако знамо шта је распон је вредност добијена, могуће је да се региструјете сценарио да провери са утакмице. Наравно, то такође не гарантује потпуну заштиту од супституције вредности. Али то је превише опције значајно компликује.

Сматра покушаје да Маскуераде

Да видимо како сте разумели раније написао. У ПХП глобалне променљиве у функцији који ће бити дати у наставку, потребно је да се изјасни. Можемо рећи да је то нека врста домаћег задатка на асимилацији лекцију теме. Овде је код:

ако (! иссет ($ _ ЦООКИЕ [ 'Ц_ЦООКИЕ'])) {
} Елсеиф (иссет ($ _ ГЕТ [ 'Ц_ЦООКИЕ']) || иссет ($ _ ПОСТ [ 'Ц_ЦООКИЕ'])) {

пошта ( "администрарот@екампле.цом", "Пажња, сценарио је забележен покушај провале и манипулисање подацима", $ _ СЕРВЕР [ 'РЕМОТЕ_АДДР']);
ецхо "Постојао је сломљена безбедност или покушати да учини обавестио администратора.";
излаз;

} Елсе {
}
?>

Сада објашњење њу. Делимично Ц_ЦООКИЕ нам долази из поузданог извора. Да бисте у потпуности задовољни према очекиваних резултата, проверавамо своју вредност и да обавестите администратора у случају проблема. Ако не дође, онда ниједна акција и није потребно да направите. Морате да схватите да једноставно онемогућава регистер_глобалс директива не би ваш код сигуран. Стога, било која променљива која добија скрипту од корисника, треба проверити за очекиване вредности.

закључак

Овде, у принципу, и све што треба да знате о глобалних променљивих да их успешно и безбедно користе у свом раду. Наравно, рећи да постоји пуна гаранција да нико неће користити их не могу - нападачи су стално унапређује своје методе и вештине. Због тога је пожељно да се ограничи максимално коришћење глобалних променљивих у коду. Срећом, структуру и карактеристике дизајна овог програмског језика могу да постигну тај циљ. Срећно!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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