متغیرهای گلوبال PHP – سوپرگلوبال ها

سوپر گلوبال ها از نسخه 4.1.0 PHP معرفی شدند و به عنوان متغیرهای سرخود در PHP تعریف شده و همیشه در تمامی حوزه های دسترسی به متغیر می توان به آنها دسترسی داشت.

متغیرهای گلوبال PHP – سوپر گلوبال ها

چندین متغیر از پیش تعریف شده در PHP وجود دارد که سوپرگلوبال (Superglobals) هستند، بدین معنی که همیشه و از همه جا، صرفنظر از حوزه تعریف آنها در دسترس هستند و می توانید از داخل تابع، کلاس یا فایل بدون هیچ کار خاصی به آنها دسترسی داشته باشید.

متغیرهای سوپر گلوبال PHP عبارتند از:
  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

در این مقاله تعدادی از این متغیرها بحث می شوند و مابقی آنها در مطالب بعدی بحث خواهند شد.

متغیر سوپر گلوبال GLOBALS$ در PHP

GLOBALS$ یکی از سوپر گلوبال های PHP است که برای دسترسی به متغیرهای گلوبال یا عمومی از هر جایی در اسکریپت PHP (و همچنین داخل توابع یا متدها) استفاده می شود.

تمامی متغیرهای عمومی PHP در یک آرایه بنام [GLOBALS [index$ ذخیره می شوند. ایندکس نام متغیرها را نگه می دارد. مثال زیر طریقه استفاده از متغیر سوپر گلوبال GLOBALS$ را نشان می دهد:

متغیر سوپر گلوبال $GLOBALS

در مثال بالا، از آنجایی که z متغیری است که در آرایه GLOBALS$ حضور دارد، از خارج تابع نیز قابل دسترسی است!

متغیر سوپرگلوبال PHP $_SERVER

SERVER_$ یک متغیر سوپر گلوبال PHP است که اطلاعات مربوط به هدرها، مسیرها و محل قرارگیری اسکریپت را در خود ذخیره می کند. در مثال زیر نشان می دهد که چگونه از عناصر موجود در SERVER_$ استفاده کنیم:

متغیر سوپرگلوبال PHP $_SERVER

در جدول زیر مهمترین عناصری که در می توان در SERVER_$ ذخیره کرد، لیست شده است:

عنصر / کد شرح
نام فایل اسکریپتی که در حال اجرا است را بر می گرداند $_SERVER['PHP_SELF']
نسخه (CGI) مورد استفاده سرور را بر می گرداند $_SERVER['GATEWAY_INTERFACE']
آدرس IP سرور میزبان را بر می گرداند $_SERVER['SERVER_ADDR']
نام هاست سرور را بر می گرداند (از قبیل: https://parastar.info/) $_SERVER['SERVER_NAME']
رشته شناسایی سرور را بر می گرداند (از قبیل: Apache/2.2.24) $_SERVER['SERVER_SOFTWARE']
نام و نسخه پروتکل اطلاعات را بر می گرداند (برای نمونه: HTTP/1.1) $_SERVER['SERVER_PROTOCOL']
متد درخواست مورد استفاده برای دسترسی به صفحه را بر می گرداند (از قبیل متد POST) $_SERVER['REQUEST_METHOD']
تایم استمپ شروع درخواست را بر می گرداند (برای مثال 1377687496) $_SERVER['REQUEST_TIME']
رشته کوئری را بر می گرداند اگر دسترسی به صفحه از طریق رشته کوئری (query string) باشد. $_SERVER['QUERY_STRING']
هدر پذیرش درخواست جاری را بر می گرداند $_SERVER['HTTP_ACCEPT']
هدر مجموعه کارکتر پذیرش (Accept_Charset) درخواست جاری را بر می گرداند (برای مثال utf-8,ISO-8859-1) $_SERVER['HTTP_ACCEPT_CHARSET']
هدر هاست درخواست جاری را بر می گرداند $_SERVER['HTTP_HOST']
آدرس URL کامل صفحه جاری را بر می گرداند (معتبر نیست زیرا همه عوامل کاربر از آن پشتیبانی نمی کنند) $_SERVER['HTTP_REFERER']
آیا اسکریپت از طریق پروتوکل HTTP ایمن کوئری می شود $_SERVER['HTTPS']
آدرس آی پی جایی که کاربر مشغول مشاهده صفحه جاری است را بر می گرداند $_SERVER['REMOTE_ADDR']
نام میزبان جایی که کاربر از آن صفحه جاری را مشاهده می کند را بر می گرداند $_SERVER['REMOTE_HOST']
پورت مورد استفاده در ماشین کاربر که با وب سرور صفحه در ارتباط است را بر می گرداند. $_SERVER['REMOTE_PORT']
نام مسیر قطعی اسکریپت در حال اجرا را بر می گرداند. $_SERVER['SCRIPT_FILENAME']
مقدار داده شده به دایرکتیو SERVER_ADMIN در فایل تنظیمات سرور را بر می گرداند (اگر اسکریپت شما در حال اجرا بر هاست مجازی باشد، این مقداری خواهد بود که برای هاست مجازی تعریف شده است (از قبیل me[at]parastar.info) $_SERVER['SERVER_ADMIN']
پورت مورد استفاده ماشین سرور که وب سرور برای ارتباط استفاده می کند (مثل پورت 80) را بر می گرداند. $_SERVER['SERVER_PORT']
نسخه سرور و نام هاست مجازی که به صفحات تولید شده توسط سرور اضافه می شود را بر می گرداند. $_SERVER['SERVER_SIGNATURE']
فایل سیستمی که مسیر اسکریپت جاری را بر می گرداند $_SERVER['PATH_TRANSLATED']
مسیر اسکریپت جاری را بر می گرداند $_SERVER['SCRIPT_NAME']
URI صفحه جاری را بر می گرداند $_SERVER['SCRIPT_URI']

متغیر سوپرگلوبال REQUEST_$

متغیر سوپرگلوبال REQUEST_$ در PHP برای جمع آوری داده ها پس از ارسال فرم HTML استفاده می شود.

در مثال زیر فرمی با یک فیلد ورودی و یک دکمه ارسال (سابمیت) نمایش داده می شود. وقتی کاربر با کلیک دکمه ارسال داده ها را ارسال می کند، داده های فرم به فایل خاصی ارسال می شود که در خصیصه action تگ form مشخص شده است. در این مثال، ما به خود این فایل برای پردازش داده های فرم اشاره می کنیم. اگر می خواهید از فایل PHP دیگری برای پردازش اطلاعات فرم استفاده کنید، آن را با نام فایل انتخابی خود تعویض کنید. سپس می توانیم از متغیر سوپرگلوبال REQUEST_$ برای جمع آوری مقدار وارد شده در فیلد استفاده کنیم:

متغیر سوپرگلوبال $_REQUEST در PHP

حاصل اجرای کد فوق به شکل زیر است. وقتی کلمه parastar.info را به عنوان نام وارد فیلد کرده و دکمه submit را می زنیم، اسم را بررسی و در زیر فرم نمایش می دهد:

متغیر سوپرگلوبال $_REQUEST در PHP

متغیر سوپر گلوبال $_POST

متغیر سوپر گلوبال POST_$ در PHP به طور وسیعی برای جمع آوری داده ها پس از سابمیت شدن فرم HTML با متد پست ("method="post) استفاده می شود. متغیر POST>_$ همچنین به طور وسیعی برای ارجاع متغیر استفاده می شود.

در مثال زیر فرمی با یک فیلد ورودی و یک دکمه سابمیت نشان داده می شود. وقتی کاربر با زدن دکمه سابمیت داده ها را ارسال می کند، داده های فرم به فایل مشخص شده در خصیصه action فرم ارسال می شود. در این مثال به خود فرم برای پردازش داده های فرم اشاره شده است. اگر بخواهید از فایل PHP مجزا برای پردازش اطلاعات فرم استفاده کنید، کافی است نام فایل خود را در خصیصه action قرار دهید. سپس ما از متغیر سوپر گلوبال POST_$ برای جمع آوری داده های فرم استفاده کرده ایم:

متغیر سوپر گلوبال $_POST در PHP

خروجی این کد نیز همانند مثال قبلی است.

متغیر سوپر گلوبال GET_$

متغیر سوپر گلوبال GET_$ در PHP نیز برای جمع آوری داده های سابمیت شده از فرم HTML استفاده می شود که با متد "method="get ارسال شده باشد.

متغیر سوپر گلوبال GET_$ می تواند داده های ارسال شده در URL صفحه را نیز جمع آوری و دریافت کند.

فرض کنید یک صفحه HTML داریم که حاوی یک هیپرلینک با پارامترهای زیر است: 

تست سوپرگلوبال

زمانی که کاربر روی لینک Test $GET کلیک می کند، پارامترهای "subject" و "web" به فایل "test_get.php " ارسال می شوند و شما می توانید در فایل "test_get.php" با استفاده از متغیر GET_$ به مقادیر این پارامترها دسترسی داشته باشید.

در مثال زیر کد فایل test_get.php نشان داده شده است:

متغیر سوپر گلوبال $_GET در PHP

عضویت در خبرنامه پلکسا

در صورت تمایل ایمیل خود را وارد کنید و تازه های پلکسا را از طریق ایمیل دریافت کنید. خبرنامه الکسا هفته نامه بوده و حاوی جدیدترین مطالب و نشریات پلکسا است.

قابل توجه وبمسترها

وبمستر گرامی

در صورتی که به دنبال جذب بازدید کننده یا ارتقای رنکینگ سایت خود هستید، پیشنهاد می کنیم پلکسا را یک پست یا مطلب مهمان کنید. همانطور که برای سایت خود مطلب می نویسید، مطلب خود را آماده و کد نویسی کرده و در پلکسا منتشر کنید. پلکسا هیچگونه دخل یا تصرفی در پست شما نخواهد داشت.

سئوالات، نظرات، پیشنهادات و مطالب خود را با ما و کاربران پلکسا در میان بگذارید - انجمن پلکسا