PHP je globalna varijabla u funkciji. Napravite globalnu varijablu u PHP-u

Da biste stvorili punopravno mjesto koje ima široku funkcionalnost, morate znati puno o tome. No, ono što mu daje pravi jedinstvenost jest PHP. Globalna varijabla u ovom programskom jeziku se ne koristi vrlo često, ali ponekad je potrebno znati kako to funkcionira. Proučavanjem onoga što je i kako to funkcionira, istražit ćemo ovaj članak.

djelokrug

globalna varijabla phpOvo je kontekst u kojem je definirana varijabla. U većini slučajeva imaju samo jedan opseg. Kada se u globalnim varijablama PHP učitaju iz drugih datoteka, onda se u njima mogu uključiti (uključiti) i zahtijevati (zahtijevaju).

Prema zadanim postavkama ograničeni su lokalnim opsegom funkcije. A kako želite da se varijabla vidi po datotekama izvan njezinih granica i može li se koristiti i njima? Za to PHP također pruža globalnu varijablu.

Ključna riječ "globalna"

php globalne varijableAli kako izjaviti globalnu PHP varijablu? U postizanju ovog cilja, riječ "globalna" će nam pomoći. Morate ga postaviti prije varijable koju želite učiniti globalnim (na primjer, globalnom "Variable").

Nakon provedbe takve upute, svaka datoteka može raditi s podacima. Ako negdje postoje reference na ovu varijablu, program će uvijek obratiti pažnju na globalnu verziju.

Zašto tako čudno formuliranje? Činjenica je da istodobno s tim mogu postojati lokalne verzije. Ali oni će biti dostupni samo u onim datotekama u kojima su proglašeni. A za sve ostale, globalne varijable klase PHP će raditi. Zato morate biti oprezni. I tako da nema sumnje, ovdje je primjer kako izgledaju: globalno.

Jer ako jedna datoteka ima pristup nekoliko varijabli, to će ih dovesti do sukoba. Ali ovdje se ne može točno reći - čitat će se lokalna ili globalna varijabla ili će doći do pogreške. Dakle, ako je pisano unutar funkcije, onda ne bi trebalo biti nikakvih problema. No upotreba varijable izvan granica bit će problematična. Stoga je neophodno pažljivo pratiti strukturu izrade programskog koda i osigurati da nigdje ne postoji preduvjet za nastanak sukoba.

Još jedna opcija za snimanje

izjavljuje globalnu varijablu phpMogu li stvoriti globalnu varijablu u PHP-u na drugi način? Da, a ni jedan. Najprije pogledajmo $ GLOBALS. Ovo je asocijativni niz. Ključ u njemu je ime. Vrijednost je sadržaj globalne varijable. Treba napomenuti da ovaj niz nakon deklaracije postoji u bilo kojem opsegu. To daje razlog za uzeti u obzir superglobal. Izgleda ovako: $ GLOBALS [`Variable`].

Unaprijed definirani / superglobali

Na svakom programskom jeziku postoje neka imena koja se dodjeljuju za svoje pojedinačne funkcije. Stoga ne možete kreirati globalne varijable u PHP s istim nazivom.

U ovom programskom jeziku postoje posebne značajke. Dakle, važno je da unaprijed definirane varijable ovdje nemaju "super" postavku, tj. Nisu dostupne na svim mjestima. Kako mogu to popraviti? Da bi unaprijed definirana varijabla bila dostupna na nekom lokalnom području, ona mora biti deklarirana kako slijedi: globalna "varijabla". Čini se da je to isto što je prethodno rečeno, zar ne? Istina, ali ne stvarno. Pogledajmo primjer "borbe":

  • globalni $ HTTP_POST_VARS;
  • echo $ HTTP_POST_VARS [`ime`].

Osjećate li razliku među njima? Napominjemo da se u PHP-u globalna varijabla ne mora upotrebljavati unutar neke funkcije. Općenito se može nalaziti u datoteci koja je uključena u nju.

Veze i sigurnost napraviti globalnu php varijablu

Kao što vidite, u PHP-u stvaranje globalne varijable nije problem. Ali postoje li neke značajke veza? Da, može doći do neočekivanog ponašanja prilikom upotrebe globalnog. Ali prije toga malo pozadine.

U inačici 4.2.0, direktorija register_globals promijenila se prema zadanim postavkama od isključivanja do uključivanja. Za većinu korisnika to nije jako važno, ali uzalud. Uostalom, to izravno utječe na sigurnost proizvoda koji se razvija. Ako trebate napraviti globalnu varijablu, direktorija PHP o ovom parametru neće izravno utjecati na nju. Ali netočna upotreba već može stvoriti presedane za sigurnost.

Dakle, ako je uključen register_globals, prije izvršavanja pisanog koda, iniciraju se različite varijable koje su nužne, primjerice, za slanje HTML obrazaca. Stoga je odlučeno da ga isključi.



Zašto je stanje ove direktive u php globalnoj varijabli zbog mnogih? Činjenica je da kada je država uključena, programeri nisu uvijek u stanju samostalno odgovoriti na pitanje odakle je došlo. S jedne strane olakšalo je pisanje koda. No, s druge strane - to je stvorilo sigurnosnu prijetnju. Stoga je onemogućeno izbjegavanje pogrešaka, kao i miješanje podataka i direktiva.

I sada pogledajmo kod koji nije siguran i kako otkriti slučajeve kada deklaracija globalne varijable PHP prati pokušaje zamjene podataka. To je neophodno kako bi se stvorile ne samo lijepe, već i stabilne radne stranice koje ne ispuštaju prvu osobu koja dolazi preko.

Opasni kod

php globalne varijable u funkciji

Utvrdimo da je varijabla istinita za one koji su ovlašteni:

ako (authenticate_user ()) {
$ authorize = true-
}

ako ($ ovlasti) {
uključuju "/ highly / sensitive / data.php"
}

U ovom stanju, varijabla se može automatski postaviti. S obzirom na to da se podaci jednostavno mogu zamijeniti, a izvor njihova podrijetla nije uspostavljen, svaka osoba može proći takvu provjeru i lažno predstavljati nekog drugog. Ako želite, napadač (ili samo znatiželjna, ali neiskusna osoba) može kršiti logiku skripte.

Ako promijenite vrijednost direktive, ovaj kôd može ispravno funkcionirati, kao što nam je potrebno. Ali inicijalizacija varijabli nije samo dobar ton u programiranju, već nam daje i neka jamstva stabilnosti skripte.

Pouzdana verzija koda

Da biste postigli ovaj cilj, možete isključiti rad direktive ili registrirati složeniji kod. Na primjer, ovdje je ovo:

ako (isset ($ _ SESSION [`korisničko ime`]))) {

odjek "Pozdrav {$ _SESSION [`korisničko ime`]}„-

} else {

odjek "Pozdrav gost
„-
echo "Pozdrav, korisnik!" -

}

Napraviti izmjenu u ovom slučaju, bit će teško. Ali ipak - moguće. Da biste to učinili, morate se pobrinuti da brzo alati odgovor su dobili. Ako želite uključiti globalne varijable u PHP-u, možete koristiti sljedeće alate: ako znamo što je raspon je dobivena vrijednost, moguće je registrirati skriptu za provjeru ovo sa utakmice. Naravno, to također ne jamči potpunu zaštitu od zamjenskih vrijednosti. Ali to je previše opcija znatno kompliciraju.

Pronalazi pokušaj zamjene

proglašenje globalne varijable php

Provjerimo kako ste shvatili ono što ste ranije pisali. U PHP globalnim varijablama u funkciji, koja će biti navedena u nastavku, morat ćete se prijaviti. Može se reći da je to na neki način zadaća domaće zadaće za svladavanje teme lekcije. Evo koda:

ako (isset ($ _ COOKIE [`C_COOKIE`])) {
($ _ GET [`C_COOKIE`]) || isset ($ _ POST [`C_COOKIE`])) {

pošte ( „[email protected]”, „Pažnja, skripta je zabilježen pokušaj podaci sjeckanje i podvala”, $ _SERVER [ „REMOTE_ADDR”]) -
echo "Sigurnost je ugrožena ili je to pokušavala." Administrator je obavijestio "-
exit-

} else {
}
?>

I sada objašnjenje za to. Varijabla C_COOKIE dolazi nam iz pouzdanog izvora. Da bismo u potpunosti potvrdili očekivani rezultat, provjeravamo njegovu vrijednost i, u slučaju problema, obavijestite administratora o tome. Ako ništa ne dođe, ne treba poduzimati nikakve radnje. Treba shvatiti da jednostavno onemogućavanje direktive register_globals ne čini vaš kôd sigurnim. Stoga, svaka varijabla koju skriptu primi od korisnika mora se provjeriti za očekivanu vrijednost.

zaključak

php stvoriti globalnu varijablu

To, općenito, i sve što je potrebno znati o globalnim varijablama, kako bi ih uspješno i sigurno koristilo u njihovim aktivnostima. Naravno, reći da postoji punopravno jamstvo da ga nitko ne može koristiti - krekeri stalno poboljšavaju svoje metode i vještine. Stoga je poželjno ograničiti uporabu globalnih varijabli u kôd do maksimuma. Srećom, struktura i značajke konstrukcije ovog programskog jezika mogu postići taj cilj. Sretno!

Dijelite na društvenim mrežama:

Povezan
Polje. Elementi polja. Zbroj elemenata polja, brojPolje. Elementi polja. Zbroj elemenata polja, broj
Kako pisati u php datotekuKako pisati u php datoteku
Kako očistiti predmemoriju u Mozilla i što je to?Kako očistiti predmemoriju u Mozilla i što je to?
Programiranje: Java. Vrste podatakaProgramiranje: Java. Vrste podataka
Beskrajno za (Java) petljuBeskrajno za (Java) petlju
jаvascript Array za pohranu neograničenog broja varijablijаvascript Array za pohranu neograničenog broja varijabli
Python programski jezik: petljePython programski jezik: petlje
String operater u Pascalovom nizuString operater u Pascalovom nizu
Varijabla u programiranju u potpunosti je obilježena time što?Varijabla u programiranju u potpunosti je obilježena time što?
Objavi SQL: opis. Transact-SQLObjavi SQL: opis. Transact-SQL
» » PHP je globalna varijabla u funkciji. Napravite globalnu varijablu u PHP-u
LiveInternet