آموزش PHP 7 : متغیر های گلوبال – سوپرگلوبال ها

0

آموزش PHP 7

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

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

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

متغیر های سوپرگلوبال در PHP عبارتند از :

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

آشنایی با $GLOBALS در PHP

متغیر $GLOBALS یک متغیر سوپرگلوبال است. از این متغیر جهت دسترسی به متغیر های سراسری در هر جایی از کد (حتی از داخل متد ها و توابع) استفاده میکنیم. PHP همه متغیر ها را در آرایه ای با عنوان $GLOBALS[index] نگهداری میکند که index دربرگیرنده نام متغیر است.
در مثال زیر نحوه استفاده از متغیر سوپرگلوبال $GLOBALS را مشاهده میکنید :

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

متغیر $_SERVER در PHP

متغیر $_SERVER یک متغیر سوپرگلوبال است که اطلاعاتی از قبیل header ها، path ها و مسیر های اسکریپت ها را در خود نگهداری میکند. در مثال زیر نحوه دسترسی به برخی از عناصر موجود در این متغیر را مشاهده میکنید :

در زیر لیست برخی از پر اهمیت ترین عناصر موجود در متغیر $_SERVER را مشاهده میکنید :

عناصر/کدشرح
$_SERVER[‘PHP_SELF’]نام فایل اسکریپت در حال اجرا را باز میگرداند
$_SERVER[‘GATEWAY_INTERFACE’]ورژن CGI سرور را باز میگرداند
$_SERVER[‘SERVER_ADDR’]آدرس IP سرور میزبان را بر میگرداند
$_SERVER[‘SERVER_NAME’]هاست نیم میزبان را بر میگرداند
$_SERVER[‘SERVER_SOFTWARE’]رشته شناسایی سرور را باز میگرداند. مثلا Apache/2.2.24
$_SERVER[‘SERVER_PROTOCOL’]نام و ورژن پروتکل اطلاعاتی را باز میگرداند. مثلا HTTP/1.1
$_SERVER[‘REQUEST_METHOD’]شیوه درخواست استفاده شده جهت دسترسی به صفحه را باز میگرداند. مثلا POST
$_SERVER[‘REQUEST_TIME’]تایم استمپ آغاز درخواست را باز میگرداند. مثلا 1377687496
$_SERVER[‘QUERY_STRING’]اگر صفحه با استفاده از رشته کوئری مورد درخواست قرار گرفته باشد، این رشته را باز میگرداند
$_SERVER[‘HTTP_ACCEPT’]مقدار Accept header درخواست فعلی را باز میگرداند
$_SERVER[‘HTTP_ACCEPT_CHARSET’]سربرگ Accept_Charset درخواست فعلی را باز میگرداند. مثلا utf-8,ISO-8859-1
$_SERVER[‘HTTP_HOST’]سربرگ Host درخواست فعلی را باز میگرداند
$_SERVER[‘HTTP_REFERER’]URL کامل صفحه ارجاع دهنده به صفحه فعلی را بر میگرداند. (به این جهت که توسط همه user-agent ها پشتیبانی نمیشود، قابل اتکا نیست)
$_SERVER[‘HTTPS’]مشخص میکند که اسکریپت از طریق پروتکل امن بارگذاری شده است
$_SERVER[‘REMOTE_ADDR’]آدرس IP ای که کاربر از طریق آن در حال مشاهده صفحه فعلی است را نمایش میدهد
$_SERVER[‘REMOTE_HOST’]هاست نیمی که از طریق آن کاربر در حال مشاهده صفحه فعلی است را نمایش میدهد
$_SERVER[‘REMOTE_PORT’]پورتی که روی دیوایس کاربر جهت اتصال به وب سرور استفاده شده است را نمایش میدهد
$_SERVER[‘SCRIPT_FILENAME’]مسیر مطلق اسکریپت فعلی در حال اجرا را نمایش میدهد
$_SERVER[‘SERVER_ADMIN’]مقدار تعریف شده به عنوان SERVER_ADMIN در وب سرور را به نمایش در می آورد. مثلا someone@someaddress.com
$_SERVER[‘SERVER_PORT’]پورتی که روی سرور جهت برقراری ارتباط مورد استفاده قرار گرفته است را نشان میدهد. مثلا 80
$_SERVER[‘SERVER_SIGNATURE’]مقادیر مربوط به ورژن سرور و هاست نیم را باز میگرداند
$_SERVER[‘PATH_TRANSLATED’]مسیر اسکریپت فعلی را بر مبنای فایل سیستم بر میگرداند
$_SERVER[‘SCRIPT_NAME’]مسیر اسکریپت فعلی را بر میگرداند
$_SERVER[‘SCRIPT_URI’]URI صفحه فعلی را بر میگرداند

متغیر $_REQUEST در PHP

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

متغیر $_POST در PHP

متغیر $_POST را میتوانید جهت جمع آوری اطلاعات فرم های HTML که از method="post" در آنها بهره گرفته شده باشد، مورد استفاده قرار دهید. از $_POST برای پاس دادن متغیر ها نیز استفاده میکنیم.
در مثال زیر، یک فرم با فرم ورودی و دکمه ارسال در اختیار داریم. وقتی کاربر با کلیک روی دکمه submit اطلاعات فرم را ارسال کند، اطلاعات فرم به فایلی که در بخش action تگ form مشخص شده ارسال میشود. در اینجا ما از خود فایل جهت پردازش اطلاعات فرم استفاده کرده ایم اما همانطور که قبلا هم گفته شد، در صورتی که میخواهید اطلاعات را در فایل دیگری پردازش کنید میتوانید مقدار action را بر اساس نیاز خود تغییر دهید. در ادامه اطلاعات جمع آوری شده از فیلد ورودی را با استفاده از متغیر سوپرگلوبال $_POST مورد دسترسی قرار داده ایم :

متغیر $_GET در PHP

متغیر $_GET را نیز میتوانید جهت جمع آوری اطلاعات فرم های HTML که از method="get" در آنها بهره گرفته شده باشد، مورد استفاده قرار دهید. کاربرد دیگر $_GET جمع آوری مقادیر متغیر ها از URL است.
فرض کنید یک صفحه اچ تی ام ال با محتوای زیر در اختیار داشته باشیم :

صفحه بالا حاوی یک لینک با عنوان Click to Test GET است. هرگاه کاربر روی این لین کلیک کند، اطلاعات متغیر های درج شده در آدرس یعنی subject و website به صفحه test_get.php ارسال خواهند شد و ما میتوانیم با استفاده از $_GET به مقادیر این متغیر ها در فایل test_get.php دسترسی داشته باشید. حالا کافی است فایلی با نام test_get.php ایجاد کنید و کد زیر را در آن قرار دهید :

خروجی کد بالا Learn php at mrcode.ir خواهد بود. در ادامه در مباحث مربوط به پردازش فرم ها، در رابطه با متغیر های $_GET و $_POST بیشتر صحبت خواهیم کرد.

مطالعه بخش بعدی : پردازش فرم ها در PHP

دسترسی آسان به این مطلب لینک کوتاه :
QR Code For:  آموزش PHP 7 : متغیر های گلوبال – سوپرگلوبال ها

شاید از اینها هم خوشتان بیاید!

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.