KomputerSoftware

PHP variabel global dina fungsina. Jieun variabel global dina PHP

Pikeun nyieun situs pinuh, nu boga pungsi lega nu peryogi kauninga pisan. Tapi naon bisa nyieun manehna sabenerna unik - éta PHP. Variabel global dina basa programming teu dipake pisan sering, tapi kadang uninga kumaha gawéna, sakapeung perlu. Nu ngarupakeun ulikan ngeunaan naon éta katut cara gawéna, urang bade ngalakukeun dina artikel ieu.

wengkuan

Jadi nelepon kontéks nu variabel sarta ditangtukeun. Dina kalolobaan kasus, maranéhna kudu ngan hiji wengkuan. Nalika PHP variabel global sarat ti file sejenna, mangka bisa jadi inklusif (ngawengku) jeung diperlukeun (merlukeun).

Sacara standar, aranjeunna dugi ka ruang lingkup fungsi lokal. Kumaha cara na sangkan variabel katempo file dina wates na, anu bisa leuwih na make? Ka tungtung ieu, sarta geus disadiakeun dina variabel global PHP.

keyword nu "global"

Sarta di dieu nyaeta kumaha carana dibewarakeun variabel global nepi PHP? Dina achieving Tujuanana ieu bakal mantuan kami kecap "global". Ieu diperlukeun pikeun nempatkeun di hareup variabel nu Anjeun hoyong ngadamel global (narimer, global «Variable The").

Sanggeus palaksanaan indikasi misalna, data bakal tiasa dianggo kalayan file nanaon. Lamun wae aya rujukan pikeun variabel ieu, program bakal salawasna nengetan dina versi global.

Naha misalna basa aneh? kanyataan yen dina waktos anu sareng meureun aya versi lokal. Tapi maranéhna bakal sadia sacara éksklusif pikeun maranéhanana file mana ngumumkeun. Jeung sadayana sésana bakal meta variabel global kelas PHP. Kituna Anjeun kudu ati. Na yén aya mamang teu, di dieu Kang conto kumaha aranjeunna kasampak kawas: a global.

Kusabab lamun salah file kudu aksés ka jumlah variabel, éta bakal ngabalukarkeun ka konflik. Tapi urang teu bisa nyebutkeun pasti - lokal atawa global variabel anu maca atawa sakabehna gagal. Ku kituna, lamun geus kana ngadaptar di fungsi hiji, kudu aya masalah. Tapi pamakéan variabel pikeun watesna janten masalah. Ku alatan éta, struktur drafting tina kode perlu raket ngawas sarta pastikeun yén nowhere téh aya malah hiji prerequisite kana konflik ceuk jengkar.

perwujudan sejen tina rekaman nu

Éta mungkin di PHP keur nyieun variabel global dina cara sejen? Sumuhun, malah salah moal. Heula, hayu urang mikirkeun $ GLOBALS. Ieu hiji Asép Sunandar Sunarya associative. Konci pikeun eta - nya ngaran. Salaku nilai tina eusi tindakan minangka variabel global. Ieu kudu dicatet yén Asép Sunandar Sunarya sanggeus pengumuman nu aya dina wengkuan nanaon. Hal ieu méré alesan ka yakin eta superglobal. Sigana kitu: $ GLOBALS [ 'variabel'].

Siap pake / superglobals

Dina unggal basa programming aya sababaraha ngaran nu Chartered keur sababaraha fungsi na. Ku alatan éta, mun nyieun di PHP variabel global tina ngaran anu sarua moal jalan.

basa programming ieu ciri sorangan. Ku kituna, hal anu penting anu variabel siap pake didieu teu masang "super", maksudna, aranjeunna henteu sadia di sakabeh lokasi. Kumaha carana abdi tiasa ngalereskeun eta? Pikeun variabel siap pake éta disadiakeun dina sababaraha area lokal, eta kudu dinyatakeun kieu :. Global «Variable" Ieu sigana sarua saméméh ngawartoskeun, katuhu? Memang bener, tapi teu patos. Cikan nempo acan "pajoang" conto:

  • global $ HTTP_POST_VARS;
  • bahana $ HTTP_POST_VARS [ 'ngaran'].

Aran beda antara aranjeunna? Catet yén dina variabel global PHP teu merta kudu dipaké dina fungsina. Bisa malah ditempatkeun dina file anu kaasup di jerona.

Tumbu jeung kaamanan

Sakumaha anjeun tiasa tingali, dina PHP nyieun variabel global teu masalah. Tapi nyaeta aya Tumbu relatif tinangtu? Sumuhun, meureun aya kabiasaan kaduga mun maké global. Tapi saméméh éta, hiji backstory saeutik.

Dina versi 4.2.0 dina diréktif ku register_globals standar robah ti dina kaayaan keur pareum. Kanggo sabagéan ageung pamaké, ieu teu pohara penting, tapi hawa. Barina ogé, éta langsung mangaruhan kaamanan tina produk maju. Lamun perlu nyieun variabel global, PHP-diréktif dina parameter ieu moal langsung kapangaruhan. Sanajan kitu, pamakéan lepat geus bisa nyieun kaamanan precedents.

Ku kituna lamun register_globals dihurungkeun, méméh dijalankeunnana kodeu ditulis initialized variabel nu béda nu diperlukeun, contona pikeun ngirim HTML-bentuk. Ku sabab eta ieu mutuskeun pikeun mareumanana.

Naha mangrupa kaayaan diréktif ieu variabel global php owes teuing? nyatana yen nalika kaayaan pamekar ulah sok jeung katangtuan bisa sorangan ngajawab sual dimana eta sumping tina. Di hiji sisi, leuwih gampang pikeun nulis sandi. Tapi di sisi sejen - eta mangrupakeun résiko kaamanan. Kituna, pikeun nyingkahan kasalahan, kitu ogé data Pergaulan jeung diréktif geus ditumpurkeun.

Ayeuna hayu urang néangan teu / kode aman, kitu ogé kumaha carana ngadeteksi kasus dimana pengumuman tina variabel PHP global ieu dipirig ku usaha di tampering kalawan data. Ieu diperlukeun guna nyieun teu ukur geulis, tapi ogé steadily situs nu teu rengat baé heula sadia berpungsi.

kode jahat

Hayu urang diatur variable nu bener pikeun maranéhanana anu geus otorisasi:

lamun (authenticate_user ()) {
$ Authorize = leres;
}

lamun ($ authorize) {
kaasup "/highly/sensitive/data.php";
}

Dina kaayaan kieu, variabel bisa diatur otomatis. Tempo yén data bisa saukur diganti, sarta sumber asalna maranéhanana henteu diatur, teras saha bisa lulus ujian sapertos sarta pretend janten batur. Upami hoyong, nu lawan (atawa ngan panasaran tapi inexperienced jalma) bisa jadi impaired, logika urang.

Mun urang ngaganti nilai diréktif dina, kode ieu bakal dianggo neuleu, sakumaha urang diperlukeun. Tapi initialization variabel teu ukur sunda alus di programming, tapi oge mere kami jaminan tangtu kuatna naskah.

Vérsi dipercaya kode nu

Anjeun tiasa mareuman atanapi directives dianggo, atawa nulis resep kode leuwih kompleks pikeun ngahontal tujuan ieu. Contona, saperti kieu:

lamun (isset ($ _ Sidang [ 'landihan'])) {

bahana "Hello {$ _ Sidang [ 'landihan']} ";

} Nabi {

bahana "Hello Tamu
";
bahana "Wilujeng sumping pamaké!";

}

Ngadamel substitusi dina hal ieu, aya bakal hésé. Tapi masih - mungkin. Jang ngalampahkeun ieu, anjeun kudu ngurus yén parabot respon gancang anu disadiakeun. Lamun hayang kaasup variabel global dina PHP, anjeun tiasa nganggo parabot handap: lamun urang terang naon rentang nyaeta nilai diala, kasebut nyaéta dimungkinkeun pikeun ngadaptar a Aksara mariksa kieu jeung cocok. Tangtu, eta oge teu ngajamin panyalindungan pinuh ngalawan nilai substitusi. Tapi éta teuing pilihan nyata ngahesekeun.

Manggih usaha pikeun masquerade

Hayu urang tingali kumaha anjeun ngartos ditulis samemehna. Dina PHP variabel global dina fungsi anu bakal dibikeun handap, anjeun bakal kedah dibewarakeun diri. Urang bisa nyebutkeun yen ieu téh jenis pagawean di imah dina asimilasi ti topik palajaran. Di dieu nyaeta kode:

lamun (isset ($ _ cookie [ 'C_COOKIE'])) {
} Elseif (isset ($ _ meunang [ 'C_COOKIE']) || isset ($ _ POST [ 'C_COOKIE'])) {

mail ( "administrarot@example.com", "Perhatosan, naskah kacatet usaha di papalingan na tampering kalawan data", $ _SERVER [ 'REMOTE_ADDR']);
bahana "Aya hiji kaamanan rusak atawa nyobian bet kitu dibéjakeun Administrator dina".;
kaluar;

} Nabi {
}
?>

Ayeuna mah kieu thereto. Sabagean C_COOKIE datang ka kami ti sumber nu bisa dipercaya. Pikeun pinuh wareg nurutkeun hasil ekspektasi, urang parios nilaina na ngabéjaan pangurus bisi masalah. Lamun teu datang, lajeng aya aksi sarta henteu perlu nyieun. Anjeun kudu ngarti yén saukur nganonaktipkeun diréktif register_globals henteu nyieun kode anjeun aman. Ku alatan éta, sagala variable nu narima naskah ti pamaké, kudu dipariksa keur nilai ekspektasi.

kacindekan

Di dieu, sacara umum, sarta sagalana nu peryogi kauninga ngeunaan variabel global kana hasil na aman make eta dina karya maranéhanana. Tangtu, disebutkeun yen aya jaminan pinuh mana teu saurang ogé bakal ngagunakeun éta teu tiasa - lawan terus ngaronjatkeun métode jeung kaahlian maranéhna. Éta kituna desirable mun ngawatesan pamakéan maksimum variabel global dina kode teh. Untungna, struktur jeung desain fitur tina basa programming ieu bisa ngahontal éta tujuan ieu. Good tuah!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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