متغیرهای فوق سراسری Superglobals در Php

حامد محمدیحامد محمدی
139 بازدید
آموزش متغیرهای فوق سراسری در php

متغیرهای فوق سراسری Superglobals برای اولین بار در نسخه ۴.۱.۰ از php معرفی شدند.

این متغیرها ، از متغیرهای درونی این زبان هستند. و در تمام بخش های برنامه نویسی ، در اختیار و در دسترس برنامه نویسان هستند.

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

در آموزش امروز، قصد داریم فراتر رفته و درباره متغیرهای فوق سراسری یا Superglobals صحبت کنیم.

همراه پرنیان باشید.

با سلام خدمت همراهان همیشگی سایت پرنیان طرح

متغیرهای فوق سراسری Superglobals برای اولین بار در نسخه ۴.۱.۰ از php معرفی شدند.

این متغیرها ، از متغیرهای درونی این زبان هستند. و در تمام بخش های برنامه نویسی ، در اختیار و در دسترس برنامه نویسان هستند.

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

در آموزش امروز، قصد داریم فراتر رفته و درباره متغیرهای فوق سراسری یا Superglobals صحبت کنیم.

همراه پرنیان باشید.

متغیرهای فوق سراسری SuperGlobals

چندین متغیر از پیش تعریف شده در Php، از نوع فوق سراسری هستند.

این جمله به این معنی است که آنها، -صرف نظر از دامنه- همیشه در دسترس هستند.

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

 

متغیر های فوق سراسری Php در ادامه معرفی می شوند.

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

 

در این آموزش تعدادی از این متغیرها را با هم مرور خواهیم کرد.

متغیر Globals$ در Php

این متغیر، برای فراخوانی و  دسترسی به متغیرهای فوق سراسری در هر بخش از برنامه استفاده می شود.

شما در هر قسمت از برنامه که باشید، فرقی نمی کند درون یک تابع یا کلاس یا مِتُد، می توانید از این متغیر استفاده کنید.

زبان Php، تمام متغیرهای سراسری را درون یک آرایه به نام [GLOBALS[index$ نگهداری می کند.

این آرایه نام متغیرها را در خود ذخیره دارد.

مثال زیر، نحوه استفاده از متغیر Global$ را نماش می دهد:

[php]

<?php
$x = 75;
$y = 25;

function addition() {
$GLOBALS[‘z’] = $GLOBALS[‘x’] + $GLOBALS[‘y’];
}

addition();
echo $z;
?>

[/php]

نتیجه کد بالا، مقدار زیر خواهد بود:

۱۰۰

متغیر SERVER_$ در Php

این متغیر، اطلاعات درباره headerها، مسیرها و مکانها در متن کد را نگه می دارد.

مثال زیر نحوه استفاده از این متغیر را نمایش می دهد:

[php]

<?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’];
?>

[/php]

نتیجه کد بالا، مقادیر زیر خواهد بود:

/demo/demo_global_server.php
۳۵.۱۹۴.۲۶.۴۱
۳۵.۱۹۴.۲۶.۴۱
https://tryphp.w3schools.com/showphp.php?filename=demo_global_server
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
/demo/demo_global_server.php

با مراجعه به این لینک ، میتوانید لیستی از مهم ترین اطلاعاتی که می توانند در متغیر SERVER_$ ذخیره شوند را مشاهده کنید.

متغیر  REQUEST_$

از این متغیر برای جمع آوری داده ها در یک فرم HTML استفاده می شود.

برای درک کامل کار این متغیر نیاز به یک فرم داریم.

این فرم دارای یک المان INPUT، و یک دکمه SUBMIT می باشد.

زمانی که کاربر روی دکمه کلیک می کند ، اطلاعات موجود در فرم( همان المان INPUT) ، به صفحه ای که در قسمت ACTION از تگ <FORM> مشخص شده است، فرستاده می شود.

در این مثال، ما برای پدازش داده ها، همین فرم را در قسمت ACTION ، آدرس داده ایم.

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

بنابراین می توانیم از متغیر REQUEST_$ برای جمع آوری مقادیر فیلدهای ورودی استفاده کنیم:

[PHP]

<form method=”post” action=”<?php echo $_SERVER[‘PHP_SELF’];?>”>
Name: <input type=”text” name=”fname”>
<input type=”submit”>
</form>

<?php
if ($_SERVER[“REQUEST_METHOD”] == “POST”) {
// collect value of input field
$name = htmlspecialchars($_REQUEST[‘fname’]);
if (empty($name)) {
echo “Name is empty”;
} else {
echo $name;
}
}
?>

[/PHP]

شما می توانید از این لینک نمونه فرم و نتیجه کار ان را مشاهده کنید.

متغیر POST_$

این متغیر به طور گسترده ای برای جمع آوری اطلاعات فرمی که دارای مقدار METHOD=POST است ، بعد از کلیک کاربر روی دکمه SUBMIT ، استفاده می شود.

این متغیر همچنین به طور گسترده ای برای انتقال اطلاعات متغیرها استفاده می شود.

مثال زیر، یک فرم را به همراه یک فیلد INPUT و یک دکمه SUBMIT نمایش می دهد.

زمانی که کاربر روی دکمه SUBMIT کلیک می کند، اطلاعات موجود در فرم، به آدرسی که در صفت ACTION از تگ <FORM>مشخص شده است، ارسال می شود.

در این مثال، ما اطلاعات فرم را برای پردازش به خود همان فرم ارسال کرده ایم.

اگر شما نیاز دارید که اطلاعات را برای پردازش به صفحه دیگری بفرستید ، کافیست آدرس صفحه مورد نظر را در قسمت ACTION قرار دهید.

سپس می توانید از متغیر سراسری POST_$ برای جمع آوری داده ها از فیلدهای ورودی فرم استفاده کنید.

به مثال زیر دقت کنید:

[PHP]

<form method=”post” action=”<?php echo $_SERVER[‘PHP_SELF’];?>”>
Name: <input type=”text” name=”fname”>
<input type=”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;
}
}
?>

[/PHP]

نمونه فرم و کارکرد این متغیر را در این لینک می توانید مشاهده کنید.

متغیر GET_$

از این متغیر نیز برای جمع آوری داده های موچود در فرم استفاده می شود.

پس از کلیک کاربر روی دکمه SUBMIT، اگر متد را از نوع ، METHOD=”GET تعیین کرده باشید، اطلاعات با این متد برای صفحه تعیین شده ارسال می شوند.

اطلاعاتی که  متد GET درند، از طریق URL ارسال می شوند.

فرض میکنیم یک صفحه HTML، که حاوی لینک ها و پارامترهایی است، داریم.

[PHP]

<html>
<body>

<a href=”test_get.php?subject=PHP&web=W3schools.com”>Test $GET</a>

</body>
</html>

[/PHP]

زمانی که کاربر روی لینک Test $GET کلیک می کند، پارامترهای “Subject” و “Web” به صفحه “test_get.php” ارسال می شوند.

بنابراین شما می توانید در صفحه “test_get.php” و از طریق متغیر  GET_$ به اطلاعاتتان دسترسی داشته باشید.

با مراجعه به این لینک می توانید نحوه کار لینک را تست کنید.

با کلیلک روی لینک ، اطلاعات تعیین شده در صفحه test_get.php نمایش داده خواهند شد.

 

دسته بندی برنامه نویسی php
اشتراک گذاری
راه حل صحیح موفقیت این است که اشتیاق شما به پیروزی بیشتر از ترس شما از شکست باشد.”انیشتین“

نوشته های مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

21+ محصولات
374+ سفارشات تکمیل شده
1860+ کاربران
396+ مطالب وبلاگ
سبد خرید

هیچ محصولی در سبد خرید نیست.

ورود به سایت