کمپیوټرونهساوتري

پی ایچ پی په یو فعالیت کې یو نړیوال متغیر دی. په PHP کې نړیوال متغیر کړئ

د بشپړ ساحه جوړولو لپاره چې پراخې فعالیت لري، تاسو اړتیا لرئ چې د هغې په اړه ډیر څه پوه شئ. مګر دا څه شی کولی شي اصلي انفرادي پی ایچ پی وي. په دې پروګرام کې یو نړیوال متغیر شتون نه کارول کیږي، مګر کله ناکله اړینه ده چې پوه شي چې دا څنګه کار کوي. د هغه څه مطالعه کول چې دا دي او څنګه کار کوي، موږ به پدې مقاله کې وګورو.

ساحه

دا د هغه نوم نوم دی چې په هغه کې متغیر تعریف شوی. په ډیری مواردو کې، دوی یوازې یو اندازه لري. کله چې په PHP کې Global Variables د نورو فایلونو څخه ډک شوي، نو پدې کې دوی کې شامل دي (شامل) او اړین دي (اړتیا لري).

د ډیزاین په اساس، دوی د فعالیت محلي ساحې پورې محدود دي. او تاسو غواړئ چې متغیر د خپلو سرحدونو څخه بهر د فایلونو لخوا ولیدل شي، او ایا دوی هم کارول کیدی شي؟ د دې لپاره، پی ایچ پی هم یو نړیوال متغیر چمتو کوي.

کلیدي کلمه "نړیوال"

مګر د نړیوال پی ایچ پی متغیر څنګه اعالن کول؟ د دې هدف په ترلاسه کولو کې، "نړیوال" کلمه زموږ سره مرسته کوي. تاسو اړتیا لرئ مخکې له دې چې متغیر چې تاسو غواړئ د متغیر کولو وړ وي (د مثال په توګه، نړیوال "متغیر").

د دې لارښوونې پلي کولو وروسته، هر ډول فایل کولی شي د معلوماتو سره کار وکړي. که چیرې په کوم ځای کې د دې متغیر ته اشاره وشي نو بیا به دا پروګرام د نړیوال نسخو لپاره پام وکړي.

ولې داسې عجيب جوړښت؟ حقیقت دا دی چې په یوځای سره پدې کې ممکن محلي نسخه وي. مګر دوی به یوازې په هغه فايلونو کې موجود وي چیرې چې دوی اعالن شوي. او د هر چا لپاره، د PHP پیسو نړیوال متغیرات به کار وکړي. له همدې کبله تاسو باید محتاط وساتئ. او د دې لپاره چې شک نشته، دا یو مثال دی چې څنګه دوی ګوري: نړیوال.

ځکه چې که یو فایل ډیری متغیرونو ته لاسرسی ولري نو دا به دوی د شخړو سبب شي. مګر دلته یو څوک نه شي ویلای - یو ځایی یا نړیوال متغیر به لوستل شي، یا یو غلطی را منځ ته شي. نو، که چیرې دا په یوه فعالیت کې لیکل شوی وي نو بیا باید ستونزې شتون ونلري. مګر د خپلو سرحدونو څخه بهر متغیر کارول به ستونزمن وي. نو له همدې امله، د پروګرام د کوډ تالیف جوړښت نږدې نږدې څارنه ضروري ده او ډاډ ترلاسه کړئ چې د جګړې لپاره پیدا شوي ځایونه دلته نشته.

د ثبت کولو بله بله لاره

ایا دا ممکنه ده چې په پی ایچ پی کې یو بل بدلون په یو بل ډول جوړ کړئ؟ هو، او آن هم نه. لومړی، راځئ چې ګالبوال وګورو. دا یو ملګري سرلیک دی. دا کیلي نوم دی. ارزښت د نړیوال متغیر منځپانګې دی. دا باید په پام کې ونیول شي چې دا اعلامیه په هره ساحه کې شتون لري. دا شرایط په پام کې نیسي چې دا د superglobal په اړه غور وکړي. داسې ښکاري لکه: $ ګلوبلونه ['متغیر'].

پیشنهاد شوی / سپرګلوبالونه

په هر پروګرام کولو ژبه کې، داسې نومونه شتون لري چې د انفرادي دندو لپاره چارټ شوي دي. نو ځکه، تاسو په PHP کې د نړیوال متغیرات د ورته نوم سره نشو جوړولی.

په دې پروګرام کې د ځانګړي ځانګړتیاوې شتون لري. نو، دا مهمه ده چې د وړاندیز شوی متغیرونو شتون "سپر" ترتیبات نلري، دا دی چې په ټولو ځایونو کې شتون نلري. څنګه کولی شم دا حل کړم؟ په ځینو ځایي سیمو کې د وړاندیز شوی متغیر شتون لپاره، دا باید په لاندې ډول اعلان شي: Global "Variable". داسې ښکاري لکه څنګه چې مخکې ویل شوي، سمه ده؟ ریښتیا، مګر واقعا نه. راځئ چې "د جګړې" مثال وګورئ:

  • نړیوال $ HTTP_POST_VARS؛
  • $ HTTP_POST_VARS ['نوم'] وټاکئ.

ایا تاسو د دوی تر مینځ توپیر احساس کوئ؟ په یاد ولرئ چې په PHP کې، یو نړیوال متغیر ته اړتیا نشته چې په فعالیت کې وکارول شي. دا کولی شي په هغه فایل کې واقع شي چې په هغې کې شامل دي.

اړیکې او امنیت

لکه څنګه چې تاسو کولی شئ، په PHP کې، یو نړیوال متغیر رامنځته کول کومه ستونزه نه ده. مګر د اړیکو په اړه کوم ځانګړتیاوې شتون لري؟ هو، د نړیوال کارولو په وخت کې غیر متوقع چلند شتون کیدی شي. مګر د دې څخه لږ لږ پس منظر.

4.2.0 په نسخه کې، د راجستر_ ګلوبال لارښوونه د افتتاح په واسطه له بند څخه بدله شوې. د ډیری کاروونکو لپاره، دا ډیره مهمه نده، خو په بډایه کې. په هرصورت، دا مستقیم د محصول مصؤنیت اغیزمن کوي چې تولید شوي. که تاسو اړتیا لرئ یو نړیوال متغیر کړئ، د دې پیرود په اړه د پی ایچ پی لارښوونه به په مستقیمه توګه اغیز ونلري. مګر ناسم کارول کیدای شي د امنیت لپاره مخکینۍ بڼه چمتو کړي.

نو، که راجستر_ګوبلونه وي، د لیکلو کوډ اجرا کولو څخه دمخه، مختلف متغیرات پېل کیږي، کوم چې ضروري وي، د مثال په توګه، د HTML فورمو لیږلو لپاره. له همدې کبله، پریکړه وشوه چې دا بدل شي.

ولې د ډیرو خلکو له کبله په php کې د دې لارښود حالت نړیوال بدلون ته اړتیا لري؟ حقیقت دا دی چې کله دولت پرانیزي، پراختیاییونکي تل د دې توان نلري چې په خپلواکه توګه د هغه پوښتنې ځواب ته وګرځي چې له کوم ځای څخه راځي. په یوه الس کې، دا د اسانه کولو کود اسانه کړ. مګر بل بل - دا یو امنیتي ګواښ رامینځته کړی. له دې کبله، د غلطو پیښو څخه مخنیوی، او همدارنګه د معلوماتو راټولول او لارښود معیوب وو.

او اوس اجازه راکړو چې په غیر محفوظه کوډ کې وګورو، او همدارنګه د پیښو معلومولو څرنګوالی څنګه چې د پی ایچ پی نړیوال متغیر اعلان د ارقامو د ضایع کولو هڅو سره مل دی. دا اړینه ده چې نه یوازې ښکلي، بلکه د باثباته کاري ساحې جوړېدو لپاره چې لومړني کس چې په ټوله کې راټیټوي نه کوي.

خطرناک کود

راځئ چې دا معلومه کړو چې متغیر د هغو کسانو لپاره چې ریښتیا وي دقیق دي:

که (authenticate_user ()) {
$ Authorize = رښتیا؛
}

که ($ مجازات) {
"/ دقیقه حساسه / ډاټا.php" شامل کړئ
}

په دې حالت کې، متغیر کیدای شي په اتومات ډول ترتیب شي. د دې په پام کې نیولو سره چې په ساده ډول بدلیدلی شي، او د دوی اصلي سرچینه نه وي رامنځ ته شوې، نو هرڅوک کولی شي دا ډول چک وګوري او د بل چا بدله کړي. که وغواړي، حمله کوونکي (یا یوازې یو ښکلي، خو بې تجربه کس) کیدی شي د سکرېکا منطق څخه سرغړونه وکړي.

که تاسو د لارښوونې ارزښت بدل کړئ، نو دا کوډ کولی شي سم سم کار وکړي، لکه څنګه چې موږ اړتیا لرو. مګر د متغیراتو ابتکار نه یوازې په پروګرام کولو کې یو ښه سر دی، بلکې موږ د سکریپټ د ثبات تضمین راکوي.

د کوډ قوي نسخه

د دې موخې د لاسته راوړلو لپاره، تاسو کولی شئ یا د لارښود عملیات بند کړئ، یا د ډیرو پیچلو کوډ ثبت کړئ. د مثال په توګه، دلته دی:

که (جاري ($ _ SESSION ['کارن-نوم'])))) {

Echo "Hello {$ _ SESSION ['Username']}

} الیس {

غږ "هیلو میلمه
".
ګونګ "هیلو، کاروونکي!"؛

}

پدې حالت کې، دا به ستونزمن وي چې د بدیل بدیل شي. مګر بیا هم دا ممکنه ده. د دې کولو لپاره، باید پاملرنه وشي تر څو ډاډ ترلاسه شي چې د ځوابونو غبرګون وسایل چمتو شوي. که تاسو غواړئ په PHP کې Global Variables شامل کړئ، تاسو کولی شئ د لاندې وسیلو څخه کار واخلئ: که موږ پوهیږو هغه سلسله چې ارزښت یې ترلاسه شي، موږ کولی شو دا نوم ثبت کړو ترڅو سکریپټ یې دا د نقشه کولو کارولو سره معاینه کړي. البته، دا د ارزښتونو د بدیل په وړاندې هم بشپړ بشپړتیا تضمین نه کوي. مګر دلته د ممکنه انتخابونو لټون به په کلکه پیچلې وي.

د یوې بدیل بدیل موندنه

راځئ چې وګورئ چې څنګه پوه شو چې پخوا مو لیکلي. په PHP کې نړیوال متغیرات په کار کې، کوم چې لاندې وړاندې کیږي، تاسو به خپل ځان اعلان کړئ. دا ویل کیدی شي چې دا په ځینو طریقو کې د کور د دندې دنده ده چې د لوست موضوع زده کړي. دلته کوډ دی:

<؟ php
که (جاري ($ _ COOKIE ['C_COOKIE'])) {
} ایلسف (جاري ($ _ GET ['C_COOKIE']) || جاري کول ($ _ پوسټ ['C_COOKIE'])) {

برېښناليک ("adminarot@example.com"، "خبرداري، سکرېپټ د معلوماتو د لرې کولو او ځړولو هڅه ثبت کړه"، $ _SERVER ['REMOTE_ADDR'])؛
عینک "امنیت موافقه شوي یا هڅه کوي ترڅو دا کار وکړي." اداره کوونکی "خبر ورکړی.
وتنه؛

} الیس {
}
؟>

او اوس د دې توضیحاتو لپاره. متغیر C_COOKIE زموږ د باور وړ سرچینې څخه راځي. د بشپړې شوې پایلې تایید لپاره، موږ خپل ارزښت وګورئ او د ستونزو په صورت کې، د دې په اړه مدیر ته خبر ورکړئ. که هیڅ شی ندی راغلی، نو هیڅ اقدام باید ونه شی. دا باید پوه شي چې د راجستر_ ګلوبال الرښوونې غیر معلولیت کول ستاسو د کوډ خوندي نه دي. نو له دې امله، هر هغه متغیر چې لطفا یې د کاروونکي ترلاسه کوي باید د متوقع ارزښت لپاره وپلورل شي.

پایله

دا، په عمومی توګه، او هغه شیان چې د نړیوالو متغیرونو په اړه پوهیږي اړین دي، ترڅو په بریالیتوب سره د هغوی په فعالیتونو کې کار واخیستل شي. البته، دا ووایاست چې بشپړ تضمین شتون لري چې هیڅوک یې نشي کارولی - کریکونکي په دوامداره توګه د دوی د میتودونو او مهارتونو ښه والی دي. له همدې کبله، دا د پام وړ دی چې د نړیوال متغیراتو کارول په کوډ کې تر اعظمي حد پورې محدود کړي. له نېکه مرغه، د دې پروګرام کولو ودانۍ جوړولو جوړښت او ځانګړتیاوې کولی شي دا هدف ترلاسه کړي. ښه نیکمرغه!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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