چکیده این مطلب :

در این مقاله با متغیر های سراسری و نحوه کار آنها در php آشنا می شوید.

متغیرهای سراسری در  php

متغیرهای سراسری به تعدادی از متغیرها از پیش تعریف شده در php گفته می شود که همیشه و همه جا در دسترس هستند.

متغیر های سراسری در php عبارتند از:

$ GLOBALS

$ _SERVER

$ _REQUEST

$ _POST

$ _GET

$ _FILES

$ _ENV

$ _COOKIE

$ _SESSION

معرفی متغیر سراسری  $ GLOBALS در  php

PHP همه متغیرهای سراسری را در آرایه ای به نام $GLOBALS[index]  ذخیره می کند. این شاخص نام متغیر را نگه می دارد.

مثال زیر نشان می دهد که چگونه از متغیر فوق العاده سراسری $ GLOBALS استفاده کنید:

 

مثال

<?php 

$x = 75;
$y = 25
function addition() {
    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>

خروجی

100

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

 معرفی متغیر سراسری    $ _SERVERدر php

$ _SERVER یک متغیر سراسری PHP است که حاوی اطلاعات در مورد هدر ها، مسیرها و مکان های اسکریپت است.

 مثال زیر نشان می دهد که چگونه از بعضی از عناصر در $ _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 وارد شود:

Element/Code

توضیحات

$_SERVER['PHP_SELF']

نام پوشه و نام فایل php  در حال اجرا را باز می گرداند

$_SERVER['GATEWAY_INTERFACE']

نسخه ای از رابط مشترک CGI که سرور استفاده می کند را بازمی گرداند

$_SERVER['SERVER_ADDR']

آدرس آی پی سرور میزبان را برمی گرداند

$_SERVER['SERVER_NAME']

نام سرور میزبان را بر می گرداند مثل zarrafeh.com

$_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']

$_SERVER['HTTP_ACCEPT_CHARSET']

$_SERVER['HTTP_HOST']

هدر میزبان را از درخواست فعلی باز می گرداند

$_SERVER['HTTP_REFERER']

URL کامل صفحه ای که صفحه فعلی آن نامیده می شود را نشان می دهد

$_SERVER['HTTPS']

آیا صفحه php از طریق یک پروتکل HTTP امن درخواست می فرستد.

$_SERVER['REMOTE_ADDR']

آدرس IP کاربر که در حال مشاهده صفحه فعلی است را برمی گرداند

$_SERVER['REMOTE_HOST']

نام میزبان را از جایی که کاربر در حال مشاهده صفحه فعلی است، باز می گرداند

$_SERVER['REMOTE_PORT']

پورت مورد استفاده در دستگاه کاربر برای برقراری ارتباط با سرور وب را بررسی می کند

$_SERVER['SCRIPT_FILENAME']

نام فایل php در حال اجرا را باز می گرداند

$_SERVER['SERVER_ADMIN']

مقدار داده شده به دستورالعمل SERVER_ADMIN در پرونده پیکربندی وب سرور مانند person@zarrafeh.com)) بر می گرداند

$_SERVER['SERVER_PORT']

پورت مورد استفاده وب سرور را بر می گرداند مانند port 80

$_SERVER['SERVER_SIGNATURE']

نسخه سرور و نام میزبان مجازی را بر می گرداند

$_SERVER['PATH_TRANSLATED']

مسیر فایل فعلی را بر می گرداند.

$_SERVER['SCRIPT_NAME']

نام فایل فعلی را بر می گرداند.

$_SERVER['SCRIPT_URI']

URI صفحه فعلی را باز می گرداند.
































معرفی متغیر سراسری  $ _REQUEST در php

$ _REQUEST برای جمع آوری داده ها پس از ارسال به یک فرم HTML استفاده می شود.

 مثال زیر یک فرم را با یک فیلد ورودی و یک دکمه ارسال نمایش می دهد. هنگامی که یک کاربر اطلاعات را با کلیک بر روی "Submit" ارسال می کند، داده های فرم به فایل مشخص شده در تگ <form> ارسال می شود.

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

<!DOCTYPE html>
<html>
<body>

<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;
    }
}
?>

</body>
</html>

خروجی: تابع htmlspecialchars  کاراکترهای خاص رو با مقادیرشان جایگزین می‌کنه که توی صفحه‌ی HTML قابل مشاهده باشند

 

معرفی متغیر سراسری  $ _POST در php

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

مثال زیر یک فرم را با یک فیلد ورودی و یک دکمه ارسال نمایش می دهد. هنگامی که یک کاربر اطلاعات را با کلیک بر روی "Submit" ارسال می کند، داده های فرم به فایل مشخص شده در تگ <form> ارسال می شود. در این مثال، به خود این فایل برای پردازش اطلاعات فرم اشاره می کنیم. اگر شما مایل به استفاده از یک فایل php دیگر برای پردازش داده های فرم  هستید آن را با نام فایل جایگزین کنید. سپس می توانیم از متغیر سراسری $ _POST برای جمع آوری مقدار فیلد ورودی استفاده کنیم:

<!DOCTYPE html>
<html>
<body>

<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;
    }
}
?>

</body>
</html>

خروجی


معرفی متغیر سراسری   $ _GETدر php

$ _GET برای جمع آوری اطلاعات فرم پس از ارسال به روش GET ااستفاده شود. و همچنین می توانید اطلاعات ارسال شده در url  را جمع آوری کنید.

 فرض کنید ما فایلی به نام "test_get.php" که شامل کد های زیر است

<html>
<body>
<?php 
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>

و فایلی دیگری با نام دلخواه ایجاد کنید و کدهای زیر در آن تایپ کنید. وقتی روی لینک Test $GET  کلیک می کنید عبارت Study PHP at zarrafeh.com  به شما نشان داده می شود.

<!DOCTYPE html>
<html>
<body>
<a href="test_get.php?subject=PHP&web=zarrafeh.com">Test $GET</a>
</body>
</html>

در آموزش های بعدی در مورد $-post و $-GET و بقیه متغیر های سراسری توضیح خواهیم داد.

نظر خود را ارسال کنید

پیشنهاد می دهیم این آموزش ها را نیز ببینید
بستن logo

ورود به ناحیه کاربری

هنوز در سایت عضو نشده ام!