متغیرهای عمومی یا Global Variables در PHP

دسته : آموزش - برنامه نویسی - زبان PHP تاریخ انتشار :

PHP Global Variables – Superglobals

خوب تا الان هر جا در مورد متغیرها صحبت کردیم ، متغیرهای بودند که خودمون تعریف می کردیم و مقدار دهی می کردیم . در این آموز میخوایم متغیرهایی رو در موردشون صحبت کنیم که از قبل توسط خود PHP تعریف شدن .

به یاد چیزی نیفتادید ؟ فکر نکنم ! شخصا خودم یاد تابع هایی افتادم که از قبل در PHP تعریف شدن ، مثل تابع date که تاریخ رو نشون می ده . این متغیر های عمومی یه چیزی شبیه به هموناس که از قبل تعریف شدن .

خوب دوستان پس Global Variable متغیرهایی در PHP هستند که از قبل تعریف شده اند و در هرجایی از کدی که مینویسید میشه ازشون استفاده کرد .

 

انواع متغیرهای عمومی یا Global Variables در PHP

لیست متغیر های عمومی در PHP به شرح زیر هستش :

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

 

ضرب المثلی هست که میگه هر سخن جایی دارد و هر نکته مکانی ! یه جورایی این جا صدق می کنه . این متغیرها هر کدومشون یه استفاده ی مشخصی دارن و شاید اصلا هم به بعضی از این ها نیاز پیدا نکنید . این و میگن نه اینک الان دست کم بگیرید . اگه اینا رو بلد نباشید باهاشون کار کنید اصلا PHP معنایی نداره .

خوب در این آموزش همه این متغیر ها رو توضیح میدیم ولی از اونایی که مهم هستن شروع میکنیم ، بعضی هاشونم به مرور زمان به آموزش اضافه میکنیم ، پس عجله نکنید .

 

متغیر عمومی GET_$ و  POST_$

تا حالا تو اینترنت وقتی به سایت های مختلف سر می زنید ، حتما مشاهده کردید که برای بعضی کارها باید بک فرم HTML رو پر کنید . حالا این فرم میتونه ثبت نام در یک سایت باشه ، واردشدن به یک سایت باشه ، پر کردن یک فرم برای خرید یک کالای اینترنتی هست و …

وقتی دکمه ی ثبت  فرم رو میزنید چه اتفاقی میفته ؟

فرم های HTML با تگ <form> ساخته میشن و ما در نظر میگیریم شما کاملا با HTML آشنا هستید . خوب اگر متوجه شده باشین تگ <form> دارای یک attribute یا ویژگی به اسم method هستش ، که مقدار این attribute میتونه GET یا POST باشه .

این دو متغیر عمومی در PHP مقداری که بهشون اختصاص پیدا میکنه بر اساس همین فرم هایی هستش که شما در اینترنت روزانه باهاشون کار می کنید . خوب وقتی شما یک فرم رو ثبت میکنید جدا از اینکه با روش GET اونو فرستادید یا روش POST ، اطلاعاتی رو که در قسمت های مختلف فروم وارد کردید رو به یک صفحه ی PHP می فرسته .

اگر با روش GET اطلاعات فرستاده بشه ، در صفحه ی PHP شما با استفاده از متغیر عمومی GET_$ مقدارهایی رو که کاربر در فرم وارد کرده رو میگیرید و عملیاتی که قصد انجام آن را دارید انجام میدهید . و اگر فرم رو با روش POST بفرستید با استفاده از متغیر عمومی POST_$ داده های که کاربر در فرم وارد کرده رو میگیرید و عملیات مورد نظر رو روش انجام میدین .

 

یک مثال ساده که مطلب بیاد دستتون :

یک فرم در سایتتون طراحی میکنید که وقتی کاربر ایمیل و پسوورد رو در اون وارد کرد و دکمه ی ثبت رو زد ، اطلاعاتی که کاربر وارد کرده رو به یک صفحه ی PHP می فرسته ، سپس در صفحه ی PHP با استفاده از متغیر های عمومی GET و یا POST ایمیل و پسوورد وارد شده رو دریافت میکنه و اگر ایمیل و پسوورد درست بود و این کاربر یکی از اعضای سایت شما هست اون رو به پنل کاربری هدایت میکنه . خیلی ساده و شیک .

کار این دو متغیر مشابه هم هست پس تفاوت روش GET و POST در چه موردی هست ؟

در روش POST داده ها به صورت مخفی یا رمزنگاری شده به صفحه ی PHP فرستاده می شود اما در روش GET داده ها در آدرس بار مرورگر قابل مشاهده هست . پس توصیه میکنیم برای کارهای امنیتی از روش GET استفاده نکنید .

 

خوب نوبتی هم باشه ، نوبت مثال عملی هستش اونم همراه با ویدیو ، به مثال زیر دقت کنید . ابتدا روش GET :

دو تا فایل داریم ، یکی test.html و دیگری test.php  . روال کار به این صورته که مشخصات رو در فرمی که در فایل test.html هست وارد میکنیم و مقدار های وارد شده رو با استفاده از روش GET به فایل test.php می فرستیم و به کاربر نمایش می دهیم .

 

فایل test.html :

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test Get Method</title>
</head>

<body>
<center>
<form action="test.php" method="get">
	<p>
		<input type="text" name="email" >
	</p>
	<p>
		<input type="password" name="pass" >
	</p>
	<p>
		<input type="submit" value="login" >	
	</p>	
</form>
</center>
</body>
</html>

فایل test.php :

<?php

var_dump($_GET); 
echo '<br>' ;

echo $_GET['email'] ;

echo '<br>' ;

echo $_GET['pass'] ;

?>

روش POST نیز در ویدیوی زیر توضیح داده شده . و میتوانید تفاوت رو به صورت تصویری ببینید .

خوب تفاوت POST و GET رو هم در ویدیوی بالا مشاهده کردید .



نظرات ، پیشنهادات و درخواست های خود را از طریق فرم زیر با ما در میان بگذارید .