متغیرهای پیش ساخته و سراسری در php

منتشرشده توسط حامد قنبری در تاریخ

برخی از متغیرهای پیش ساخته در php  وجود دارد که به دلیل global  یا سراسری بودن آنها می توان در جهات مختلف از آنها استفاده نمود.این به این معنی است که آن متغیرها همیشه در دسترس هستند و صرف نظر از میزان دامنه  و مشمولیت آنها ، می توانید به آنها در هر تابع، کلاس و فایلی بدون نیاز به انجام کاری خاص دسترسی داشته باشید بطورکلی متغیرهای پیش ساخته سراسری در php  شامل موارد زیر می باشد:

، $ GLOBALS

$ _SERVER

$ _REQUEST

$ _POST

$ _GET

$ _FILES

$ _ENV

$ _COOKIE

$ _SESSION

در این فصل آموزشی به برخی از متغیرهای پیش ساخته خواهیم پرداخت و بقیه آن در فصل های بعدی با اختصار توضیح داده خواهند شد..

 

GLOBALS$:

متغیری است سراسری که مقدار آن را برنامه نویس تعیین می کند و در هر نکته از اسکریپت های php  می توان بدان دسترسی پیدا کرد . بعبارت دیگر این متغیرپیش ساخته نام متغیر را به منظور دسترسی برنامه نویس در همه محدوده ها در خود ذخیره می کند به مثال زیر توجه کنید:

 

<?php
global $variable;
$variable = 40;
function test(){
    echo $variable;
}
test();//output 40
echo $$variable; // output 40
?>

 

SERVER_$

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

[SERVER[PHP_SELF _$:

یک استفاده رایج از متغیر PHP_SELF در قسمت عملیات تگ <form> است. قسمت action فرم دستورالعمل ارسال اطلاعات فرم را زمانی که کاربر دکمه “ارسال” را کلیک می کند، در اختیار شما قرار می دهد.اگر نام فایل را در قسمت action بنویسید و در صورتی که  بعدا نام پرونده مربوط به action  را تغییر دهید در آن صورت مجبور هستید دوباره action  های مربوط به فرم ها را بروزرسانی کنید این درحالی است که با استفاده از این روش دیگر نیاز به چنین کاری نخواهد بود به مثال زیر توجه کنید.

در حالت معمول

<form  method="post" action="form-action.php" >

در حالت استفاده از [SERVER[PHP_SELF _$:

<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >

 

REQUEST_$:

برای دریافت داده ها پس از ارسال یک فرم استفاده می شود. در این حالت با کلیک کاربر بر روی submit  و ارسال داده ها  به action  مورد نظر  این متغیر به همراه نام متغیر ارسالی می تواند ارزش های مربوط اطلاعات فرستاده شده توسط کاربر را استخراج و نشان دهد  مثال زیر یک فرم را با یک فیلد ورودی و یک دکمه ارسال و همچنین نحوه دریافت اطلاعات فرستاده شده توسط این متغیر را نشان می دهد. به مثال زیر توجه کنید:

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
        Name: <input type="text" name="user_name">
<input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // collect value of input field
    $receive_name = $_REQUEST['user_name'];
    if (empty($receive_name)) {
        echo "received name empty";
    } else {
        echo $receive_name;
    }
}
?>

</body>
</html>

 

 

$_POST:

یکی از روشهای انتقال اطلاعات در php  روش post کردن است. به مثال زیر توجه کنید

برای دریافت داده های فرم پس از ارسال یک فرم  مورد  استفاده قرار می گیرد بعبارت دیگر یکی از روشهای  دریافت اطلاعات در php  روش post کردن است. به مثال زیر توجه کنید این روش از طریق هدر HTTP  با  نام  QUERY-STRING ارسال می شود و هیچ گونه محدودیتی  از لحاظ حجم اطلاعات ارسالی در آن وجود ندارد ازاین رو می توان هم دیتای باینر و هم اسکی را ارسال کند و لحاظ امنیتی نسبت به متد دیگر یعنی GET  خیلی بالاتر است چرا که برخلاف GET  که اطلاعات را از طریق url  انتقال می دهد در این متد روش انتقال اطلاعات از طریق header HTTP  انتقال پیدا می کند . به مثال زیر توجه کنید :

<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
        Name: <input type="text" name="user_name">
<input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // collect value of input field
    $receive_name = $_REQUEST['user_name'];
    if (empty($receive_name)) {
        echo "received name empty";
    } else {
        echo $receive_name;
    }
}
?>

</body>
</html>

$_GET:

 

$_FILES:

$_ENV:

 

$_COOKIE:

 

$_SESSION

دسته‌ها: آموزش PHP

0 دیدگاه

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

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

-- بارگیری کد امنیتی --