آموزش مقدماتی PHP – قسمت چهاردهم(سوپر گلوبال)
سلام
با چهاردهیمن قسمت از آموزش مقدماتی PHP در خدمتتون هستیم، تا به اینجای کار مباحث مختلفی رو گفتیم و با php نسبتا آشنا شدیم حال در این بخش میخوایم بپردازیم به یک مبحث جالب و کاربردی که در برنامه هایی(اسکریپت ها) که مینویسید میتونید ازش استفاده کنید، در ادامه همراه بپرسم باشید.
آموزش:
Super Globals چیست؟
در PHP یک سری متغیرهای سراسری داریم که در همه جای برنامه قابل استفاده هستند، این متغیرها را کافی بود یک بار تعریف کنیم تا در همه جای برنامه بهش دسترسی داشته باشیم، که آموزش متغیرها را مشاهده کنید.
یک سری متغیرهای سراسری هم داریم که از قبل تعریف شده هستند و نیازی به تعریف مجدد ما نیست که به این نوع متغیرها superglobals گفته میشود که در هر بخش از برنامه میتونیم بهشون دسترسی داشته باشیم(نظیر داخل توایع، کلاس ها یا هر فایلی).
این متغیرها عبارتند از:
- GLOBALS_$
- SERVER_$
- REQUEST_$
- POST_$
- GET_$
- FILES_$
- ENV_$
- COOKIE_$
- SESSION_$
در این قسمت فقط به معرفی برخی از SuperGlobals ها می پردازیم که در قسمت های بعدی مابقی متغیرها گفته میشود.
متغیر GLOBALS$ در PHP
توسط متغیر GLOBALS$ میتوانیم متغیر را سراسری تعریف کنیم تا در همه جای برنامه بتونیم ازش استفاده کنیم.
برای اینکه یک متغیر را به صورت GLOBALS$ تعریف کنیم؛ بدین شکل عمل میکنیم:
۱ |
$GLOBALS['beporsam'] |
در تکه کد بالا متغیری به نام beporsam را به صورت سراسری تعریف کردیم؛ حال در هر جا از برنامه که خواستیم از متغیر استفاده کنیم، کافیست متغیر beporsam$ را صدا بزنیم.
مثال: در مثال زیر نحوه استفاده از متغیر GLOBALS$ را می بینید:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ |
<?php $num1 = ۲۰; $num2 = ۶۰; function addition() { $GLOBALS['result'] = $GLOBALS['num1'] + $GLOBALS['num2']; } addition(); echo $result; ?> |
در قطعه کد بالا دو متغیر num1,num2 تعریف و دو مقدار را داخلش ذخیره کردیم، سپس تابع addition را ایجاد و جمع حاصل از دو عدد را درون متغیر سراسری(GLOBALS$) ذخیره و بیرون از تابع به متغیر داخل تابع دسترسی پیدا کردیم و نتیجه را چاپ کردیم.
متغیر SERVER_$ در PHP
متغیر SERVER_$ اطلاعات عنوان ها، مسیر و محل دستور ها را در خود نگه میدارد، قطعه کد زیر را اجرا کنید:
۱ |
var_dump($_SERVER); |
اگر قطعه کد بالا را اجرا میکنید، مشاهده میکنید که اطلاعات در قالب یک ارایه نمایش داده میشود.، که به هر خانه از آرایه میتوانید دسترسی داشته باشید.
در قطعه کد زیر برخی از عناصیر متغیر SERVER_$ را چاپ کردیم:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ |
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?> |
در جدول زیر تمامی عناصر متغیر SERVER_$ به همراه توضیحات آورده شده است.
عنصر |
توضیحات |
[‘PHP_SELF’]SERVER_$ |
نام اسکریپت در حال اجرا را باز می گرداند |
[‘GATEWAY_INTERFACE’]SERVER_$ |
نسخه Gateway Interface که که سرور استفاده میکند را بر میگرداند |
[‘SERVER_ADDR’]SERVER_$ |
آدرس IP سرور میزبان را برمی گرداند |
[‘SERVER_NAME’]SERVER_$ |
نام سرور میزبان را برمیگرداند (مانند www.beporsam.ir) |
[‘SERVER_SOFTWARE’]SERVER_$ |
رشته شناسایی سرور (مانند آپاچی / ۲.۲.۲۴) را برمیگرداند |
[‘SERVER_PROTOCOL’]SERVER_$ |
نام و نسخه پروتکل اطلاعات (مانند HTTP / 1.1) را برمی گرداند |
[‘REQUEST_METHOD’]SERVER_$ |
روش درخواستی که برای دسترسی به صفحه (مانند POST) استفاده می شود را برمی گرداند |
[‘REQUEST_TIME‘]SERVER_$ |
نشانگر زمان شروع درخواست را برمی گرداند (مانند ۱۳۷۷۶۸۷۴۹۶) |
[‘QUERY_STRING’]SERVER_$ |
رشته پرس و جو را بر میگرداند |
[‘HTTP_ACCEPT’]SERVER_$ |
درخواست کننده هدر را بر میگرداند |
[‘HTTP_ACCEPT_CHARSET’]SERVER_$ |
بازگردانی Accept_Charset |
[‘HTTP_HOST’]SERVER_$ |
هدر میزبان را از درخواست فعلی باز می گرداند |
[‘HTTP_REFERER’]SERVER_$ |
آدرس کامل صفحه ی فعلی را نشان می دهد |
[‘HTTPS’]SERVER_$ |
این این صفحه از پروتکل HTTPS استفاده میکند |
[‘REMOTE_ADDR’]SERVER_$ |
آدرس IP کاربر را بر میگرداند |
[‘REMOTE_HOST’]SERVER_$ |
نام میزبان هاست را بر می گرداند |
[‘REMOTE_PORT’]SERVER_$ |
پورت مورد استفاده در دستگاه کاربر برای برقراری ارتباط با سرور وب را باز می گرداند |
[‘SCRIPT_FILENAME’]SERVER_$ |
مسیر اسکریپت در حال اجرا را باز میگرداند |
[‘SERVER_ADMIN’]SERVER_$ |
مقدار داده شده به دستورالعمل SERVER_ADMIN در پرونده پیکربندی وب سرور (اگر اسکریپت شما بر روی یک میزبان مجازی اجرا شود، مقدار آن برای این میزبان مجازی تعریف می شود) را بر می گرداند |
[‘SERVER_PORT’]SERVER_$ |
پورت سرور ار بر میگرداند |
[‘SERVER_SIGNATURE’]SERVER_$ |
نسخه سرور و نام میزبان مجازی را که به صفحات تولید شده سرور اضافه می شوند، بازمی گرداند |
[‘PATH_TRANSLATED’]SERVER_$ |
مسیر مبتنی بر فایل سیستم به اسکریپت فعلی را بازگرداند |
[‘SCRIPT_NAME’]SERVER_$ |
مسیر اسکریپت فعلی را بازگرداند |
[‘SCRIPT_URI’]SERVER_$ |
آدرس صفحه فعلی را برمی گرداند |
متغیر REQUEST_$ در PHP
از متغیر REQUEST_$ برای دریافت داده های ارسالی از فرم ها استفاده میشود که در این متغیر داده ها ذخیره میشوند.
مثال زیر یک فرم حاوی یک فیلد برای دریافت اطلاعات و یک دکمه برای ثبت فرم هست، هنگامی که کاربر روی دکمه Submit کلیک میکند، فرم با متد Post ارسال میشود و میتوانیم با کمک متغیر POST_$ این اطلاعات را دریافت و نمایش دهیم.
چون داده های فرم داخل متغیر $_REQUSET ذخیره می شوند بنابراین می توانیم برای دسترسی به داده های فرم به این متغیر رجوع کنیم.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ |
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit" value="submit"> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { // collect value of input field $name = $_REQUEST['fname']; if (empty($name)) { echo "Name is empty"; } else { echo $name; } } ?> </body> </html> |
متغیر POST_$ در PHP
از POST_$ برای دریافت و ارسال اطلاعات از فرم، زمانی که متد ارسال اطلاعات فرم post باشد، اطلاعات را میتوانیم با متغیر POST_$ دریافت و در برنامه ازش استفاده کنیم.
مثال زیر یک فرم حاوی یک فیلد برای دریافت اطلاعات و یک دکمه برای ثبت فرم هست، هنگامی که کاربر روی دکمه Submit کلیک میکند، فرم با متد Post ارسال میشود و میتوانیم با کمک متغیر POST_$ این اطلاعات را دریافت و نمایش دهیم.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ |
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit" value="Submit"> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { // collect value of input field $name = $_POST['fname']; if (empty($name)) { echo "Name is empty"; } else { echo $name; } } ?> </body> </html> |
متغیر GET_$ در PHP
از GET_$ برای دریافت و ارسال اطلاعات از فرم، زمانی که متد ارسال اطلاعات فرم get باشد، اطلاعات را میتوانیم با متغیر GET_$ دریافت و در برنامه ازش استفاده کنیم.
زمانی که فرمی را با متد get ارسال میکنیم، داده های فرم در متغیر GET_$ ذخیره میشوند، همچینن زمانی که اطلاعات فرم ارسال میشود، داده های ارسالی در URL نیز قابل مشاهده هستند.
فرض کنید یک صفحه HTML داریم که حاوی لینک زیر است:
۱ ۲ ۳ ۴ ۵ ۶ ۷ |
<html> <body> <a href="test_get.php?subject=PHP&web=beporsam.ir">Test $GET</a> </body> </html> |
در تکه کد بالا در تگ ahref دو پارامتر subject و web داریم که به صفحه test_get.php ارسال میشود، زمانی که روی Test $GET کلیک شود داده های ارسالی در متغیر GET_$ ذخیره میشود و در صفحه tset_get.php با استفاده از کد زیر میتوانیم داده های ارسالی را نمایش دهیم:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ |
<html> <body> <?php echo "Study " . $_GET['subject'] . " at " . $_GET['web']; ?> </body> </html> |
این قسمت از آموزش نیز به پایان رسید، همراه ما باشید با دیگر آموزش ها …
موفق باشید
ارسال نظر
شما باید وارد شوید یا عضو شوید تا بتوانید نظر ارسال کنید